CalDAV community integration, free and open source

Sync your CalDAV calendars (Nextcloud, iCloud, Fastmail…) into Gladys.
This integration copies your CalDAV calendars (Nextcloud, iCloud, Fastmail, Baïkal, Radicale, SOGo, Synology Calendar…) into the Gladys calendar. The events show up in the calendar view, can trigger scenes ("an event is coming") and are known by the assistant.
The sync is one way: Gladys reads your CalDAV server and never writes to it. An event created or edited in Gladys on a synced calendar is not sent back to the server.
Enable the integration for your account
Every Gladys user enables the integration for themselves: your calendars are personal data, nothing is synced until you enable it.
- Open the CalDAV integration, Configuration tab.
- In the My calendars block, fill in:
- the CalDAV server URL (see the table below);
- your username;
- your password — use an app password when your provider offers one.
- Click Enable. Your calendars show up a few seconds later.
| Provider | Server URL | Notes |
|---|---|---|
| Nextcloud | https://cloud.example.com/remote.php/dav | App password: Settings → Security |
| iCloud | https://caldav.icloud.com | Apple ID + app-specific password (mandatory) |
| Fastmail | https://caldav.fastmail.com | App password with CalDAV access |
| Baïkal | https://dav.example.com/dav.php | |
| Radicale | https://dav.example.com (or http://ip:5232) | |
| SOGo | https://mail.example.com/SOGo/dav | |
| Synology | https://nas.example.com:5001/caldav |
The integration discovers your calendars from that URL (principal and calendar home): no need to enter the address of each calendar. Task lists are ignored.
Choose what to sync and share
Every synced calendar shows up in Gladys with two toggles:
- Sync — switch it off to skip a calendar: its events are removed from Gladys. Switched back on, it is refilled by the next sync.
- Share — a calendar starts private. Shared, it becomes visible to the whole household, and usable by the scenes.
The name, description and color of a calendar follow the server's.
Settings (administrator)
These settings apply to every user:
- Sync interval — every 15 minutes by default (from 5 minutes to 24 hours).
- Days of history — past events older than 30 days (by default) are not synced.
- Days ahead — 365 days by default (up to 730): recurring events are expanded up to that horizon.
The Sync now button reads every account right away and shows how many calendars and events were synced.
Good to know
- An event deleted on the server disappears from Gladys at the next sync; a calendar deleted on the server is deleted from Gladys with its events.
- Recurring events (exceptions and moved occurrences included) are expanded into individual occurrences.
- Cancelled events (
STATUS:CANCELLED) are not imported. - A "floating" time event (without time zone) is read as UTC.
- Gladys limits: 50 calendars per user, 10,000 events per calendar; texts too long are truncated.
- Disabling the integration for your account deletes your synced calendars from Gladys (they stay untouched on the server).
Troubleshooting
The Configuration screen shows how many accounts fail. The most common causes:
- Wrong URL — check the URL in a CalDAV client (Thunderbird, DAVx⁵); try
the root URL of the server, the
/.well-known/caldavdiscovery is automatic. - Credentials refused — with two-factor authentication enabled, an app password is required.
- Self-signed certificate — the server must present a valid HTTPS certificate (or be reached over HTTP on the local network).
The administrator finds the details of the errors in the integration logs (the integration page, supervision tab). Passwords never show up there.
Configuration settings
These are the settings CalDAV asks for in its configuration screen in Gladys.
| Setting | Type | Required | Description |
|---|---|---|---|
| How it works | section | No | Each user enables the integration for themselves in the "My calendars" block below, with their own CalDAV server and credentials. Their calendars and events are copied into Gladys, one way: Gladys never writes to the CalDAV server. The settings here apply to every user. |
| Sync interval (minutes) | number | No | How often each user's calendars are read from their CalDAV server. |
| Days of history | number | No | Past events older than this are not synced. |
| Days ahead | number | No | Horizon of the sync: recurring events are expanded up to this many days ahead. |
How to install CalDAV in Gladys
- In Gladys, open Integrations: CalDAV appears in the catalog, next to the native integrations, with a community badge.
- Click Install. Gladys pulls the Docker image (
ghcr.io/bertrandda/gladys-caldav-sync:1.0.0), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration). - Open the Configuration screen of the integration, fill in the settings, and save.
- You can also install it directly from its repository URL: https://github.com/bertrandda/gladys-caldav-sync.
CalDAV requires Gladys >=5.2.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.
Not running Gladys yet? It is free and open source: follow the installation guide to get started.
About external integrations
CalDAV is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by bertrandda, not by the Gladys core team.
- Browse all integrations, native and community
- Build and publish your own external integration
- Source code on GitHub — source of this documentation