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.
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
Query Parameters
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/workspaces/string/calendar/range?from=string&to=string"{ "data": { "from": "string", "to": "string", "occurrences": [ { "id": "string", "eventId": "string", "originalStart": "string", "allDay": true, "startsAt": "string", "endsAt": "string", "startDate": "string", "endDate": "string", "cancelled": true, "event": { "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" } } ], "sourceHealth": [ { "sourceId": "string", "syncState": "current", "lastSyncedAt": "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 the calendar sources in a workspace
Returns every calendar the caller can see, including connected provider calendars and database-backed record sources, with each source's sync state. Requires the `workspace:read` permission; for user principals the native Snoze calendar is materialized on first call so it is always offered. Sources the caller has no item access to are omitted rather than erroring.
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.