NexusKit

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

MethodEndpointAuthDescription
GET/v1/booking/servicesBearerList all services for your tenant
POST/v1/booking/servicesBearerCreate a new service
GET/v1/booking/services/:idBearerGet a single service
PATCH/v1/booking/services/:idBearerUpdate a service
POST/v1/booking/availabilityBearerSet availability rules and exceptions
GET/v1/booking/availabilityBearerGet current availability rules
GET/v1/public/booking/services/:id/slotsAPI KeyPublic — get available time slots for a date
POST/v1/public/booking/bookingsAPI KeyPublic — create a booking
GET/v1/booking/bookingsBearerList all bookings
PATCH/v1/booking/bookings/:idBearerUpdate 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.