Create a calendar event
Creates an event with its attendees and linked items on the given calendar, or on the workspace's native calendar when `calendarId` is omitted, and queues a push to the provider when the calendar is connected. The caller needs edit access to the calendar's item; a missing or read-only calendar and an invalid title or link set are rejected as validation errors. Send an `Idempotency-Key` header to make retries safe; a replay within the window returns the original response.
Authorization
apiKey Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/v1/workspaces/string/calendar/events" \ -H "Content-Type: application/json" \ -d '{ "title": "string", "time": { "allDay": true } }'{ "data": { "id": "string", "workspaceId": "string", "sourceId": "string", "sourceKind": "native", "calendarId": "string", "recordSourceId": "string", "recordId": "string", "databaseId": "string", "title": "string", "description": "string", "location": "string", "allDay": true, "startsAt": "string", "endsAt": "string", "startDate": "string", "endDate": "string", "timeZone": "string", "recurrenceRule": "string", "recurrenceExceptions": [ "string" ], "status": "confirmed", "visibility": "default", "syncState": "current", "revision": 0, "attendees": [ { "id": "string", "userId": "string", "email": "string", "displayName": "string", "responseStatus": "needs_action", "optional": true, "organizer": true } ], "links": [ { "id": "string", "kind": "string", "label": "string", "url": "string" } ], "createdAt": "string", "updatedAt": "string" }}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}List calendar occurrences in a date range
Expands recurring events into individual occurrences between `from` and `to` across the caller's accessible sources, refreshing database-backed events first, and returns them with per-source sync health. Requires `workspace:read`. Narrow the result with `sourceIds`, `statuses` (both comma-separated), and a `search` substring on the title; ranges must be positive and no longer than two years or the request is rejected as a validation error.
Update a calendar event
Applies the patch to the event, or for a database-backed event writes the change through to the source record's fields, and queues a provider push where one is linked. The caller needs edit access to the event's item. Returns a not-found error for an unknown or deleted event and a conflict when `expectedRevision` no longer matches the stored revision. Send an `Idempotency-Key` header to make retries safe; a replay within the window returns the original response.