62 lines
2.3 KiB
Text
62 lines
2.3 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.
|
|
`http://calendar.robur.io/calendars/<username>/calendar`.
|
|
|
|
If you use DAVdroid, you can enter the short URL like for MacOS.
|
|
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!
|
|
|
|
|