Appearance
CalDAV
19 endpoints at a glance
| Method | Path | Summary |
|---|---|---|
GET | /caldav/accounts | List Accounts |
POST | /caldav/accounts | Create Account |
DELETE | /caldav/accounts/{account_id} | Delete Account |
PUT | /caldav/accounts/{account_id} | Update Account |
GET | /caldav/accounts/{account_id}/calendars | List Calendars For Account |
PUT | /caldav/accounts/{account_id}/calendars | Save Calendars For Account |
GET | /caldav/accounts/{account_id}/calendars/available | List Available Calendars For Account |
POST | /caldav/accounts/{account_id}/set-default | Set Default Account |
PATCH | /caldav/accounts/{account_id}/window | Update Account Window |
GET | /caldav/calendars | List Calendars |
PUT | /caldav/calendars | Save Calendars |
GET | /caldav/calendars/available | List Available Calendars |
DELETE | /caldav/connection | Delete Connection |
GET | /caldav/connection | Get Connection |
PUT | /caldav/connection | Save Connection |
PUT | /caldav/connection/export-default | Set Default Calendar |
PATCH | /caldav/connection/window | Update Window |
POST | /caldav/sync | Sync Now |
POST | /caldav/test | Test Connection |
caldav
Test Connection
List Accounts
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"
{
}
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
Requiredstring
Request Body
application/json
JSON "server_url": "string", "username": "string", "password": "string", "label": "string"
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
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
Requiredstring
Query Parameters
delete_events
Type
boolean
Default
trueResponses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Set Default Account
Update Account Window
PATCH
/caldav/accounts/{account_id}/window
Per-account sliding-window override.
Parameters
Header Parameters
authorization
Path Parameters
account_id*
Type
Requiredstring
Request Body
application/json
JSON "window_days_past": 0, "window_days_future": 0
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
List Available Calendars For Account
List Calendars For Account
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
Requiredstring
Request Body
application/json
JSON "urls": [ "string" ]
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Get Connection
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"
{
}
Delete Connection
Update Window
List Available Calendars
List Calendars
Save Calendars
Sync Now
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"
{
}