Skip to content
Preview. The endpoints on this page are illustrative and are likely to change as they move toward general availability. Documentation is published in advance so you can start shaping your integration; treat request and response details as subject to revision.

Event object

The Event is the envelope wrapper around every webhook delivery. It carries identifying metadata (event id, subscription id, correlation id) and a polymorphic data field whose shape depends on the eventType.

For scheduling events, data is a canonical Meetingmodel object — the same shape returned by the Platform API's /api/v1alpha1/scheduled-meetings endpoints. This is the point of the v2 payload version: partners who integrate against both the Platform API and webhooks write one Meeting mapper, not two.

The Event schema

json
{
  "eventId": "wev_...",
  "eventType": "scheduling.smartscheduler.scheduled",
  "eventTimestamp": "2026-06-16T17:30:00Z",
  "subscriptionId": "sub_...",
  "orgId": "org_...",
  "correlationId": "corr_...",
  "attemptNumber": 1,
  "deliveryTimestamp": "2026-06-16T17:30:01Z",
  "payloadVersion": "v2",
  "data": {
    // For scheduling events: a canonical Meeting object.
    // See /developer/v1alpha1/model/platform-api/scheduled-meeting
    "id": "mtg_...",
    "orgId": "org_...",
    "host": { "userId": "usr_...", "email": "...", "firstName": "...", "lastName": "...", "displayName": "..." },
    "attendee": { "...": "..." },
    "smartScheduling": { "...": "..." },
    "personalScheduling": null,
    "teamScheduling": null,
    "meetingAi": null,
    "...": "... see Meeting model for the full field set"
  }
}

Fields


eventId string

Unique identifier for this event, prefixed wev_. Stable across delivery attempts — the same eventId is used for the initial delivery and every retry. Use this for idempotency in your handler: if you've already processed the id, skip the payload.


eventType string

The event type that triggered this delivery. See Event Types for the catalog.


eventTimestamp string

When the event occurred, ISO 8601 UTC. Distinct from deliveryTimestamp — the two differ by network + queue latency.


subscriptionId string

The webhook subscription this delivery is going to, prefixed sub_. Useful if your endpoint serves multiple subscriptions.


orgId string

Your organization's identifier, prefixed org_. Also present inside data.orgId on scheduling events; kept at the envelope level so partners routing across multiple orgs can filter without parsing the payload.


correlationId string

Shared across every delivery attempt for one event, prefixed corr_. Use this to correlate a retry in your logs with the original attempt. Also queryable through the delivery log endpoint.


attemptNumber number

1 for the initial delivery, 2 and up for retries. See Lifecycle for the retry policy.


deliveryTimestamp string

When this specific delivery attempt was sent, ISO 8601 UTC.


payloadVersion string

Currently always "v2" in v1alpha1. Distinguishes the canonical Meeting shape (v2) from the legacy nested meetingInfo shape (v1). Subscriptions created via POST /api/v1alpha1/webhook-subscriptions default to v2. Subscriptions created via the pre-v1alpha1 developer dashboard continue emitting v1 payloads — see v0.1 webhooks documentation for that shape.

Also carried on the outgoing HTTP request as X-Cirrus-Payload-Version: 2 so a consumer parsing raw HTTP without inspecting subscription metadata can still branch on version.


data object

The event-specific payload. Its shape is determined by eventType:

eventTypedata shape
scheduling.smartscheduler.*, scheduling.personalscheduling.*, scheduling.teamscheduling.*Canonical Meetingmodel
meetingai.*Reserved for Meeting AI events. Payload shapes will be documented on the event-type pages as they become available.

For scheduling events, presence of a feature sub-object on the meeting tells you which scheduling experience produced the booking: data.smartScheduling populated → Smart Scheduler; data.personalScheduling populated → personal scheduling; data.teamScheduling populated → team scheduling. There is no separate type discriminator — the sub-objects are self-identifying.

Raleigh, NC — a Cirruspath, Inc. company