Skip to content

Find Any Meeting Room

A Bookable Type groups rooms together so a single availability call returns open slots across all of them. The full flow is: create a type, assign rooms to the type, then query availability across the type.

1. Create the Type

POST /bookable_type

json
{
  "name": "Meeting Room",
  "description": "Any meeting room in the building.",
  "owner_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

Capture data.id as type_id.

2. Assign Rooms to the Type

Either create a new bookable with type_id set, or update an existing one. See Create a Meeting Room for the create flow.

PUT /bookable/{bookable_id}

json
{
  "type_id": "66666666-7777-8888-9999-aaaaaaaaaaaa"
}

Repeat for every meeting room that should be part of the pool.

3. Query Availability Across the Type

GET /bookable_type/{type_id}/available?start_date=2026-05-15T07:00:00Z&end_date=2026-05-15T17:00:00Z

Returns the open surface for every bookable in the type inside the window. Filter the result for any bookable whose surface contains the needed slot and pick one.

4. Book the Picked Room

Once the user picks a room, post a normal booking against it. See Book Resource. The booking carries the specific bookable_id; type level availability does not change that contract.