There are two ways to connect bookings to other tools:
- Webhooks — the app tells another tool when something happens, such as a new booking. Good with Zapier or Make, no code needed.
- The API — your own system asks the app for bookings, or changes them. For developers.
Both need the Ultimate plan. Both are in Settings > Webhooks & API.
Webhooks
Set up with Zapier or Make (no code)
- In Zapier, make a Zap with Webhooks by Zapier > Catch Hook as the trigger. In Make, add a Webhooks > Custom webhook module.
- Copy the web address (URL) it gives you.
- In Easy Appointment Booking, click Settings > Webhooks & API.
- Under Webhooks for bookings and waitlists, paste it into Webhook URL.
- Click Save.
- Make a test booking. Zapier or Make shows the booking details. Now add the actions you want, such as "add a row to Google Sheets".
One URL gets every event. You can have one URL per store.
The events
| Event | When it is sent |
|---|---|
booking.created | A booking is made |
booking.updated | A booking is changed |
booking.rescheduled | A booking moves to a new time |
booking.cancelled | A booking is cancelled |
booking.checked_in | A customer is checked in |
booking.no_show | A booking is marked as a no-show |
booking.reminder | A reminder is sent |
package.purchased | A package is bought |
waitlist.joined | A customer joins a waitlist |
waitlist.updated | A waitlist entry changes |
waitlist.invited | A customer on the waitlist is invited to book |
waitlist.booked | A waitlist customer books |
waitlist.expired | A waitlist entry expires |
Each is a JSON POST with an event name and a data object:
{
"event": "booking.created",
"data": {
"booking_id": "12345",
"first_name": "Jane",
"last_name": "Smith",
"customer_email": "jane@example.com",
"event_name": "Wine Tasting",
"start_date": "April 15, 2026",
"start_time": "6:00 PM",
"end_time": "8:00 PM",
"timezone": "America/Los_Angeles",
"number_of_attendees": 2,
"availability_name": "Main Tasting Room",
"order_id": "9876",
"reschedule_booking_link": "https://..."
}
}
Each webhook is sent once, and the app waits up to 5 seconds for a reply. If your tool is down or slow, that event is lost and is not sent again. Zapier and Make are very reliable, but if you build your own receiver, reply quickly and watch its logs.
The API (for developers)
Make an API key
- Click Settings > Webhooks & API.
- In the API section, click Add new API key.
- Give the key a Name and choose its permissions.
- Click Create key.
- In Save your new API key, copy the key, then click Done. The key is shown only once.
Send the key as a bearer token: Authorization: Bearer <key>. On the same page you can see when each key was last used. Click Revoke to turn a key off.
What you can do
| Resource | What you can do |
|---|---|
| Bookings | List, read, create, update, reschedule, cancel, send a reminder or follow-up |
| Events | List and read your services, their options, and open times |
| Availability | List, create, update, and assign to a booking |
| Locations | List, read, create, and update |
| Waitlist | List, read, create, update, see stats, and message a customer |
| Reports | Peak hours |
| Me | See which store a key belongs to |
The base path is /api/public/v1.
Rate limit
Each store can make 10 requests per second, shared by all its keys. Each response has X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. Over the limit, you get HTTP 429 with the code RATE_LIMITED and a Retry-After header.
For big jobs, send requests one after another, not all at once.
Want answers without code?
To ask questions about your bookings in plain English, see Ask Claude about your bookings.