Introduction
CalDAV (rfc4791) provides a protocol for interaction between calendar clients and servers, much like iMap provides such a protocol for email. CalDAV is built on top of WebDAV which is an HTTP based protocol. As a result, CalDAV inherits all of the advantages and disadvantages of those protocols.
...
So, for example, we cannot use the PUT method to store an entire calendar consisting of many events or tasks. Nor, using GET, can we retrieve an entire calendar. Typically, to date, WebDAV sharing of calendar information has involved viewing an entire calendar as a single document which is retrieved, updated adn then stored. This is not the case with CalDAV.
The Bedework implementation
Bedework, at it's core, is not file system based, but uses a database for storage, retrieval and indexing. Events are not stored as a byte for byte image of rfc2445 calendar components but are stored in a relational database as rows and columns in tables.
...
The quickstart configuration has two CalDAV servers, a public unauthenticated server and the authenticated version used for personal calendars. As CalDAV is a WebDAV based protocol it is possible to retrieve appropriately permitted personal information via the unauthenticated server. This allows users to share their freebusy information with the world if they so wish.
CalDAV clients
A list of available desktop CalDAV clients is hosted at http://caldav.calconnect.org/implementations/clients.html by CalConnect, the The Calendaring and Scheduling Consortium.
Unsupported features
Some of these unsupported features reflect lack of support for some rfc features – others difficulty in providing support for CalDAV specific features. The list is also incomplete but over time will probably get shorter but more accurate.
Recurrence features
Recurrence id ranges
Recurrence id ranges take the values THISANDFUTURE or THISANDPRIOR. As yet this feature is not supported and CalDAV queries or updates using this feature will have uncertain results.