EteSync vs Radicale: Encrypted vs Lightweight CalDAV

Unlike most CalDAV servers that store your calendar events and contacts as plain text on disk, EteSync encrypts everything end-to-end before it reaches the server. Radicale takes the opposite approach — maximum simplicity, minimum overhead, no encryption layer. The choice comes down to whether you trust your own server enough to skip encryption.

Quick Verdict

For most self-hosters running a server they control, Radicale wins on simplicity. It deploys in one container, uses 30 MB of RAM, needs no database, and works with every CalDAV client out there. EteSync is the right choice if you need zero-knowledge encryption — the server never sees your plaintext data — but that security comes with limited client support and a more complex stack.

Updated March 2026: Verified with latest Docker images and configurations.

Overview

Radicale is a Python-based CalDAV and CardDAV server that stores data as flat files. It works with any standard CalDAV/CardDAV client (Thunderbird, iOS, macOS, DAVx5, GNOME Calendar). No database, no external dependencies, minimal configuration.

EteSync (Etebase) is an end-to-end encrypted sync server for calendars, contacts, tasks, and notes. Built on Django, it uses its own protocol alongside CalDAV/CardDAV bridges. The server never has access to decrypted data — encryption keys live only on your devices.

Feature Comparison

FeatureEteSync (Etebase)Radicale
CalDAV supportVia bridge adapterNative
CardDAV supportVia bridge adapterNative
End-to-end encryptionYes (zero-knowledge)No (plaintext on disk)
DatabaseSQLite or PostgreSQLNone (flat files)
Docker services1-2 (server + optional PostgreSQL)1
RAM usage (idle)~100-200 MB~30 MB
Client appsEteSync apps + DAVx5 bridgeAny CalDAV/CardDAV client
Tasks/todo syncYesYes (VTODO)
Notes syncYes (encrypted notes)No
Web UIYes (EteSync web client)No (admin only)
Multi-userYes (user accounts)Yes (htpasswd auth)
LicenseAGPL-3.0GPL-3.0
LanguagePython (Django)Python
GitHub stars1,700+3,300+

Installation Complexity

Radicale deploys as a single container with a data volume. No database, no configuration files required for basic usage. Default htpasswd authentication works out of the box.

# Radicale: 1 service
services:
  radicale:
    image: tomsquest/docker-radicale:3.6.1.0
    ports:
      - "5232:5232"
    volumes:
      - radicale_data:/data

EteSync (Etebase server) requires a configuration INI file, and for production you should add PostgreSQL. The server uses Django’s INI-based config instead of environment variables, and ALLOWED_HOSTS must be set correctly or requests get rejected.

# EteSync: 2 services (production)
services:
  etebase:
    image: victorrds/etebase:0.14.2
    ports:
      - "3735:3735"
    volumes:
      - etebase_data:/data
  db:
    image: postgres:16-alpine

Radicale is dramatically simpler to deploy and configure.

Performance and Resource Usage

ResourceEteSync (Etebase)Radicale
RAM (idle)~100-200 MB~30 MB
RAM (active)~200-400 MB~50 MB
CPULowMinimal
Disk (application)~200 MB~50 MB
Minimum RAM512 MB64 MB

Radicale is one of the lightest self-hosted services you can run. It stores data as .ics and .vcf files — no database overhead, no indexing, no background processes. EteSync’s Django framework and encryption layer add overhead, though it’s still modest compared to heavyweight alternatives like Nextcloud.

Community and Support

Radicale has a larger community (3,300+ GitHub stars) and works with the entire CalDAV/CardDAV ecosystem — any client that supports the standard protocols works. Documentation is straightforward. The project has been stable for years with occasional maintenance releases.

EteSync has a dedicated community (1,700+ GitHub stars) focused on privacy. The EteSync team maintains official apps for Android, iOS, web, and a DAVx5 bridge for standard CalDAV/CardDAV clients. Development has slowed since 2024 but the project is stable.

Use Cases

Choose Radicale If…

  • You want the simplest possible calendar/contacts server
  • You trust your own server’s disk security and don’t need encryption at rest
  • You want compatibility with every CalDAV/CardDAV client (iOS, macOS, Thunderbird, GNOME)
  • You’re running on minimal hardware (Raspberry Pi, low-RAM VPS)
  • You prefer flat-file storage you can back up with cp or rsync

Choose EteSync If…

  • End-to-end encryption is non-negotiable (the server never sees plaintext data)
  • You want encrypted notes and task sync alongside calendars and contacts
  • You’re comfortable using EteSync’s dedicated client apps or DAVx5 bridge
  • You need a web interface for accessing calendars from any browser
  • You run servers you don’t fully control (shared hosting, employer VPS)

Final Verdict

Radicale wins on simplicity, resource efficiency, and client compatibility. It’s the obvious choice for self-hosters who already secure their servers with SSH keys, firewalls, and encrypted disks. Adding an application-level encryption layer on top of that is redundant for most setups.

EteSync is the right tool when you genuinely need zero-knowledge encryption. If you’re syncing sensitive data through infrastructure you can’t fully trust, or if you want mathematical guarantees that a server compromise won’t expose your calendar data, EteSync delivers that. The trade-off is fewer client options and a more complex deployment.

FAQ

Can I use iOS Calendar directly with EteSync?

Not directly. You need the EteSync iOS app or configure DAVx5 (Android) / EteSync bridge to expose a standard CalDAV interface. Radicale works natively with iOS Calendar by adding a CalDAV account.

Does Radicale support encryption?

Radicale stores data as plaintext .ics and .vcf files on disk. You can encrypt the underlying filesystem (LUKS, ZFS encryption), but there’s no application-level encryption. Any admin with server access can read calendar events.

Can I migrate from Radicale to EteSync?

There’s no automated migration tool. You’d need to export calendars as .ics files from Radicale and import them through an EteSync client. Contacts (.vcf) work similarly. The migration is manual but straightforward for small collections.

Which handles more users better?

Both handle hundreds of users fine. Radicale’s flat-file approach starts showing performance issues around 10,000+ calendar entries per user. EteSync with PostgreSQL scales better for large datasets but needs more resources.

Comments