homepage-data/Projects/CalDAV
2018-09-30 19:27:57 +02:00

62 lines
2.4 KiB
Text

---
title: CalDAV server
abstract: ![calendar](/static/img/calendar.png)
---
![calendar](/static/img/calendar.png)
Calendaring software provides users with an
electronic version of a calendar. Additionally, the software may provide an
appointment book, address book, or contact list.
We implemented a CalDAV server based on MirageOS.
[CalDAV](https://en.wikipedia.org/wiki/CalDAV) is a calendaring extension to
WebDAV, an HTTP-based protocol that allows to read, write and alter files, directories and file properties.
The calendar data can be stored in memory, on disk, or in a
git repository using [irmin](https://github.com/mirage/irmin).
We tested interoperability with most common CalDAV clients (DAVdroid on Android, Thunderbird Lightning on Linux/Unix/Windows, Apple
calendar app on MacOS and iOS).
## How to try the calendar server
There is a live instance for testing available at `calendar.robur.io`.
There is a test user called `test` with password `password` for your convenience.
If you use MacOS, you need add a new CalDAV account in the calendar app, set it to manual, and enter the above URL, username and password.
For iOS you need to add an account in the calendar app, select "other" and then CalDAV.
Discovery of calendars happens automatically.
If you use Thunderbird Lightning, you need to create a new calendar on the network, select CalDAV as remote calendar format, and enter a full calendar URL, e.g.
`https://calendar.robur.io/calendars/<username>/calendar`.
If you use DAVdroid, you can enter the short URL like for MacOS, but you need to append `/calendars`.
Discovery of calendars happens automatically.
## How to host the calendar server yourself
Make sure you have OCaml version `>=4.03.0`, and opam version `>=1.2.2` installed via your operating system.
Also, you need to install and clone
```
opam pin add icalendar https://github.com/roburio/icalendar.git
opam pin add webmachine https://github.com/roburio/ocaml-webmachine.git#webdav
git clone https://git.robur.io/caldav.git
opam pin add caldav caldav/
opam install --deps-only caldav
```
Now you can build the project, add a place for storage, and run the calendar server:
```
cd caldav
make
mkdir /tmp/calendar
_build/default/app/caldav_server.exe
```
Time to add some calendars and fun meetups!
## Funding
This project was funded via the [prototype
fund](https://prototypefund.de/project/robur-io/). Thanks a lot!