Context :
My system relies on the SavvyCal API to synchronize bookings, cancellations and rescheduling with my database.
Current problem :
The webhooks event.attendee.cancelled and event.attendee.rescheduled do not simultaneously provide the following two identifiers in their payload:
event_id (to identify the group event)
attendee_id (to identify the participant concerned)
Consequence:
Impossible to update my database reliably when :
A participant cancels his/her participation in a group event.
A participant postpones his/her participation to another slot in the same event.
Case in point:
A group event "Maths lesson" (Event_123) has 6 participants (Attendee_A, Attendee_B, etc.).
Attendee_B cancels her participation → The webhook event.attendee.canceled is triggered, but I can't link this cancellation to Event_123 unambiguously, as the event_id is missing from the payload.
Result: My database can't be updated automatically, generating billing and tracking errors.
Solution requested:
Modify the payloads of the following webhooks to always include :
event_id (group event identifier)
attendee_id (participant identifier)
Ideal payload for event.attendee.canceled :
{
"event": {
"id": "Event_123", // ← Addition required
"title": "Math class - Group A"
},
"attendee": {
"id": "Attendee_B", // ← Already present
"email": "bob@example.com",
"name": "Bob Jones"
},
"timestamp": "2025-12-06T12:00:00Z",
"action": "cancelled"
}
Ideal payload for event.attendee.rescheduled :
{
"original_event": {
"id": "Event_123" // ← original_event
},
"new_event": {
"id": "Event_456" // ← New event (if applicable)
},
"attendee": {
"id": "Attendee_B", // ← Participant involved
"email": "bob@example.com"
},
"timestamp": "2025-12-06T12:00:00Z",
"action": "rescheduled"
}
Why this enhancement is critical:
Accuracy: Avoids reliance on email (unreliable for tracking).
Automation: Enables error-free synchronization with external systems (CRM, billing, etc.).
Consistency: Aligns these webhooks with the existing API schema (current documentation).
Expected impact:
Solves the problem for all users managing group bookings with individual tracking.
No break in compatibility (addition of fields only).