Skip to main content
POST
cURL

What this endpoint is for

Register a URL that Novacal calls whenever something happens to an event you host or organize. Webhooks let you react to bookings in real time instead of polling the events endpoint.

Available events

Subscribe to one or more events per webhook. You can register several webhooks pointing at different URLs.

Delivery format

Novacal sends a POST request with a JSON body:
The data object is the same event payload returned by the Get Event endpoint.

Verifying deliveries

Every delivery carries two headers: Recompute the signature over the raw body and compare it before trusting a request:
Always compare the signature against the raw request body, before any JSON parsing or re-serialization.

Retries

Respond with a 2xx status code to acknowledge a delivery. Novacal retries a failed delivery up to three times with a short backoff, so your endpoint should be idempotent.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Webhook payload

url
string
required

The HTTPS URL that Novacal sends deliveries to

Example:

"https://example.com/hooks/novacal"

events
enum<string>[]
required

The events to subscribe to. At least one is required.

Minimum array length: 1
Available options:
event.created,
event.rescheduled,
event.canceled
Example:
is_active
boolean

Whether the webhook starts active. Defaults to true.

Example:

true

Response

201 - application/json

Webhook created. The response contains the signing secret used to verify deliveries.

success
boolean
required

Indicates whether the request was successful

Example:

true

data
object
required