Setup your own calendar and address book DAV server
mouse 1504 · person cloud · link
Last update
«Google opt out, WebDAV, CalDAV/CardDAV»

install the server and move data

  1. install baikal (PHP+sqlite/mysql)

    unzip baikal-*.zip
    mkdir -p baikal/Specific/db
    chown -R nginx:www-data baikal/
    find baikal/ -mindepth 1 -type d -exec chmod 775 "{}" \;
  2. run it on nginx/apache + php-fpm via https

  3. point the browser to your new server and complete the initial setup

  4. add a user and his calendars

copy calendar and address book data

  1. google calendar > export existing calendar to ics file
  2. android > address book app > export to vcf file
  3. thunderbird > calendar > add new > from internet > DAV > enter username and https://domain.ext/davp.php
  4. thunderbird > calendar > import (from ics file to the new calendar)
  5. android > install DAVx5 app via F-Droid, add your DAV account, check all desired items: this creates new accounts for calendar and address book
  6. android > calendar app > select the new DAVx5 calendar
  7. android > address book app > select the new DAVx5 account > settings > import > select the vcf file


export all data to a single file

Just append ?export to the user calendar/addressbook url:

quickly generare an ID for a calendar

dd if=/dev/random count=1 bs=1M status=none | md5sum

share a calendar with another baikal user

See this post:

  1. open calendar url: https://domain.ext/dav.php/addressbooks///
  2. at the section Share this resource insert mailto:baikal_user_email

web UI

infcloud is a very nice cal&card html5+jquery client, use /dav.php/principals/ as the base url


See also: Dockerfile sample and blog post, clients list