MCPSERV.CLUB
Radicale

Radicale

Self-Hosted

Lightweight CalDAV & CardDAV server for calendars and contacts

Active(100)
4.1kstars
0views
Updated 4 days ago

Overview

Discover what makes Radicale powerful

Radicale is a lightweight, standards‑compliant CalDAV and CardDAV server written in Python. It exposes full calendar and contact synchronization capabilities to any client that implements the WebDAV‑based protocols, including desktop clients (Outlook, Thunderbird), mobile OSes (iOS, Android), and web‑based tools. From a developer’s perspective, Radicale’s design prioritizes minimalism: the core engine is under 1 000 lines of Python, and data persistence is handled via a simple filesystem layout rather than a relational database. This makes the codebase approachable for contributors and facilitates rapid debugging or custom extension.

Protocol support

Authentication & Authorization

TLS

Data model

Overview

Radicale is a lightweight, standards‑compliant CalDAV and CardDAV server written in Python. It exposes full calendar and contact synchronization capabilities to any client that implements the WebDAV‑based protocols, including desktop clients (Outlook, Thunderbird), mobile OSes (iOS, Android), and web‑based tools. From a developer’s perspective, Radicale’s design prioritizes minimalism: the core engine is under 1 000 lines of Python, and data persistence is handled via a simple filesystem layout rather than a relational database. This makes the codebase approachable for contributors and facilitates rapid debugging or custom extension.

Key Features

  • Protocol support – Implements RFC 4791 (CalDAV) and RFC 6352 (CardDAV), with optional support for journal entries, to‑dos, and business cards.
  • Authentication & Authorization – Built‑in HTTP authentication (Basic/Digest) and fine‑grained ACLs via a pluggable auth backend. Permissions can be configured per user or group.
  • TLS – Supports HTTPS out of the box; configuration is a single ssl section in the ini file.
  • Data model – Stores calendars and address books as plain .ics/.vcf files in a hierarchical directory tree. The storage plugin is pluggable, allowing SQLite or custom backends.
  • Extensibility – A robust plugin API (hooks for authentication, storage, ACLs, and more) lets developers add new features or integrate with external services (e.g., LDAP, OAuth).

Technical Stack

  • Language – Python 3.10+ (the latest release requires 3.7+; older releases are compatible with 2.7).
  • Frameworks – Relies on the wsgiref standard library for WSGI handling; no heavy web framework is used, keeping dependencies minimal.
  • Storage – Default file backend uses the local filesystem; alternative storage plugins exist (e.g., SQLite, MySQL via sqlalchemy).
  • Testing – Uses pytest and coverage; continuous integration on GitHub Actions ensures 100 % test coverage.

Deployment & Infrastructure

Radicale can be run as a standalone WSGI application or behind any reverse proxy (NGINX, Apache). Its stateless design means multiple instances can be load‑balanced; each instance reads from the same shared filesystem or a networked storage backend. Docker images are available on Docker Hub, making containerized deployment trivial:

radicale:latest   # official image with minimal config

For high‑availability, a shared NFS or cloud block storage is recommended to avoid data inconsistencies across replicas.

Integration & Extensibility

The plugin system follows a simple hook interface. Developers can write Python modules that expose auth, storage, or acl classes, then reference them in the configuration. Webhooks are supported via the webhook plugin, allowing external services to react to calendar events. Because Radicale exposes a standard WebDAV API, it can be paired with existing authentication providers (LDAP, OAuth2) using third‑party middleware.

Developer Experience

  • Configuration – A single radicale.conf file with clear sections ([server], [storage], [auth]) and extensive comments. No code changes required for most setups.
  • Documentation – Comprehensive online docs, a detailed wiki, and an active issue tracker. The API reference is concise but covers all hook points.
  • Community – Active GitHub discussions, a dedicated mailing list, and frequent releases. Contributions are welcomed via pull requests; the codebase is intentionally small to lower the barrier for new contributors.

Use Cases

  1. Enterprise sync server – Deploy a self‑hosted CalDAV/CardDAV backend for an organization that wants full control over data, with LDAP authentication and TLS termination.
  2. Personal productivity stack – Run Radicale on a home NAS or Raspberry Pi, exposing calendars to iOS/Android devices without using cloud services.
  3. Developer sandbox – Use the Docker image in CI pipelines to test CalDAV/CardDAV clients against a real server.
  4. Custom integration – Extend Radicale with an OAuth2 plugin to allow single‑sign‑on for a web application that also needs calendar data.

Advantages

  • Simplicity – No database schema migrations; data lives as files, making backups straightforward.
  • Performance – Small memory footprint and fast I/O due to the lightweight WSGI stack.
  • Flexibility – The plugin architecture allows almost any backend or authentication scheme without touching the core.
  • Licensing – GPLv3 ensures that any derived work remains free, which is attractive for open‑source projects.

For developers looking to embed calendar and contact synchronization into their infrastructure without the overhead of a full‑blown enterprise server, Radicale offers an elegant balance between standards compliance, extensibility, and operational simplicity.

Open SourceReady to get started?

Join the community and start self-hosting Radicale today

Weekly Views

Loading...
Support Us

Featured Project

$30/month

Get maximum visibility with featured placement and special badges

Repository Health

Loading health data...

Information

Category
other
License
GPL-3.0
Stars
4.1k
Technical Specs
Pricing
Open Source
Database
None
Supported OS
LinuxWindowsmacOS
Author
Kozea
Kozea
Last Updated
4 days ago