diff --git a/Projects/CalDAV b/Projects/CalDAV index 61da4cb..a3af50c 100644 --- a/Projects/CalDAV +++ b/Projects/CalDAV @@ -1,24 +1,62 @@ --- -title: A CalDAV server +title: CalDAV server abstract: ![calendar](/static/img/calendar.png) --- ![calendar](/static/img/calendar.png) -This project is funded (likely 04 - 10/2018, two persons) via the [prototype -fund](https://prototypefund.de/project/robur-io/). - -[Wikipedia](https://en.wikipedia.org/wiki/Calendaring_software) says: -calendaring software is software that minimally provides users with an +Calendaring software provides users with an electronic version of a calendar. Additionally, the software may provide an -appointment book, address book, and/or contact list. +appointment book, address book, or contact list. -[CalDAV](https://en.wikipedia.org/wiki/CalDAV) are the calendaring extension to -WebDAV (a HTTP-based protocol for data manipulation). +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//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! -We plan to implement a CalDAV server based on MirageOS. The data is stored in a -git repository by using [irmin](https://github.com/mirage/irmin). We will do -interoperability testing with widely used clients (Android, Thunderbird, Apple -iCal). -Expect more updates of this project once it starts. \ No newline at end of file