aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ADMIN.md57
-rw-r--r--README.md34
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]: <https://devguide.calconnect.org/iCalendar-Topics/Recurrences/>
+ "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]: <https://devguide.calconnect.org/Scheduling/iTIP/>
+ "iTIP - specification on handling participant invites for CalDAV events"
+
+[iMIP]: <https://devguide.calconnect.org/Scheduling/iMIP/>
+ "iMIP - specification on distributing iTIP invites via email"
+
+[VFREEBUSY]: <https://devguide.calconnect.org/Scheduling/FreeBusyAvailability/>
+ "VFREEBUSY - specification on sharing free/busy time of resources"
+
+[VAVAILABILITY]: <https://datatracker.ietf.org/doc/html/rfc7953>
+ "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