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.
apiKeyAuthorizationBearer <snoze_sk_…>Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.
workspaceId*stringSuccess
application/json- response
data*array<>curl -X GET 'https://api.snoze.dev/v1/workspaces/string/calendar/sources'{ "data": [ { "id": "string", "workspaceId": "string", "kind": "native", "name": "string", "color": "string", "enabledByDefault": true, "writable": true, "syncState": "current", "calendarId": "string", "connectionId": "string", "provider": "google_workspace", "databaseId": "string", "startFieldId": "string", "endFieldId": "string", "allDay": true, "isSystemField": true, "lastSyncedAt": "string" } ]}Undo or redo a saved board change
Uses the caller's persisted undo/redo stack, including their AI changes. Rejects edits to affected objects by other writers. Works across reloads and records the resulting board revision.
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.