Connect Onbookr to 7,000+ apps via Zapier. Automate follow-up emails, CRM updates, invoicing, Slack notifications, and more — triggered by booking events in real time.
Pro plan required
Onbookr uses REST Hooks — Zapier subscribes to your account when you activate a Zap, and Onbookr sends an HTTP POST to Zapier the moment a booking event occurs. There is no polling delay.
Go to Automation in your dashboard and click "Connect Zapier". You'll be redirected through OAuth to authorise Zapier.
In Zapier, choose Onbookr as the trigger app, select an event (e.g. New Booking), and connect your account.
Connect any of 7,000+ apps as the action — send an email, create a CRM contact, add a row to Google Sheets, and so on.
| Trigger | When it fires |
|---|---|
| New Booking | A new booking is confirmed after checkout. |
| Booking Cancelled | A host or booker cancels an existing booking. |
| Booking Completed | A booking session ends and is automatically marked as completed. |
| Booking Rescheduled | A confirmed booking is moved to a new date or time. |
Each trigger delivers a JSON payload to Zapier. All timestamps are in UTC ISO 8601 format. price is an integer in the smallest currency unit (e.g. cents for USD). durationMinutes is an integer.
{ "id": "booking_abc123", "bookerName": "Jane Smith", "bookerEmail": "jane@example.com", "bookerTimezone": "America/New_York", "summary": "Initial consultation", "durationMinutes": 60, "price": 150, "startsAt": "2025-06-15T14:00:00.000Z", "endsAt": "2025-06-15T15:00:00.000Z", "status": "confirmed", "createdAt": "2025-06-10T09:23:00.000Z", "updatedAt": "2025-06-10T09:23:00.000Z"}{ "id": "booking_abc123", "bookerName": "Jane Smith", "bookerEmail": "jane@example.com", "bookerTimezone": "America/New_York", "summary": "Initial consultation", "durationMinutes": 60, "price": 150, "startsAt": "2025-06-15T14:00:00.000Z", "endsAt": "2025-06-15T15:00:00.000Z", "status": "canceled", "createdAt": "2025-06-10T09:23:00.000Z", "updatedAt": "2025-06-11T10:00:00.000Z"}{ "id": "booking_abc123", "bookerName": "Jane Smith", "bookerEmail": "jane@example.com", "bookerTimezone": "America/New_York", "summary": "Initial consultation", "durationMinutes": 60, "price": 150, "startsAt": "2025-06-15T14:00:00.000Z", "endsAt": "2025-06-15T15:00:00.000Z", "status": "completed", "createdAt": "2025-06-10T09:23:00.000Z", "updatedAt": "2025-06-15T15:00:00.000Z"}Includes two extra fields — previousStartsAt and previousEndsAt — with the original slot before rescheduling.
{ "id": "booking_abc123", "bookerName": "Jane Smith", "bookerEmail": "jane@example.com", "bookerTimezone": "America/New_York", "summary": "Initial consultation", "durationMinutes": 60, "price": 150, "startsAt": "2025-06-16T14:00:00.000Z", "endsAt": "2025-06-16T15:00:00.000Z", "previousStartsAt": "2025-06-15T14:00:00.000Z", "previousEndsAt": "2025-06-15T15:00:00.000Z", "status": "confirmed", "createdAt": "2025-06-10T09:23:00.000Z", "updatedAt": "2025-06-12T08:45:00.000Z"}| Field | Type | Description |
|---|---|---|
| id | string | Unique booking identifier. |
| bookerName | string | Full name of the person who booked. |
| bookerEmail | string | Email address of the booker. |
| bookerTimezone | string | null | IANA timezone of the booker, e.g. "America/New_York". |
| summary | string | null | Optional description or notes added during booking. |
| durationMinutes | integer | Session length in minutes. |
| price | integer | Price charged in the smallest currency unit (e.g. cents). |
| startsAt | string (ISO 8601) | Session start time in UTC. |
| endsAt | string (ISO 8601) | Session end time in UTC. |
| status | string | One of: confirmed, canceled, completed. |
| createdAt | string (ISO 8601) | When the booking was originally created. |
| updatedAt | string (ISO 8601) | When the booking was last modified. |
| previousStartsAt | string (ISO 8601) | Rescheduled trigger only. The original start time before rescheduling. |
| previousEndsAt | string (ISO 8601) | Rescheduled trigger only. The original end time before rescheduling. |
Onbookr uses OAuth 2.0 (Authorization Code flow) to authenticate Zapier. Tokens are short-lived and automatically refreshed by Zapier. No API keys need to be manually managed.
Each webhook delivery is signed with an HMAC-SHA256 signature in the X-Webhook-Signature header, using the secret you configured when creating the webhook.