Skip to content

Radicale

Radicale is a small but powerful CalDAV (calendar) and CardDAV (contact) server. It is written in Python and is designed to be lightweight, standards-compliant, and easy to set up.

What it is

Radicale is an open-source CalDAV and CardDAV server that allows you to host your own calendars and contacts. As of July 2026, the stable version is v3.7.x, which continues to focus on a simple, file-based storage format (iCalendar and vCard), making backups and data ownership straightforward. It is a cornerstone of privacy-first personal information management.

What problem it solves

It provides a private, self-hosted alternative to cloud-based synchronization services (like Google Calendar or iCloud). By using standard protocols, it allows for seamless syncing across a wide variety of devices and applications while keeping the user in full control of their scheduling and contact data, eliminating third-party tracking.

Where it fits in the stack

Radicale serves as the Intake & Storage layer for personal information management (PIM) within a home-office or homelab ecosystem. It is often integrated with Gemma 3 or Claude 4.8 via the MCP 3.0 Task Protocol to allow AI agents to manage appointments and contacts using natural language and standardized execution patterns.

Typical use cases

  • Syncing personal and family calendars across desktops (Thunderbird) and mobile devices (Android/iOS via DAVx⁵).
  • Hosting a private address book that is accessible from multiple devices.
  • Serving as a backend for task management tools that support the CalDAV protocol.
  • Providing an automated audit trail for scheduling changes via Git-based versioning.
  • Exposing scheduling data to agentic workflows for automated meeting preparation.

Strengths

  • Lightweight: Minimal resource footprint, suitable for Raspberry Pi or low-power containers.
  • Simple Storage: Uses standard .ics and .vcf files on disk, ensuring no vendor lock-in.
  • Extensible: Supports multiple authentication backends (htpasswd, LDAP, remote user).
  • Standards-Compliant: High compatibility with various CalDAV/CardDAV clients.
  • Git Integration: Native support for versioning collections via git hooks.

Limitations

  • No Built-in Web Client: Lacks a full-featured web interface for managing events (primarily an admin UI).
  • Single-Server Focus: Not intended for large-scale enterprise deployments with thousands of users.
  • Manual Hardening: Requires a reverse proxy (like Nginx or Caddy) for proper SSL/TLS and advanced security.

When to use it

  • When you want a simple, privacy-focused solution for syncing calendars and contacts.
  • If you value owning your data in a transparent, file-based format.
  • For small teams or families needing a shared scheduling backend.
  • When integrating calendar data into local AI agent memory via MCP.

When not to use it

  • If you require integrated email, document collaboration, or a native web calendar (consider Nextcloud).
  • In environments requiring complex resource booking or advanced delegation features.
  • If you prefer a database-backed storage for high-concurrency write operations.

Getting started

Installation

Install Radicale using pip:

python3 -m pip install --upgrade radicale

Docker Compose

For containerized deployments (standard for TrueNAS SCALE or Docker-based homelabs):

services:
  radicale:
    image: tomsquest/docker-radicale:latest
    container_name: radicale
    ports:
      - "5232:5232"
    volumes:
      - ./data:/data
      - ./config:/config:ro
    restart: unless-stopped
    user: "1000:1000"

Git-based Versioning

Radicale can automatically version your collections using Git. Initialize a git repo in your collections directory and add the following to your config.ini:

[hook]
after_save = git add . && git commit -m "Radicale change"

Hello World

  1. Access the admin UI at http://localhost:5232.
  2. Create a new collection and select Calendar.
  3. Name it "Work" and click Create.
  4. Use the provided URL in your calendar client (e.g., Thunderbird) with your configured credentials.

CLI examples

The radicale module provides utilities for maintenance and integrity checks:

# Verify the integrity of the local collections storage
python3 -m radicale --verify-storage

# Check the installed version and active configuration paths
python3 -m radicale --version --debug

# Export a specific collection to a single .ics file for backup
python3 -m radicale --export /path/to/collection > personal_backup.ics

API examples

Radicale follows the standard CalDAV/CardDAV (HTTP-based) protocol.

Python (Discovering Collections)

import requests

url = "http://localhost:5232/admin/"
response = requests.request(
    "PROPFIND",
    url,
    auth=("admin", "your_password"),
    headers={"Depth": "1"}
)
print(response.text)

Curl (Deleting an Event)

curl -u admin:password -X DELETE "http://localhost:5232/admin/calendar/event-uuid.ics"
  • Nextcloud — Comprehensive alternative with built-in web calendar.
  • Vikunja — Task management that can sync with Radicale.
  • Authentik — For unified SSO and OIDC authentication.
  • Tailscale — Secure remote access to your Radicale instance.
  • Home Assistant — For integrating calendars into home automation.
  • n8n — For automating scheduling workflows (e.g., meeting reminders).
  • Chronos MCP — To expose CalDAV data to AI agents.
  • Gemma 3 — AI model often used for agentic scheduling.
  • DAVx⁵ — The industry-standard Android synchronization client.

Sources / References

Contribution Metadata

  • Confidence: high
  • Last reviewed: 2026-07-21