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.