Integrate scheduling into your applications. Access bookings, services, employees, and more through our REST API.
Real API examples showing how developers integrate Calendesk into their applications.
Build your own scheduling UI. Fetch available time slots for any service and let customers book directly from your website or app.
# Get available slots for a service 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", "11:00", "14:00",
"14:30", "15:00"
],
"2026-04-02": [
"09:00", "09:30", "10:00"
]
}
}
Create bookings programmatically from your CRM, chatbot, or internal tools. Assign employees, set custom fields, and control notifications.
# Create a new booking 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", "description": "Initial consultation" }
{
"id": 5001,
"employee_id": 10,
"user_id": 200,
"service_id": 5,
"start_date": "2026-04-15",
"start_time": "10:00",
"end_time": "11:00",
"status": "approved",
"service": {
"id": 5,
"name": "Consultation",
"duration": 60,
"price": 10000
}
}
React to booking events in real-time. Get notified when bookings are created, updated, paid, or cancelled to trigger your own workflows.
# Register a webhook POST /api/admin/webhooks X-Api-Key: your-api-key X-Tenant: your-tenant-id { "url": "https://your-app.com/webhooks", "events": [ "booking_created", "booking_updated", "booking_paid", "user_created" ] }
// POST https://your-app.com/webhooks { "event": "booking_created", "data": { "id": 5002, "employee_id": 10, "user_id": 201, "service": { "name": "Consultation" }, "start_date": "2026-04-15", "start_time": "14:00", "status": "approved" } }
Sync your customer database with Calendesk. Create users, manage tags and groups, and keep booking history in your own systems.
# Search customers by email 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",
"time_zone": "Europe/Warsaw",
"created_at": "2025-01-15T10:30:00Z"
}
],
"total": 1
}