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.
Supply at least one non-null field. Only the organizer can update a CRM-matched event. Provider etags protect the write; send expected_etag from the reviewed read. Recurring-series edits are unsupported, and all-day time edits are unsupported. A mutation may notify attendees.
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.
event_idrequiredstring
Exact provider-issued event ID. URL-encode it when constructing a path; never reconstruct it from a title.
| Name | Type | Description |
|---|---|---|
| providerrequired | string | google or microsoft; use a connected account from the connections response. |
| event_idrequired | string | Exact provider-issued event ID. URL-encode it when constructing a path; never reconstruct it from a title. |
Query parameters
expected_etag· optionalstring
Exact etag from the most recent event read. A mismatch returns 409; read and review again.
| Name | Type | Description |
|---|---|---|
| expected_etag | string | Exact etag from the most recent event read. A mismatch returns 409; read and review again. |
Body parameters
title· optionalstring
1–250 characters.
description· optionalstring
Up to 10,000 characters.
start· optionalstring (date-time)
Updated start with a UTC offset.
end· optionalstring (date-time)
Updated end with a UTC offset.
| Name | Type | Description |
|---|---|---|
| title | string | 1–250 characters. |
| description | string | Up to 10,000 characters. |
| start | string (date-time) | Updated start with a UTC offset. |
| end | string (date-time) | Updated end with a UTC offset. |
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. |
