Docs
Booking Module
Let customers book services against your availability rules via public APIs. Dashboard calendar included.
Overview
The Booking module provides a full scheduling system via REST APIs. Define services with duration, buffer time, capacity, and pricing. Set weekly availability rules with optional date-specific exceptions. Customers fetch available slots and create bookings through public endpoints — no authentication required on their end. All bookings appear in your dashboard calendar with CSV export.
API Endpoints
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| GET | /v1/booking/services | Bearer | List all services for your tenant |
| POST | /v1/booking/services | Bearer | Create a new service |
| GET | /v1/booking/services/:id | Bearer | Get a single service |
| PATCH | /v1/booking/services/:id | Bearer | Update a service |
| POST | /v1/booking/availability | Bearer | Set availability rules and exceptions |
| GET | /v1/booking/availability | Bearer | Get current availability rules |
| GET | /v1/public/booking/services/:id/slots | API Key | Public — get available time slots for a date |
| POST | /v1/public/booking/bookings | API Key | Public — create a booking |
| GET | /v1/booking/bookings | Bearer | List all bookings |
| PATCH | /v1/booking/bookings/:id | Bearer | Update booking status |
Create Services
Define your bookable services with duration, buffer time between appointments, group capacity, and pricing.
POST /v1/booking/services
Authorization: Bearer nk_live_...
{
"names": { "en": "30-min Consultation", "de": "30-Min Beratung" },
"durationMin": 30,
"bufferMin": 10,
"capacity": 1,
"priceCents": 5000,
"currency": "EUR"
}Set Availability
Configure weekly rules by day-of-week (0 = Sunday, 6 = Saturday) with start and end times. You can set multiple time windows per day — e.g., morning and afternoon splits. Add date-specific exceptions for holidays or special hours.
POST /v1/booking/availability
Authorization: Bearer nk_live_...
{
"rules": [
{ "day": 1, "start": "09:00", "end": "12:00" },
{ "day": 1, "start": "14:00", "end": "17:00" },
{ "day": 2, "start": "09:00", "end": "17:00" },
{ "day": 3, "start": "09:00", "end": "12:00" }
],
"exceptions": {
"2025-12-25": null,
"2025-12-31": { "windows": [{ "start": "09:00", "end": "12:00" }] }
}
}Get Available Slots
Customers fetch available time slots for a specific date. The algorithm computes slots from your rules, service duration, buffer time, and existing bookings.
GET /v1/public/booking/services/{serviceId}/slots?date=2025-07-15
// Response:
{
"slots": [
{ "startsAt": "2025-07-15T07:00:00Z", "endsAt": "2025-07-15T07:30:00Z" },
{ "startsAt": "2025-07-15T07:40:00Z", "endsAt": "2025-07-15T08:10:00Z" },
{ "startsAt": "2025-07-15T12:00:00Z", "endsAt": "2025-07-15T12:30:00Z" }
]
}Create Bookings
Customers submit a booking with the service ID, chosen start time, and their contact details. The public endpoint handles validation and capacity checks.
POST /v1/public/booking/bookings
{
"serviceId": "abc123",
"startsAt": "2025-07-15T07:00:00Z",
"customer": {
"name": "Jane Doe",
"email": "[email protected]"
},
"turnstileToken": "..."
}
// Response:
{
"id": "...",
"status": "confirmed",
"startsAt": "2025-07-15T07:00:00Z",
"endsAt": "2025-07-15T07:30:00Z"
}Time Zones
Each tenant has a timezone field (defaults to UTC). All availability rules are interpreted in your tenant timezone. Slot timestamps are returned in UTC so customers across time zones book consistently. Display the slot time in the customer's local timezone on your frontend.
FAQ
Does Booking support time zones?
Yes. Each tenant has a timezone field (default UTC). Slot calculation uses UTC timestamps so bookings are consistent across time zones.
Is NexusKit Booking free?
Yes, within fair-use limits — 5,000 bookings per month, 120 requests per minute.
Can I set different prices per service?
Yes. Each service has a priceCents field and currency (default EUR). Set to null for free services.
How does group booking work?
Set capacity greater than 1 on a service. The slot algorithm will allow that many concurrent bookings per time slot.
Ready to take bookings?
Start free. No credit card. Set up your first service in minutes.
