blog.robur.coop

The Robur cooperative blog.
Back to index

CalDAV: a calendar server providing the CalDAV protocol

2018-03-01

Currently, a vast amount of private data is stored centrally by companies like Google and Facebook. We aim to enable non-experts to operate their own digital infrastructure. As a first prototype, we plan to implement a robust calendar service (CalDAV) that interoperates with existing clients and can also function as a proxy.

Conventional services typically involve a UNIX environment—including process management, multi-user support, file-system-based configuration, and so on. A minor setup error can compromise the integrity of the entire system; for instance, an incorrect file system permission on a private key or the database interface could expose the data to the entire world.

In 2018 we received funding from German ministry for science and education via prototypefund to develop a CalDAV library and server in OCaml as a MirageOS unikernel.

The funding amount was 48_500€. Stefanie Schirmer and Hannes Mehnert contributed.

Technology-wise we use webmachine as web framework, and store the calendar data in a git repository (using git-kv). Next to the server code (covering CalDAV/WebDAV, including XML and PROPFIND HTTP requests), the icalendar file format has been developed as a separate package. The opam packages caldav and icalendar have been released.

After the funding period ended, we as well integrated a pure JavaScript web interface for the calendar, which communicates via CalDAV with the server - and is served by the web server. A live demo is online.