This page documents the canonical HTTP contract for this endpoint.
Conditional availability: these routes require CALENDAR_INTEGRATION_ENABLED=true; otherwise they return 404. Use a signed-in user session or a developer API key with the listed Calendar scope. Access uses the key owner’s own connected personal calendar in the current workspace. Calendar OAuth consent is separate from email consent. Credentials are never returned.
Empty filtered pages can still have has_more=true. Continue the complete cursor chain from the first page to exhaustion before claiming no matching event exists. Each query covers at most 90 days, including historical periods; the bound is per query. Coverage is limited to this account, range, and filters. Calendar evidence establishes a scheduled meeting and does not establish that a call occurred. To expand one compact match, get its agenda event details.
Command Center reads additionally respect CALENDAR_AGENT_READ_ENABLED; agent writes require CALENDAR_AGENT_ENABLED=true. HTTP and CLI availability do not by themselves prove that the harness adapter is enabled. Use capability discovery for the deployed surface.
Path parameters
providerrequiredstring
google or microsoft; use a connected account from the connections response.
| Name | Type | Description |
|---|---|---|
| providerrequired | string | google or microsoft; use a connected account from the connections response. |
Query parameters
startrequiredstring (date-time)
Inclusive start with a UTC offset. The requested range must be positive and at most 90 days.
endrequiredstring (date-time)
Exclusive end with a UTC offset, after start.
query· optionalstring
Text search, 1–200 characters. Google searches at the provider; Microsoft filters each retrieved page case-insensitively.
attendee· optionalstring (email)
Filter by an exact attendee email.
attendee_domain· optionalstring
Exact attendee domain, for example example.com; omit @ and URL prefixes.
page_size· optionalinteger
1–100; the HTTP route defaults to 100.
cursor· optionalstring
Opaque next_cursor from the prior page. Preserve the same account, range, filters, and projection.
projection· optionalstring
compact or full; the HTTP route defaults to full. Compact omits event descriptions.
include_crm_context· optionalboolean
Optional organization CRM context; default false.
| Name | Type | Description |
|---|---|---|
| startrequired | string (date-time) | Inclusive start with a UTC offset. The requested range must be positive and at most 90 days. |
| endrequired | string (date-time) | Exclusive end with a UTC offset, after start. |
| query | string | Text search, 1–200 characters. Google searches at the provider; Microsoft filters each retrieved page case-insensitively. |
| attendee | string (email) | Filter by an exact attendee email. |
| attendee_domain | string | Exact attendee domain, for example example.com; omit @ and URL prefixes. |
| page_size | integer | 1–100; the HTTP route defaults to 100. |
| cursor | string | Opaque next_cursor from the prior page. Preserve the same account, range, filters, and projection. |
| projection | string | compact or full; the HTTP route defaults to full. Compact omits event descriptions. |
| include_crm_context | boolean | Optional organization CRM context; default false. |
Errors
| Status | Meaning |
|---|---|
| 400 | Invalid range or provider state, reconnect required, CRM match missing, or event not editable. |
| 401 | Authentication required. |
| 403 | The key lacks the required Calendar scope. |
| 404 | Calendar is disabled, the connection is unavailable, or the event is not found. |
| 409 | Event version changed; read and review again. |
| 422 | Invalid request fields. |
| 502 | Calendar provider request failed. |
