Skip to content

CalDAV Integration

Connect your Triggerfish agent to any CalDAV-compatible calendar server. This enables calendar operations across providers that support the CalDAV standard, including iCloud, Fastmail, Nextcloud, Radicale, and any self-hosted CalDAV server.

Supported Providers

ProviderCalDAV URLNotes
iCloudhttps://caldav.icloud.comRequires app-specific password
Fastmailhttps://caldav.fastmail.com/dav/calendarsStandard CalDAV
Nextcloudhttps://your-server.com/remote.php/davSelf-hosted
Radicalehttps://your-server.comLightweight self-hosted
Baikalhttps://your-server.com/dav.phpSelf-hosted

For Google Calendar, use the Google Workspace

integration instead, which uses the native Google API with OAuth2. CalDAV is for non-Google calendar providers. :::

Setup

Step 1: Get Your CalDAV Credentials

You need three pieces of information from your calendar provider:

  • CalDAV URL -- The base URL for the CalDAV server
  • Username -- Your account username or email
  • Password -- Your account password or an app-specific password

App-Specific Passwords Most providers require an app-specific

password rather than your main account password. Check your provider's documentation for how to generate one. :::

Step 2: Configure Triggerfish

yaml
integrations:
  caldav:
    url: "https://caldav.icloud.com"
    username: "you@icloud.com"
    # password stored in OS keychain
    classification: CONFIDENTIAL
OptionTypeRequiredDescription
urlstringYesCalDAV server base URL
usernamestringYesAccount username or email
passwordstringYesAccount password (stored in OS keychain)
classificationstringNoClassification level (default: CONFIDENTIAL)

Step 3: Calendar Discovery

On first connection, the agent runs CalDAV discovery to find all available calendars. The discovered calendars are cached locally.

bash
triggerfish connect caldav

Available Tools

ToolDescription
caldav_listList all calendars on the account
caldav_eventsFetch events for a date range from one or all calendars
caldav_createCreate a new calendar event
caldav_updateUpdate an existing event
caldav_deleteDelete an event
caldav_searchSearch events by text query
caldav_freebusyCheck free/busy status for a time range

Classification

Calendar data defaults to CONFIDENTIAL because it contains names, schedules, locations, and meeting details. Accessing any CalDAV tool escalates the session taint to the configured classification level.

Authentication

CalDAV uses HTTP Basic Auth over TLS. Credentials are stored in the OS keychain and injected at the HTTP layer below the LLM context -- the agent never sees the raw password.