AppointmentWebhookEnvelope
eventTypeAppointmentWebhookEventrequired
Possible values: [appointment_action_required, appointment_confirmed, appointment_alternatives_requested, appointment_rescheduled, appointment_cancelled, appointment_rejected, appointment_expired]
timestampstring<date-time>required
payload objectrequired
Bounded payload delivered only to webhooks subscribed to the exact appointment event. OAuth credentials and conversation contents are excluded.
appointment objectrequired
idstring<uuid>required
statusstringrequired
Possible values: [pending_confirmation, awaiting_customer, confirmed, cancelled, rejected, expired]
service objectrequired
idstringrequired
namestringrequired
startstring<date-time>nullablerequired
endstring<date-time>nullablerequired
timezonestringrequired
Example:
America/Sao_Paulolocationstringnullablerequired
reasonstringnullablerequired
versionintegerrequired
Possible values: >= 1
expiresAtstring<date-time>
Session expiry when present; recorded replay preserves the original value.
AppointmentWebhookEnvelope
{
"eventType": "appointment_confirmed",
"timestamp": "2026-10-06T15:00:00.000Z",
"payload": {
"appointment": {
"id": "2d07a67f-d410-46a4-95b0-7b1952a1fcfa",
"status": "confirmed",
"service": {
"id": "consultation",
"name": "Consultation"
},
"start": "2026-10-07T15:00:00.000Z",
"end": "2026-10-07T15:30:00.000Z",
"timezone": "America/Sao_Paulo",
"location": null,
"reason": null,
"version": 2
}
}
}