Back to Overview

CalDAV Integration

Connect any CalDAV-compatible calendar server — Nextcloud, Radicale, Zimbra, iCloud, Fastmail, and more.

Luka Breitig — Technical Product Builder & AI Developer
Luka Breitig

Technical Product Builder & AI Developer

📋 Before you begin

You will need three things to hand before starting. Gather them first.

A running CalDAV server — Nextcloud, Radicale, Baikal, iCloud, Fastmail, Zimbra, or any other CalDAV-compatible server
The CalDAV URL for your calendar — the exact format varies by provider, see the provider table below
Your username and an app password (or account password if your provider does not support app passwords)

Outcome

By the end of this guide, Tymeslot will sync with your CalDAV calendar for availability checking and booking creation.

What is CalDAV?

CalDAV (Calendar Distributed Authoring and Versioning) is an open standard for accessing calendar data over HTTPS. You may also see it called "WebDAV Calendar". Most self-hosted and privacy-friendly calendar servers speak CalDAV — it is the alternative to Google Calendar and Outlook when you want to own your data.

Unlike Google or Outlook integrations, CalDAV does not require an OAuth app or API registration. All you need is a server URL, a username, and a password. Tymeslot reaches out to your server periodically to read availability and write new booking events.

1 Add a CalDAV calendar in Tymeslot

  1. 1 Navigate to [Dashboard][Settings][Integrations].
  2. 2 Find the [CalDAV] section and click [Add CalDAV Calendar]. A form with three fields appears.
  3. 3 Fill in all three fields — Server URL, Username, and Password — using the provider-specific formats in the table below.
  4. 4 Click [Save]. Tymeslot immediately tests the connection. On success, the calendar name and last sync time appear in the Integrations list.

2 Server URL formats by provider

The URL format is the most commonly confusing part. Find your provider in this table and copy the pattern exactly, substituting your own values.

Provider Server URL pattern Password type
Nextcloud https://your-nextcloud.com/remote.php/dav/calendars/USERNAME/ App password
Radicale https://radicale.example.com/USERNAME/CALENDAR-NAME/ Account password
Baikal https://baikal.example.com/dav.php/calendars/USERNAME/ Account password
iCloud https://caldav.icloud.com/ App password (required)
Fastmail https://caldav.fastmail.com/dav/principals/user/EMAIL/ App password (required)
Zimbra https://zimbra.example.com/dav/USER@DOMAIN/Calendar Account password

Finding your CalDAV URL

Most CalDAV servers display the CalDAV URL in their web UI. In Nextcloud, open the Calendar app → click the gear icon at the bottom left → copy the CalDAV address shown there. In Radicale and Baikal, the URL follows the pattern in the table above based on your configured username and collection name.

🔑 App passwords

Many providers block third-party apps from using your main account password and require an app-specific password instead. An app password is a randomly generated token that can be revoked independently without affecting your account or other apps.

Providers that require app passwords for CalDAV access include iCloud, Fastmail, and (by best practice) Nextcloud. Here is how to generate one for each:

Nextcloud

Click your avatar → [Settings][Security] → scroll to App passwords → enter a descriptive name (e.g. "Tymeslot") → click [Create new app password]. Copy the password immediately — it is only shown once.

Apple iCloud

Go to appleid.apple.com → sign in → under Sign-In and Security, click App-Specific Passwords → click the + icon → enter a label → click [Create]. Use this password with your full iCloud email address as the username.

Fastmail

Log into Fastmail → [Settings][Privacy & Security]Third-party apps → click [New app password] → set the access to Calendar (CalDAV) → click [Generate Password].

🌐 Network requirements

CalDAV is a pull protocol: Tymeslot reaches out to your server, not the other way around. Your CalDAV server must be reachable from Tymeslot's servers over the public internet via HTTPS.

A server running on your local network (e.g. 192.168.x.x) without a public URL will not work
A self-hosted server behind a VPN without a public DNS entry will not work unless Tymeslot is deployed on the same network
A self-hosted server with a valid public HTTPS domain and no firewall blocking inbound requests will work correctly

🔧 Troubleshooting

"Authentication failed"

Your regular account password may be blocked for third-party access. Generate an app password using the instructions above and use that instead. Double-check that the username is exactly as your server expects it (some servers require an email address, others a short username).

"Calendar not found" or "404 Not Found"

The URL path is wrong. Compare your URL against the provider table above. Common mistakes: a missing trailing slash, using the wrong path segment (e.g. principals vs calendars), or using your email address where a short username is expected.

"Connection refused" or "Could not reach server"

Tymeslot cannot reach your CalDAV server. Check that the server is accessible over HTTPS from the public internet. If it is self-hosted, confirm that port 443 is open and that your DNS record is resolving correctly.

Calendar added but availability is not being blocked

CalDAV sync runs on a schedule — allow up to 5 minutes after saving your calendar event for Tymeslot to pick up the change. If the slot is still not blocked after 5 minutes, check the sync status in [Integrations]. A red status indicator means the last sync attempt failed.

Frequently Asked Questions

My CalDAV calendar shows as connected but events aren't syncing — why?

The most common cause is that the URL points to the CalDAV server root or principal collection rather than a specific calendar. Tymeslot needs a URL that resolves to a single calendar collection. For example, on Nextcloud the full per-calendar URL looks like https://your-nextcloud.com/remote.php/dav/calendars/USERNAME/personal/ — note the calendar name appended at the end. Open your CalDAV client and copy the individual calendar URL, not the account-level URL.

What CalDAV servers does Tymeslot support?

Any server that implements the CalDAV standard (RFC 4791) will work: Nextcloud, Radicale, Baikal, Zimbra, iCloud, Fastmail, Apple Calendar Server, DAViCal, SabreDAV, and others. If your server is not listed in the provider table, use its documented CalDAV URL format — the connection mechanism is identical across all compliant servers.

Do I need to create an app password for Nextcloud?

If two-factor authentication (2FA) is enabled on your Nextcloud account, using your main account password for CalDAV access will fail — Nextcloud blocks it. You must generate an app password instead: click your avatar → [Settings] → [Security] → scroll to App passwords → enter a label such as "Tymeslot" → click [Create new app password]. Copy it immediately as it is only shown once. Even without 2FA, app passwords are the recommended approach because they can be revoked individually.

The connection test passes but new bookings don't appear in my calendar — what should I check?

Confirm that the calendar URL points to a calendar you have write access to. Read-only shared calendars and subscribed (external) calendars will pass a read test but reject event creation. Also verify the CalDAV user account has write permissions on that specific calendar — on Nextcloud, check sharing settings in the Calendar app. Finally, check the sync status indicator in [Integrations]; a red indicator means the last operation failed and the error detail is shown alongside it.

Can I sync multiple CalDAV calendars?

Each Tymeslot calendar integration connects to one CalDAV calendar. However, you can add multiple CalDAV integrations — one per calendar — and then choose which calendar each event type reads availability from and writes bookings to. Go to [Dashboard] → [Settings] → [Integrations] and click [Add CalDAV Calendar] for each additional calendar you want to connect.

Verify the integration is working

  1. 1 Go to [Dashboard][Settings][Integrations] and confirm your CalDAV calendar shows a green status with a recent last-sync timestamp.
  2. 2 In your calendar app (Nextcloud, Thunderbird, Apple Calendar, etc.), create a test event covering a time slot that would otherwise be bookable.
  3. 3 Wait up to 5 minutes for the next sync cycle to run.
  4. 4 Open your Tymeslot booking page and confirm the time slot now appears as unavailable.
  5. 5 Delete the test event when done.

🔗 Related Articles

Read Google Calendar Integration

Google Calendar Integration

Sync Tymeslot with Google Calendar. Availability checks, booking creation, and conflict detection — all automatic.

Read Outlook Calendar Integration

Outlook Calendar Integration

Sync Tymeslot with Outlook Calendar. Works with personal Outlook.com accounts and Microsoft 365 work accounts.

Read Docker Self-Hosting

Docker Self-Hosting

Deploy Tymeslot using Docker and Docker Compose. Perfect for VPS hosting, home servers, or any environment with Docker support.