Meetings
Meeting created
Sent when a meeting first appears: a calendar sync found it, or a bot was sent to it.
Delivered to every workspace webhook endpoint subscribed to this event, signed with the endpoint's whsec_ secret. See Webhooks for signature verification, retries, and ordering.
postWebhookmeeting.created
Payload
Example payload
{
"data": {
"object": {
"id": "mtg_01k6a2r9s8x7c2dvq3m5n6p4ab",
"object": "meeting",
"workspace_id": "wks_01k6a2r9s8x7c2dvq3m5n6p4ab",
"source": "calendar_connection",
"phase": "past",
"title": "Weekly sync with Acme",
"starts_at": "2026-09-29T09:00:00Z",
"ends_at": "2026-09-29T09:30:00Z",
"meeting_url": "https://meet.google.com/abc-defg-hij",
"platform": "meet",
"organizer": {
"name": "Marc",
"email": "marc@gurusup.com",
"member_id": "mem_01k69x9s8x7c2dvq3m5n6p4ab"
},
"participants": [
{
"name": "Marc",
"email": "marc@gurusup.com",
"member_id": "mem_01k69x9s8x7c2dvq3m5n6p4ab"
},
{
"name": "Ana Ruiz",
"email": "ana@acme.com",
"member_id": null
}
],
"calendar_event": {
"id": "cev_01k6a2r9s8x7c2dvq3m5n6p4ab",
"object": "calendar_event",
"meeting_id": "mtg_01k6a2r9s8x7c2dvq3m5n6p4ab",
"ical_uid": "7kq2b@google.com",
"recurring": true,
"title": "Weekly sync with Acme",
"starts_at": "2026-09-29T09:00:00Z",
"ends_at": "2026-09-29T09:30:00Z",
"meeting_url": "https://meet.google.com/abc-defg-hij",
"organizer": {
"name": "Marc",
"email": "marc@gurusup.com",
"member_id": "mem_01k69x9s8x7c2dvq3m5n6p4ab"
},
"attendees": [
{
"name": "Marc",
"email": "marc@gurusup.com",
"member_id": "mem_01k69x9s8x7c2dvq3m5n6p4ab",
"response": "accepted"
},
{
"name": "Ana Ruiz",
"email": "ana@acme.com",
"member_id": null,
"response": "needs_action"
}
],
"source": "calendar_connection",
"metadata": {},
"cancelled_at": null,
"created_at": "2026-09-22T08:00:00Z",
"updated_at": "2026-09-29T09:31:10Z"
},
"policy": {},
"effective_policy": {
"recording": {
"enabled": true,
"enabled_because": "in_scope",
"methods": {
"bot": {
"start": "on_join",
"mode": "audio_and_video",
"silence_detection": {
"alert": true
}
}
}
},
"transcription": {
"language": "auto"
},
"summary": {
"template": null,
"language": "en"
},
"branding": {
"brand_kit_id": null
}
},
"recordings": [
{
"id": "bot_01k6b0r9s8x7c2dvq3m5n6p4ab",
"type": "bot",
"status": "completed",
"started_at": "2026-09-29T09:00:00Z",
"ended_at": "2026-09-29T09:31:10Z"
}
],
"results": {
"status": "ready",
"transcript": {
"status": "ready",
"language": "en"
},
"summary": {
"status": "ready"
},
"media": {
"status": "ready",
"duration_seconds": 1834
}
},
"metadata": {},
"created_at": "2026-09-22T10:14:03Z",
"updated_at": "2026-09-29T09:41:10Z"
}
}
}Response
Return any 2xx status to acknowledge receipt. Any other status, or a timeout, triggers a retry — up to 21 attempts with backoff.
Changes
Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.