Radicale vs Baikal vs EteSync: Self-Hosted CalDAV Compared
Your calendar and contacts are some of the most personal data you own, yet most of us hand them to Google or Apple and hope for the best. Self-hosting changes that: a CalDAV/CardDAV server on your own hardware keeps your schedule private, works with the calendar apps you already use, and costs nothing in subscriptions. The open source crop has matured to the point where three projects cover nearly every scenario — from a tiny Python daemon to a PHP-backed server with a friendly admin panel to a zero-knowledge encrypted service. Here is how Radicale, Baïkal and EteSync compare.
Radicale
Radicale is a small but powerful CalDAV and CardDAV server written in Python. It has no configuration-heavy external dependencies — you can run it as a standalone daemon with plain-file storage, no web server or database required for basic use. That makes it one of the easiest self-hosted calendar servers to stand up and keep running.
Strengths
- Extremely lightweight: a pure-Python daemon that runs comfortably on a Raspberry Pi or small VPS.
- Flexible storage: a simple filesystem layout by default, with optional SQLite or PostgreSQL backends.
- Fine-grained access control: per-user authentication and read/write rights let you grant read-only access to specific calendars or contacts.
- Multi-user support: a single shared instance can serve several users.
- Minimal setup: no web server or database needed to get going — an ideal first self-hosting calendar project.
Radicale is the choice when you want calendar and contact sync with the smallest possible footprint and the least to maintain, and are happy managing it through config rather than a web GUI.
Baïkal
Baïkal is a lightweight CalDAV and CardDAV server built on the sabre/dav PHP framework. It offers a clean, browser-based administration interface and lets you choose between an embedded SQLite database for simplicity or MySQL/MariaDB for larger deployments. Built on the mature sabre/dav libraries, it gives you robust protocol support without assembling your own stack.
Strengths
- Web-based admin UI: manage calendars, address books and users through a straightforward browser panel — no need to touch config files.
- SQLite or MySQL backend: pick the embedded database or scale up to MySQL/MariaDB.
- Multi-user support: multiple accounts, each with their own calendars and address books.
- Universal client compatibility: works with Thunderbird, iOS, Android and desktop clients over CalDAV/CardDAV.
- Lightweight footprint: runs on modest hardware needing only PHP and a database.
Baïkal is the right pick when you want a polished, self-contained calendar and contacts server with an intuitive admin panel — ideal for a household or small organisation that would rather manage things from a web page than a terminal.
EteSync
EteSync is a secure, end-to-end encrypted calendar and contacts synchronization service. Built on Etebase (EteSync 2.0), it encrypts all your data on your devices before it ever reaches the server, so even the server operators cannot read your calendars, contacts or tasks. You can self-host the Python/Django server or use the hosted service, then sync across Android, iOS, desktop and web clients.
Strengths
- End-to-end encryption: all data is encrypted client-side before upload — the server never sees plaintext.
- CalDAV & CardDAV bridge: the included etesync-dav exposes calendars and contacts to standard clients like Thunderbird and Apple Contacts.
- Self-hostable: the Etebase server runs on Python/Django and deploys to your own VPS or Docker host.
- Multi-platform sync: native Android and iOS apps plus web and desktop clients.
- Tasks support: to-do lists sync too, including via the OpenTasks protocol.
- Zero-knowledge design: a compromised or curious server cannot expose your data.
EteSync is for people who want cloud-style multi-device sync without surrendering privacy — everything is encrypted locally before transmission, whether you use the hosted service or run your own server.
Side-by-side comparison
| Feature | Radicale | Baïkal | EteSync |
|---|---|---|---|
| Language / stack | Python | PHP (sabre/dav) | Python / Django (Etebase) |
| Deployment | Standalone daemon | PHP + web server + DB | Python server / Docker / hosted |
| Admin interface | Config-based | Web admin UI | Web app / apps |
| Storage | Filesystem / SQLite / PostgreSQL | SQLite / MySQL | Encrypted (Etebase) |
| Encryption | At-rest, server-managed | At-rest, server-managed | End-to-end (client-side) |
| Tasks support | Yes (CalDAV) | Yes (CalDAV) | Yes (incl. OpenTasks) |
| Resource footprint | Very low | Low | Low–moderate |
| License | GPL-3.0 | GPL-3.0 | GPL-3.0 |
Which should you choose?
Choose Radicale if you want calendar and contact sync with the smallest footprint and the least to maintain — a perfect low-effort self-hosting project that runs on a Raspberry Pi.
Pick Baïkal if you want a polished server with an intuitive web admin panel and proven sabre/dav protocol support, especially for a household or small team that prefers managing from a browser.
Select EteSync if privacy is your top priority and you want end-to-end encrypted sync so that no server — not even the one you run yourself — can read your schedule and contacts.
All three are free and open source, self-host on your own hardware, and use standard protocols so you are never locked into a proprietary sync backend. Read the full details on the Radicale, Baïkal and EteSync listings, or browse hundreds more free and open source tools in the directory. Know a great calendar or contacts server we’re missing? Suggest it.