Skip to main content

Get Calendar agenda

Search your connected primary calendar, including events without CRM Lead matches, with bounded pagination and coverage.

GET/api/calendar/{provider}/agenda
HTTP referenceScope calendar:readUpdated October 15, 2026

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

  • providerrequired

    string

    google or microsoft; use a connected account from the connections response.

Query parameters

  • 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 · optional

    string

    Text search, 1–200 characters. Google searches at the provider; Microsoft filters each retrieved page case-insensitively.

  • attendee · optional

    string (email)

    Filter by an exact attendee email.

  • attendee_domain · optional

    string

    Exact attendee domain, for example example.com; omit @ and URL prefixes.

  • page_size · optional

    integer

    1–100; the HTTP route defaults to 100.

  • cursor · optional

    string

    Opaque next_cursor from the prior page. Preserve the same account, range, filters, and projection.

  • projection · optional

    string

    compact or full; the HTTP route defaults to full. Compact omits event descriptions.

  • include_crm_context · optional

    boolean

    Optional organization CRM context; default false.

Errors

StatusMeaning
400Invalid range or provider state, reconnect required, CRM match missing, or event not editable.
401Authentication required.
403The key lacks the required Calendar scope.
404Calendar is disabled, the connection is unavailable, or the event is not found.
409Event version changed; read and review again.
422Invalid request fields.
502Calendar provider request failed.

Docs