Clients book appointments inside your app - not on a third-party page. Calendesk handles the backend: scheduling, payments, notifications. REST API, webhooks, docs - everything you need to integrate.
One GET request - you get open slots for any service, employee, and time zone. Public availability requires no authentication. Build your own booking widget in under a day.
GET /api/available-slots ?service_id=5 &start_date=2026-04-01 &number_of_days=7 &customer_time_zone=Europe/Warsaw
{
"5": {
"2026-04-01": [
"09:00", "09:30", "10:00",
"10:30", "14:00", "15:00"
],
"2026-04-02": [
"09:00", "09:30"
]
}
}POST /api/bookings X-Api-Key: your-api-key X-Tenant: your-tenant-id { "employee_id": 10, "user_id": 200, "service_id": 5, "start_date": "2026-04-15", "start_time": "10:00", "status": "approved" }
{
"id": 5001,
"employee_id": 10,
"start_date": "2026-04-15",
"start_time": "10:00",
"status": "approved",
"service": {
"name": "Consultation",
"duration": 60,
"price": 10000
}
}Send a POST with employee, service, date, and time. The booking shows up in the calendar right away. Confirmations and reminders? Calendesk sends them for you. One request - one booking.
A client books an appointment - your app knows instantly. Payments, cancellations, reschedules - every event delivered straight to your URL. No polling.
POST /api/admin/webhooks X-Api-Key: your-api-key X-Tenant: your-tenant-id { "url": "https://your-app.com/hooks", "events": [ "booking_created", "booking_updated", "booking_paid" ] }
{
"id": 1,
"url": "https://your-app.com/hooks",
"events": [
"booking_created",
"booking_updated",
"booking_paid"
]
}GET /api/admin/users ?query=[email protected] &limit=10 X-Api-Key: your-api-key X-Tenant: your-tenant-id
{
"current_page": 1,
"data": [{
"id": 200,
"name": "Jane",
"surname": "Smith",
"email": "[email protected]",
"status": "active"
}],
"total": 1
}Look up any client by email, phone, or name. Full appointment history comes back in one call - with filters, sorting, and pagination built in.
Add your API key and tenant ID to the request headers. That is it. No OAuth dance, no token refresh, nothing to expire.
Every endpoint that returns a list supports pages, sorting, and filters. Bookings, customers, services - all work the same way.
Every booking triggers email and SMS confirmations automatically. Reminders go out before the appointment. You don't write notification logic - Calendesk handles it.
Bookings, payments, subscriptions, newsletters, schedules - Calendesk pushes data to your URL on every change. Retries on failure.
Each employee can have their own API key with a separate permission scope. You decide who sees what.
Swagger UI, cURL examples, and ready-made snippets. Every endpoint documented with parameters, error codes, and sample responses. Copy, paste, ship.
Try Calendesk with a 14-day trial plan with no functionality limits. See how simple and enjoyable your company's processes can be!