CalDAV: a calendar server providing the CalDAV protocol
2018-03-01Currently, 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.