Help Center
Integrations

Webhooks

Updated April 24, 2026
36 views

title: Webhooks category: Integrations order: 11 description: Send real-time HTTP notifications to your endpoints when events happen in SchedulingKit.

Webhooks

Webhooks let you receive real-time notifications at your own server endpoints whenever something happens in SchedulingKit — a booking is created, a payment is completed, an event is cancelled, and more.

Where to find it

  • Settings → Webhooks.
  • Routes: /settings/webhooks (list), /settings/webhooks/create, /settings/webhooks/{id}/edit.

Creating a webhook

  1. Go to Settings → Webhooks.
  2. Click Create Webhook.
  3. Fill in the details:
    • Name — A label for this webhook (e.g. "CRM sync", "Zapier trigger").
    • URL — The endpoint that receives the POST requests (must be HTTPS).
    • Events — Select which events trigger this webhook.
    • Timeout — How long to wait for a response (1–300 seconds, default 30).
    • Retry attempts — How many times to retry on failure (0–10, default 3).
  4. Click Save. A signing secret is automatically generated.

Events

EventWhen it fires
event.createdA new event/booking is created
event.updatedAn event is updated (details changed)
event.cancelledAn event is cancelled
event.rescheduledAn event is rescheduled to a new time
event.reminderA reminder is triggered before the event
event.follow_upA follow-up is triggered after the event
booking.createdA booking is created (customer side)
booking.confirmedA booking is confirmed
booking.cancelledA booking is cancelled
payment.completedA payment is successfully processed
payment.failedA payment attempt failed
payment.refundedA payment is refunded
webhook.testTest event for verifying your endpoint

Payload format

Each webhook sends a JSON POST request:

json
{ "event": "booking.created", "timestamp": "2025-01-15T10:30:00Z", "data": { "id": 123, "event_type": "30-min-consultation", "date": "2025-01-20", "time": "14:00", "duration": 30, "invitee": { "name": "Jane Smith", "email": "jane@example.com" }, "location": "Zoom", "meeting_link": "https://zoom.us/j/..." } }

Headers

HeaderDescription
Content-Typeapplication/json
X-Webhook-EventThe event type (e.g. booking.created)
X-Webhook-SignatureHMAC-SHA256 signature for verifying authenticity
X-Webhook-Delivery-IdUnique ID for this delivery

Verifying signatures

Each webhook includes an X-Webhook-Signature header computed using your signing secret:

signature = HMAC-SHA256(signing_secret, request_body)

Compare this with your own computed signature to verify the request is genuine.

Testing

  1. On the webhook list or edit page, click Test.
  2. A test payload (webhook.test event) is sent to your endpoint.
  3. Check the response status and verify your endpoint received the data.

Delivery log

Each webhook tracks its deliveries:

  • Status code — The HTTP response code from your endpoint.
  • Response — The response body (truncated).
  • Delivered at — Timestamp of successful delivery.
  • Error — Error message if delivery failed.
  • Attempt — Which retry attempt this was.

Retries

If your endpoint returns a non-2xx status code (or times out), the webhook is retried up to the configured number of attempts.

Managing webhooks

  • Edit — Change the URL, events, timeout, or retry settings.
  • Toggle — Enable/disable a webhook without deleting it.
  • Delete — Permanently remove the webhook.

Use cases

  • Sync bookings to your CRM (Salesforce, HubSpot).
  • Trigger automations in Zapier or Make.
  • Update your internal database when payments are processed.
  • Send custom notifications via your own systems.
  • Track analytics on booking patterns.