Valid HTML 4.01 Transitional
Personal Information Manager Software

Generic CalDAV Server

James F. Carter <jimc@math.ucla.edu>, 2011-01-30

With the collapse of Citadel as a solution to my issues, I need to search for more generic PIM servers. The first issue is the protocol. Thunderbird supports several of these protocols, which are all the ones I've seen mentioned in forum postings (except possibly for a proprietary one used internally by older Microsoft Exchange).

iCalendar

Wikipedia article about iCalendar. Strictly it's a mime-type (text/calendar) and a file format. It is governed by RFC 5545, superceding RFC 2445. RFC 2446 defines iTIP, a transport independent protocol for exchanging iCalendar objects (i.e. tags for what the recipient is supposed to do with the PIM object).

Object types are vEvent (calendar), vTodo (tasks), vJournal (time distribution) and vFreebusy (calendar summary telling when the user is available for meetings). Support for vJournal is missing from some client software. vCard is not included.

According to the article it is typical to offer an entire calendar file in this format via WebDAV. The format is supposed to be a separate issue from the protocol used to retrieve or alter it. From the way Citadel operates, it is doing close to this: it makes the whole calendar available to an authenticated HTTP/S session under a specified path from the document root, that includes the name of the calendar being retrieved, and (presumably) it accepts POST transactions to replace it.

Lightning offers iCalendar as a protocol choice. Likely this really means GroupDAV.

GroupDAV

Link to GroupDAV.org website. The main features are that the client keeps a local cache of the server data (and the spec tells how to keep them in sync), and it uses HTTP GET, PUT and DELETE operations. It is a small subset of WebDAV. The website is kind of disorganized, and I wasn't able to actually view the specification of what GroupDAV really is.

WebDAV

It is governed by RFC 2518, superceded by RFC 4918 (with an updating extension in RFC 5689). Namespace refers to the path portion of the URL. The toplevel namespace does not necessarily start at '/'; the WebDAV collection may start at an internal URL. By means of HTTP GET, PUT and DELETE operations a HTTP-only client can interact with objects intended to be handled by WebDAV, but this mode does not include locking, access control, etc. and therefore is not recommended.

CalDAV

Wikipedia article about CalDAV. CalDAV, Calendaring Extensions to WebDAV, is governed by RFC 4791. It is a derived class or extension of WebDAV. The server is required to support ACLs (RFC 3744). iCalendar is the payload format. Content can be a vEvent, vTodo, vFreebusy, generic notes, and info. The server is expected to be able to generate a free-busy report from a user's calendar(s), and to expand a vEvent describing a recurring event. The article lists a number of servers and clients supporting CalDAV.

Lightning offers iCal as a protocol choice, which probably means CalDAV, since Apple's iCal server uses CalDAV as its native protocol.

WCAP

Wikipedia article about WCAP, Web Calendar Access Protocol. The article is not very informative, but suggests that WCAP is older than CalDAV and substantially different from it. It was the native protocol of the Sun Java System Calendar Server, and Lightning offers WCAP as one of its protocol choices.

CardDAV

This is the same general idea as CalDAV but for vCards. Web site for CardDAV. That site lists these clients: Apple (MacOS-X 10.6 and iOS, i.e. iPhone), Atmail (commercial?), Mulberry (open source), eM Client (Windows), SOGo Connector for Thunderbird. Listed servers include Apple OS-X, Bedework (Open source, Java, alpha), eGroupWare (CardDAV support is being added), SOGo (open source), Viagenie (Apache).

Of these protocols, CalDAV is the best defined and it has the advantage of operating on individual PIM objects rather than entire calendars (etc.) at once. I will concentrate on servers that support CalDAV. A search on Google for CalDAV server turns up, among other items, Calconnect's list of servers. Here it is, in decreasing order of preference. All packages are open source unless indicated as commercial.

SOGo (ScalableOGo)

This product is well regarded. Sponsored by Inverse. Claims to federate with your existing IMAP, LDAP and SQL (install one if you don't already have it). It can use MySQL, PostgreSQL or Oracle. (I was hoping to avoid the big database backend.) Includes web client (with CAS, WebAuth or Kerberos auth). Mobile support: CalDAV is native on iPhone. Works with Android. WinMobile and BlackBerry would use Funambol middleware. Can have multiple federated server instances. DAV access to every PIM object and mail message. There is a backup-restore utility script. It is easy to hack the web interface page templates. Includes vCard (CardDAV) support and the Thunderbird connector supports them.

Installation experience: the GNUstep installer spreads files all over /usr/local; I haven't learned how to keep it in its own subdirectory, which is what we need for installing at Mathnet. But other than that, the installation went OK.

Radicale

Main feature is simplicity; it should work out of the box. Authentication can be turned on. In Python. Supports vEvent and vTodo. Supports secure connections (TLS); host cert path is configurable. Authentication is by a user-password file maintained outside of Radicale (i.e. by hand), hiss, boo. Password hashes supported: none, crypt, SHA1. Not clear where the calendars are stored, but they are flat files in iCalendar format (RFC 2445). It omits portions of CalDAV which targeted clients (Lightning, Sunbird, Evolution) do not use. jimc notes: it doesn't know anything about vCards.

mod_caldav

Apache module for CalDAV. This could be investigated, but I need a full server, not just an API. Actively developed. Current version is mod_caldav-0.1.10. Depends on mod_dav and mod_dav_acl. See README for configuring mod_dav_acl. Build depends on libical (the one available from Sourceforge). mod_dav uses db4 database. README says it's kind of slow after a PUT operation. Implies that it's a complete server. Neither mod_caldav nor mod_dav are available on the SuSE Build Service nor on Packman.

Chandler (Cosmo)

Java. While there were questions about the viability of the Chandler project, forum postings suggest that Cosmo itself is mature and functional.

Zimbra

Open source with commercial extensions. I tried to install it but had a lot of trouble.

Bedework

Includes web UI. Java. Product is kind of new.

DAViCal

PHP. Requires PostgreSQL backend. This is what is currently set up on Papyrus. I'm hoping to avoid the big SQL database backend. It can operate in WebDAV mode (CalDAV is recommended). CardDAV is supported starting in version 0.9.9.2 (2010-09-xx). Does not (yet) have support for authentication other than a loginID and password in the database. Has a simple readonly web client.

Dingo

Perl CGI, requires MySQL backend. I'm hoping to avoid the big SQL database backend.

EGroupware

Enterprise ready groupware server, says it is free.

Kerio

Commercial.

Beehive

Commercial from Oracle.

Scalix

Commercial open source.

Sun Java Calendar Server

Commercial. Native protocol is WCAP, but it must have been updated later adding CalDAV support.

Apple iCal Server

For OS-X, said to be open source. Python. Irrelevant for us.

DavMail

Java. Gateway to Microsoft Exchange, acting as middleware for a client doing IMAP, POP, SMTP, CalDAV, LDAP. Irrelevant for us.

SabreDAV

WebDAV server which includes CalDAV. In PHP. It's intended as a module in a containing server project. Not useful for us.