At last week’s calendaring BOF at Etech, folks asked how CalDAV treats recurring events. I had to embarrassingly admit that I didn’t know the answer. Just because I’m evangelizing calendaring interoperability doesn’t mean I’ve actually read the spec! (he says sheepishly).
So for those who want to know, from the latest draft of the CalDAV spec – the answer is that recurring events are treated as a single object in CalDAV:
Recurrence is an important part of the data model because it governs how many resources are expected to exist. This specification models a recurring calendar component and its recurrence exceptions as a single resource. In this model, recurrence rules, recurrence dates, exception rules, and exception dates are all part of the data in a single calendar object resource. This model avoids problems of limiting how many recurrence instances to store in the repository, how to keep recurrence instances in sync with the recurring calendar component, and how to link recurrence exceptions with the recurring calendar component. It also results in less data to synchronize between client and server, and makes it easier to make changes to all recurrence instances or to a recurrence rule. It makes it easier to create a recurring calendar component, and easier to delete all recurrence instances. Clients are not forced to retrieve information about all recurrence instances of a recurring component. The CALDAV:calendar-query and CALDAV:calendar-multiget REPORTs defined in this document allow clients to retrieve only recurrence instances that overlap a given time range.