Skip to content

CalDAV

19 endpoints at a glance
MethodPathSummary
GET/caldav/accountsList Accounts
POST/caldav/accountsCreate Account
DELETE/caldav/accounts/{account_id}Delete Account
PUT/caldav/accounts/{account_id}Update Account
GET/caldav/accounts/{account_id}/calendarsList Calendars For Account
PUT/caldav/accounts/{account_id}/calendarsSave Calendars For Account
GET/caldav/accounts/{account_id}/calendars/availableList Available Calendars For Account
POST/caldav/accounts/{account_id}/set-defaultSet Default Account
PATCH/caldav/accounts/{account_id}/windowUpdate Account Window
GET/caldav/calendarsList Calendars
PUT/caldav/calendarsSave Calendars
GET/caldav/calendars/availableList Available Calendars
DELETE/caldav/connectionDelete Connection
GET/caldav/connectionGet Connection
PUT/caldav/connectionSave Connection
PUT/caldav/connection/export-defaultSet Default Calendar
PATCH/caldav/connection/windowUpdate Window
POST/caldav/syncSync Now
POST/caldav/testTest Connection

caldav


Test Connection

POST
/caldav/test

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"server_url": "string",
  
"username": "string",
  
"password": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


List Accounts

GET
/caldav/accounts

All of the user's CalDAV accounts, default first.

Parameters

Header Parameters

authorization

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers

Samples


Create Account

POST
/caldav/accounts

Add a NEW CalDAV account. Validates credentials against the server.

Doesn't pick calendars — that's a follow-up PUT to
/accounts/{id}/calendars.

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"server_url": "string",
  
"username": "string",
  
"password": "string",
  
"label": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


Update Account

PUT
/caldav/accounts/{account_id}

Update one account's credentials (validated against the server).

Parameters

Header Parameters

authorization

Path Parameters

account_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"server_url": "string",
  
"username": "string",
  
"password": "string",
  
"label": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Delete Account

DELETE
/caldav/accounts/{account_id}

Remove one account. Cascades its calendars (+ events, decision (1)).

Parameters

Header Parameters

authorization

Path Parameters

account_id*
Type
string
Required

Query Parameters

delete_events
Type
boolean
Default
true

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Set Default Account

POST
/caldav/accounts/{account_id}/set-default

Make this account the default (the one legacy endpoints act on).

Parameters

Header Parameters

authorization

Path Parameters

account_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Update Account Window

PATCH
/caldav/accounts/{account_id}/window

Per-account sliding-window override.

Parameters

Header Parameters

authorization

Path Parameters

account_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"window_days_past": 0,
  
"window_days_future": 0
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


List Available Calendars For Account

GET
/caldav/accounts/{account_id}/calendars/available

Re-discover one account's calendars from its server.

Parameters

Header Parameters

authorization

Path Parameters

account_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


List Calendars For Account

GET
/caldav/accounts/{account_id}/calendars

The selected calendars belonging to one account.

Parameters

Header Parameters

authorization

Path Parameters

account_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Save Calendars For Account

PUT
/caldav/accounts/{account_id}/calendars

Set one account's enabled calendar set (removed calendars cascade).

Parameters

Header Parameters

authorization

Path Parameters

account_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"urls": [
  
  
"string"
  
]
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Get Connection

GET
/caldav/connection

LEGACY: the default account's connection state (sans password).

Parameters

Header Parameters

authorization

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers

Samples


Save Connection

PUT
/caldav/connection

LEGACY: save credentials — updates the default account, or creates
the first one. Validates them against the server first.

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"server_url": "string",
  
"username": "string",
  
"password": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


Delete Connection

DELETE
/caldav/connection

LEGACY: disconnect the user — removes ALL accounts and calendars.

Parameters

Header Parameters

authorization

Query Parameters

delete_events
Type
boolean
Default
true

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Update Window

PATCH
/caldav/connection/window

LEGACY: sliding-window override on the DEFAULT account.

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"window_days_past": 0,
  
"window_days_future": 0
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


List Available Calendars

GET
/caldav/calendars/available

LEGACY: re-discover from the DEFAULT account's server.

Parameters

Header Parameters

authorization

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers

Samples


List Calendars

GET
/caldav/calendars

All selected calendars across every account.

Parameters

Header Parameters

authorization

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers

Samples


Save Calendars

PUT
/caldav/calendars

LEGACY: set the DEFAULT account's enabled calendar set.

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"urls": [
  
  
"string"
  
]
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


Sync Now

POST
/caldav/sync

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"calendar_id": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


Set Default Calendar

PUT
/caldav/connection/export-default

Store / clear the user's default export calendar.

The flag lives on the calendar doc (is_export_default) — a
connection no longer identifies a calendar now that a user can have
several accounts.

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"calendar_id": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


Kancil — one workspace for contacts, work and money.