Howto setup your personal CalDAV/CardDAV server - Marián Mižik

=> home | gemlog | projects | atom feed

2021-07-01 | 6 minutes reading | tags: VPS, Linux, Self-host

Howto setup your personal CalDAV/CardDAV server

Do you like to backup or share your calendar and contacts, but you don't want to rely on proprietary companies and solutions built into your phones? You don't like to share such information? You don't want to be restricted to specific number of calendars, events or contacts? You want to be sure your provider won't close the service and lock you out from your data? Then it is time to self-host your own CalDAV and CardDAV service!

Articles of this series

=> Howto setup your personal XMPP server

=> Howto setup your personal CalDAV/CardDAV server

=> Howto proxy your self-hosted services using web server

=> Howto setup and secure web server

=> Services you can selfhost on you personal Linux VPS

=> Howto secure your personal Linux VPS

=> Howto setup your personal Linux VPS

=> Why setup your personal Linux VPS

CalDAV & CardDAV

CalDAV and CardDAV are protocols specified in

=> RFC4791

,

=> RFC6638

and

=> RFC6352

. As years passed, more RFCs came to fill the gaps. They are free to be implemented and provide ability to synchronize calendars, events, contacts and tasks between server and multiple clients (devices). They are supported by both Android and iOS devices and there is plenty of software for every major OSes (BSDs, Linux, Windows, MacOS) that can handle these protocols.

Choosing the implementations

I personally use

=> Radicale

on server,

=> Vdirsyncer

with

=> khal

and

=> khard

on desktop and

=> DAVx5

on Android. Check this

=> Wikipedia list

for plethora of other options.

Radicale - because it is memory efficient, python based, maintained, BSD&Linux friendly, simple and well documented. It implements only subset of all possible specs and RFCs that bundled up throughout the time, but for me, it always delivered and always worked with any client I used.

Khal+Khard+Vdirsyncer - because it is powerfull TUI combo and I like terminal applications. It is

=> not hard

to set up, it

=> works well with (Neo)Mutt

too, which is my email client of choice.

Installation

=> Installation instructions

are straightforward, just use default package manager, or directly python installer 'pip'

python3 -m pip install --upgrade radicale

Configuration

=> Official documentation

is great. It takes you step by step through all standard scenarios like running

=> as a Systemd service

, running

=> behind reverse proxy

, or even as a

=> WSGI service

, which is my case.

Summary

Radicale instance on my OpenBSD machine, which is syncing 8 clients through both CalDAV and CardDAV, with several hundred contacts and several thousand calendar events, doesn't take more than 30MB RAM. It runs behind the web server, so I don't need to care about managing custom high ports on my firewall, or SSL certificates. Check more benefits in my older article regarding this topic. During several years I use it in "production" I never had to restart or maintain it in any way. But I need to say, my scenario is very simple. One address book and one calendar for every person in my family plus one shared calendar. Give it a try and let me know if it works for you too :)

2024 Marian Mizik | License: CC BY-NC-SA 4.0 | marian at mizik dot sk | marian_mizik@bsd.network (mastodon)

Proxy Information
Original URL
gemini://mizik.eu/blog/how-to-setup-your-personal-caldav-carddav-server/index.gmi
Status Code
Success (20)
Meta
text/gemini;lang=en
Capsule Response Time
380.259895 milliseconds
Gemini-to-HTML Time
2.426602 milliseconds

This content has been proxied by September (ba2dc).