Code Repositories xandikos / prometheus

Tree @prometheus (Download .tar.gz)

Build Status

Xandikos is a CardDAV/CalDAV server that backs onto a Git repository.

Xandikos (Ξανδικός or Ξανθικός) takes its name from the name of the March month in the ancient Macedonian calendar, used in Macedon in the first millennium BC.

Implemented standards

The following standards are implemented:

  • RFC4918/RFC2518 (Core WebDAV) - implemented, except for COPY/MOVE/LOCK operations
  • RFC4791 (CalDAV) - fully implemented
  • RFC6352 (CardDAV) - fully implemented
  • RFC5397 (Current Principal) - fully implemented
  • RFC3253 (Versioning Extensions) - partially implemented, only the REPORT method and {DAV:}expand-property property
  • RFC3744 (Access Control) - partially implemented
  • RFC5995 (POST to create members) - partially implemented, lacks support for the {DAV:}add-member property
  • RFC7809 (CalDAV Time Zone Extensions) - not implemented

See [[notes/]] for more detail on specification compliancy.

Supported clients

Xandikos has been tested and works with the following clients:

  • vdirsyncer
  • caldavzap/carddavmate
  • evolution
  • davdroid
  • sogo connector for Icedove/Thunderbird
  • aCALdav syncer for Android
  • pycardsyncer


To run a standalone (low-performance) instance of Xandikos, simply create a directory to store your data (say $HOME/dav) and run it:

mkdir -p $HOME/dav
./bin/xandikos -d $HOME/dav

A server should now be running on localhost:8080.


There is a #xandikos IRC channel on the Freenode IRC network, and a xandikos mailing list.


At the moment, Dulwich supports Python 3.5 and higher as well as Pypy 3. It also uses dulwich, icalendar and defusedxml.