WebDAV is a de-facto standard way of publishing calendars on the internet. The way WebDAV represents a calendar is as a '.ics' file comprising a single 'VCALENDAR' which contains a series of VEVENT (or VTODO, etc) and any referenced VTIMEZONE elements.
While it is relatively simple, there are problems with the scalability of this representation:
- When multiple people want to write to it, they need to lock the entire collection.
- Over time the numbers of events can get unwieldy in a busy calendar.
CalDAV attempts to address both of these problems by:
- providing the calendar data as individual events (/todos/journals/...) within a calendar collection.
- providing reporting functionality which allows for subsetting the collection to a particular time period.
- formalising approaches for identifying which data has changed, allowing aggressive client-side caching.