Radicale

Simple, lightweight CalDAV and CardDAV server

Groupware ★ 5k stars Easy setup GPL-3.0

Radicale is a small, easy-to-run CalDAV and CardDAV server that stores calendars and contacts as plain files. It is ideal for individuals and small groups wanting to sync schedules and address books.

Key features

  • Plain-file calendar and contact storage
  • Very low resource usage
  • CalDAV and CardDAV support
  • Simple authentication options

Pros & cons

Strengths

  • Extremely easy to deploy
  • No database needed

Trade-offs

  • No web calendar UI
  • Minimal feature set

Radicale replaces

Last reviewed Sep 13, 2026 · 764 words

Radicale is a 64 MB Python process that stores every calendar event as an .ics file and every contact as a .vcf file in a plain directory, speaks CalDAV and CardDAV to any standards-compliant client, and does nothing else. No database, no web calendar, no mail, no sharing UI. If you want to stop syncing your calendar and address book through Google or iCloud and you already have a client you like (Thunderbird, Apple Calendar, DAVx5 on Android), it is the smallest possible server that solves the problem, and the one I run for my own household. If you want a browser calendar, invitations, or shared team calendars with a UI, it is the wrong tool; go straight to Nextcloud.

The whole configuration is 6 lines

[server]
hosts = 0.0.0.0:5232

[auth]
type = htpasswd
htpasswd_filename = /etc/radicale/users
htpasswd_encryption = bcrypt

[storage]
filesystem_folder = /var/lib/radicale/collections

Install with pip install radicale, create the users file with htpasswd -B -c /etc/radicale/users alice, start it under systemd or Docker, and put a reverse proxy with TLS in front on port 5232. By default Radicale listens on localhost only, which is why the hosts line exists. The bcrypt option is the one to use; the older md5 and plain modes still work for compatibility and should not be chosen for anything reachable from the internet.

Access rules default to "owner only": each user sees only collections under their own name. A short rights file grants a shared family calendar to two accounts, which is the most common reason anyone touches it.

There is no calendar UI, but there is a tiny web page

Radicale serves a minimal HTML page at the root that logs in, lists your collections, and lets you create or delete a calendar or address book and upload an existing .ics file. That is the extent of it. All actual use happens in clients. This is the point that determines whether Radicale suits you: if you view your calendar in a browser today, you will need a client app after switching, and Thunderbird on the desktop is the honest recommendation. If you already live in Apple Calendar or an Android calendar app, nothing about your daily routine changes except the account settings.

Clients that work, and the one trap on Android

macOS and iOS support CalDAV and CardDAV natively; add the account under Internet Accounts and point it at your URL. Thunderbird handles both with the built-in calendar. Android has no native CalDAV; install DAVx5, which registers your Radicale account as a system account so the stock calendar and contacts apps use it. The trap: DAVx5 needs the base URL with your username, https://dav.example.com/alice/, and will discover collections from there. Give it the bare host and it finds nothing, which produces most of the "Radicale does not work" forum posts. Windows has no good native client; Thunderbird or the web-free route through Outlook add-ons is where people end up, and that is a reason some Windows-heavy households choose Nextcloud instead.

Files on disk are the backup story and the migration story

Because storage is a directory of small text files, a backup is tar or restic on that folder, and a migration to another server is a copy. Exporting from Google Calendar (.ics) and Google Contacts (.vcf) and uploading through the web page or the client moves years of data in a minute. Radicale can also keep a Git history of the collections directory with a one-line hook setting, which gives you an undo for the day a client decides to delete 400 contacts during a bad sync. I turn that on everywhere.

Multi-user works, but Radicale is written for individuals and small groups. Twenty users are fine; a company with delegation, room booking and free/busy lookups across departments wants a real groupware suite.

What I'd do

For one person or one family: Radicale in a container with the config above, bcrypt htpasswd, the Git hook enabled, behind Caddy on a subdomain, reachable over Tailscale or the public internet with strong passwords. Thunderbird on desktops, DAVx5 on Android, native accounts on Apple devices. Total resource cost is smaller than the reverse proxy in front of it. If anyone in the group needs a browser calendar or sends meeting invitations, do not fight Radicale into it; Nextcloud's calendar and contacts apps do those things and cost 1 GB of RAM instead of 64 MB, which is still cheap.

Compare Radicale

3 head-to-head comparisons.

Similar groupware apps