Skip to main content

Webhooks

Registering a webhook

Visit the Webhooks page in the SavvyCal Dashboard and follow the prompts to register a new webhook.

For platforms, register webhooks on the platform settings page under the "Platform webhooks" section.

Listening for events

When an event occurs that triggers a webhook, we will send an HTTP POST to the URL you specified, with a JSON-encoded body of this shape:

POST /my-webhook-receiver HTTP/1.1

host: https://myapp.com
user-agent: SavvyCal Webhooks (https://savvycal.app)
x-savvycal-signature: sha256=6CAA4DEF5C3463B785E885FF19B8987B348E19399D2C5FB291274EDFA7128105
x-savvycal-webhook-id: wh_XXXXXXXXXX
content-type: application/json

{
"id": "evt_d025a96ac0c6",
"account_id": "acct_d025a96ac0c6",
"version": "1.0",
"created_at": "2025-03-12T12:34:55Z",
"data": {
"type": "appointment.created",
"object": {...}
}
}

Event types

The following event types are available. The Schema definitions referenced in the table below represent the shape of the data field in the webhook payload.

Event TypeDescription
appointment.createdEmitted when a new appointment is created. (Schema)
appointment.rescheduledEmitted when an existing appointment is rescheduled. (Schema)
appointment.canceledEmitted when an existing appointment is canceled. (Schema)
appointment.confirmedEmitted when an existing appointment is confirmed. (Schema)
appointment.deletedEmitted when an existing appointment is deleted. (Schema)
block.createdEmitted when a new block is created. (Schema)
block.updatedEmitted when an existing block is updated. (Schema)
block.deletedEmitted when an existing block is deleted. (Schema)
connected_account.createdEmitted when a new calendar integration is connected. (Schema)
connected_account.deletedEmitted when a calendar integration is disconnected. (Schema)
connected_account.refresh_failedEmitted when an OAuth token refresh permanently fails. (Schema)
connected_account.reconnectedEmitted when a previously failed integration is reconnected. (Schema)