Skip to content

Availability

Get real-time slot availability for a business.

GET /v1/availability/{business_id}

Returns available time slots for the given date.

Parameters

ParamTypeRequiredDefaultDescription
business_idpath (UUID)YesBusiness identifier
datequeryYesDate to check (YYYY-MM-DD)
capacityqueryNo1Required party size / capacity
service_idqueryNoFilter slots by this service's duration. Pass a service UUID and the engine uses its duration_minutes instead of the default. Only shows time windows where the full service fits.
resource_idqueryNoallFilter to a specific resource (table, stylist, room). Only shows slots for that resource.

Response

json
{
  "business_id": "uuid",
  "booking_date": "2026-05-15",
  "capacity": 1,
  "slots": [
    {
      "time": "09:00",
      "available": true,
      "remaining_resources": 3
    },
    {
      "time": "09:30",
      "available": false,
      "remaining_resources": 0
    }
  ]
}

How Slots Are Calculated

  1. Operating hours determine the time window
  2. slot_interval_minutes divides the day into slots (default: 30 min)
  3. Each slot is checked against existing bookings for that resource
  4. Buffer time between bookings is subtracted
  5. Slots that overlap with blackout dates or blocked slots (Google Calendar) are excluded
  6. Resources with insufficient capacity are marked unavailable

Example

bash
curl "https://api.availengine.com/v1/availability/{business_id}?date=2026-05-15&capacity=2"

GET /v1/public/hours/{business_id}

Returns the operating hours for a business. Public endpoint — no auth required.

bash
curl https://api.availengine.com/v1/public/hours/{business_id}

Response:

json
[
  {"day_of_week": 0, "is_open": false},
  {"day_of_week": 1, "is_open": true, "open_time": "09:00", "close_time": "17:00"},
  {"day_of_week": 2, "is_open": true, "open_time": "09:00", "close_time": "17:00"}
]

GET /v1/public/business/{slug}

Resolve a business slug to its ID and name. Public endpoint.

bash
curl https://api.availengine.com/v1/public/business/demo-salon

Response:

json
{
  "id": "uuid",
  "name": "Demo Salon",
  "slug": "demo-salon"
}

GET /v1/public/blackout-dates/{business_id}

Returns upcoming closure dates. Public endpoint.

bash
curl https://api.availengine.com/v1/public/blackout-dates/{business_id}

Response:

json
[
  {"start_date": "2026-06-01", "end_date": "2026-06-15", "reason": "Summer holiday"}
]

Released under the MIT License.