From e0165d24dd67034852be649a7865676ee1aada12 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Thu, 28 Oct 2021 21:21:09 +0200 Subject: largely rewrite README and ADMIN --- ADMIN.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 34 ++++++++++++++++------------------ 2 files changed, 73 insertions(+), 18 deletions(-) diff --git a/ADMIN.md b/ADMIN.md index 3895db2..663a11f 100644 --- a/ADMIN.md +++ b/ADMIN.md @@ -1,4 +1,61 @@ +# Administrating calendar events + +This system supports a limited subset of [iCalendar] and [CalDAV] standards, +and is tested to work with Apple and Mozilla clients. + +The CalDAV service uses [Radicale]. + +[CalDAV]: https://en.wikipedia.org/wiki/CalDAV + "CalDAV - Internet standard allowing a client to access scheduling information on a remote server" + +[Radicale]: https://radicale.org/ + "Radicale - Free and Open-Source CalDAV and CardDAV Server" + +[iCalendar]: https://en.wikipedia.org/wiki/ICalendar + "iCalendar - media type which allows users to store and exchange calendaring and scheduling information" + + +## Recurrences + +Recurring events can be too complex to handle for some CalDAV applications. + +Recurrence rules are stored in iCalendar field [RRULES]. + +Locating which events may be cause of problem is tricky, +because recurrence rules may exist not only directly tied to the event +but also embedded in timezone objects for the event +(which is commonly not problematic for applications). + Quick'n'dirty locating events containing recurrence rules, except (most likely) summertime rules: grep -rP 'RRULE:FREQ=(?!YEARLY(;UNTIL=19430919T000000Z)?;(BYMONTH=(2|3|4|9|10|11);BYDAY=(-1|1|2|3)SU|BYDAY=(-1|1|2|3)SU;BYMONTH=(2|3|4|9|10|11)))' + +[RRULES]: + "RRULES - iCalendar data field to express recurrence rules" + + +## Scheduling + +Scheduling of events is currently *not* processed - +invitation and FreeBusy/Availability hints are ignored. + +Calendaring applications may request invitations for events, +but this is currently ignored in the CalDAV service +(technically this is CalDAV extensions [iTIP] and [iMIP]). + +Calendaring applications may query for FreeBusy or Availability of resources, +but this is currently rejected by the CalDAV service +(technically this may involve CalDAV extensions [VFREEBUSY] or [VAVAILABILITY]). + +[iTIP]: + "iTIP - specification on handling participant invites for CalDAV events" + +[iMIP]: + "iMIP - specification on distributing iTIP invites via email" + +[VFREEBUSY]: + "VFREEBUSY - specification on sharing free/busy time of resources" + +[VAVAILABILITY]: + "VAVAILABILITY - specification on sharing (potentially) available time of resources" diff --git a/README.md b/README.md index 1fe0fef..84e7e82 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,27 @@ -# Shared calendars and publishing events +# Syncronizing and sharing calendar events _(event)_ -Decentral event planning and publishing tools. -Publish or share calendars within a group of people or publish events to a feed or a web page. +Calendars hold events and tasks +(tasks, a.k.a. todo items, are events without time or date assigned). -## Scheduling of calendar events _(event)_ +Each user can create private calendars tied to their personal account. -iCalendar specifies a file format for events. +Shared calendars can be created for groups of users. -CalDAV specifies how to manage events. +Private and shared calendars can be exported as read-only calendar files +e.g. for publishing on a website. -iCalendar spec is relatively simple, and widely supported. -CalDAV spec is very big and complex, however, -and no system supports all of it. +Technically, +private and shared calendars is a [CalDAV] service using [Radicale], +and public calendars are [iCalendar] files. -This system supports a limited subset of CalDAV -tested to work with Apple and Mozilla clients. -Currently non-shared calendars are supported, -without iTIP or iMIP. - -It is possible to extend our current system with iTIP/iMIP support, -but that has not yet been explored. - -Technically, the CalDAV service uses [Radicale]. +[CalDAV]: https://en.wikipedia.org/wiki/CalDAV + "CalDAV - Internet standard allowing a client to access scheduling information on a remote server" [Radicale]: https://radicale.org/ + "Radicale - Free and Open-Source CalDAV and CardDAV Server" + +[iCalendar]: https://en.wikipedia.org/wiki/ICalendar + "iCalendar - media type which allows users to store and exchange calendaring and scheduling information" ## Invites -- cgit v1.2.3