SabreDAV 1.2 released (with CalDAV support)

It's taken almost 12 months, but I finally finished a CalDAV plugin for SabreDAV. I've stayed within the standard as much as possible, but had to leave out some features that failed to meet the cost/benefit requirement.

Most importantly, there's solid support for Apple iCal, Evolution, Lightning/Sunbird, and the iPhone.

It all uses PDO, and it's tested on both SQLite3 and MySQL.

SabreDAV is primarily intended as a toolkit to implement these protocols in different applications. Despite that, it should be reasonably easy to setup your own CalDAV server. Head over to the instructions to figure out how.

Other changes and additions

  • CalDAV (RFC4791).
  • PDO backends for Locks, Authentication and Calendars.
  • 95% unittesting code coverage. 415 unittests. There's actually more unittesting code now than 'normal' code.
  • ACL (RFC3744) principals. Note that privileges are not yet implemented.
  • Support for Extended MKCOL (RFC5689).
  • Support for current-user-principal (RFC5397).
  • Now throwing an error if you're using Finder on an unsupported server (nginx, apache + fcgi, lighttpd).
  • Support for If-Range, If-Modified-Since, If-Unmodified-Since, If-Match and If-None-Match.
  • There's now 2 distributions. 1 unified zip with all the features, as well as 4 separate pear packages (Sabre, Sabre_HTTP, Sabre_DAV, Sabre_CalDAV).

If you're upgrading from 1.0, some changes have been made. Take a look at the migration guide for more information.


Future plans

The next big thing will be CardDAV. It won't take nearly as long as CalDAV support, as there are a lot of similarities. In general I feel I should spend a bit less time on this. I've been spending a large portion of my time in developing SabreDAV into a mature project, which can be hard to justify if it's not a source of income. I need to eat, after all.

I'm still enjoying it very much though and the best way to keep me motivated is to let me know you're using it or by requesting a new feature =).

Web mentions