Settings & Operations
Reservation settings are the per-location switchboard for how booking behaves: which modes are turned on, how long a table is held, when guests check in and out, and what a rental requires before it leaves the door. Maintenance blocks are the operational counterpart — they take a single physical unit out of availability for a window of time (HVAC repair, deep clean, damage) without changing any catalog definition or existing reservation.
Why it matters
- Enable modes per location — a marina runs rentals, a hotel runs rooms, a restaurant runs tables. Support flags turn each mode on or off where it applies.
- Drive availability math — table slot interval, default duration, and turnover feed the slot engine; room check-in/out and stay limits normalize nightly availability; rental tiers define the canonical duration options.
- Model downtime honestly — a maintenance block is the right tool for "this unit is out," instead of faking a reservation that pollutes reports and guest history.
Reservation settings expose full CRUD through the TypeScript SDK (below). Maintenance blocks are defined as platform schema (no dedicated SDK example in the current guides). The Python reservations SDK does not include settings examples.
ReservationSettings
A single record per location holds optional table, room, and rental rule sets, plus the support flags that switch each mode on.
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique identifier |
locationId | string | null | No | Business location scope |
table | object | null | No | Table booking rules (see below) |
room | object | null | No | Lodging booking rules (see below) |
rental | object | null | No | Rental booking rules (see below) |
supportTableReservations | boolean | Yes | Whether table reservations are supported (default: false) |
supportRoomReservations | boolean | Yes | Whether room reservations are supported (default: false) |
supportRentalReservations | boolean | Yes | Whether rental reservations are supported (default: false) |
Manage settings
const settings = await client.reservationSettings.create({
locationId: 'loc_123',
supportTableReservations: true,
supportRoomReservations: true,
supportRentalReservations: false,
table: {
defaultDurationMinutes: 90,
turnoverMinutes: 15,
slotIntervalMinutes: 30,
advanceBookingDays: 30,
maxPartySize: 12,
},
room: {
checkInTime: '15:00',
checkOutTime: '11:00',
minStayNights: 1,
advanceBookingDays: 90,
},
});
const s = await client.reservationSettings.get(settings.id);
const locationSettings = await client.reservationSettings.getByLocation('loc_123');
const allSettings = await client.reservationSettings.list();
const updated = await client.reservationSettings.update({
id: settings.id,
table: {
advanceBookingDays: 60,
maxPartySize: 20,
},
});
await client.reservationSettings.delete(settings.id);
Table settings
Controls slot duration, turnover, booking window, and party-size limits for table reservations.
| Field | Type | Default | Description |
|---|---|---|---|
settingType | enum | capacity | capacity or resource_specific |
defaultDurationMinutes | integer | 90 | Default table hold duration |
turnoverMinutes | integer | 15 | Reset time between parties |
slotIntervalMinutes | integer | 15 | Availability slot interval |
maxPartySize | integer | null | — | Optional maximum party size |
advanceBookingDays | integer | 30 | Future booking horizon |
Room settings
Controls lodging check-in/check-out times and stay limits.
| Field | Type | Default | Description |
|---|---|---|---|
checkInTime | string | 15:00 | Local check-in time (HH:mm) |
checkOutTime | string | 11:00 | Local check-out time (HH:mm) |
minStayNights | integer | 1 | Minimum nights per reservation |
maxStayNights | integer | null | — | Optional maximum nights |
advanceBookingDays | integer | 90 | Future booking horizon |
Rental settings
Controls rental tiers, waiver requirements, ID verification, and default deposit percent.
| Field | Type | Default | Description |
|---|---|---|---|
tiers | RentalTierDefinition[] | [] | Canonical duration options (see below) |
requireWaiver | boolean | false | Require a signed waiver |
requireIdVerification | boolean | false | Require ID verification |
defaultDepositPercent | number | null | — | Default deposit percentage (0–100) |
RentalTierDefinition
A rental tier is a named, fixed duration option that rental resources price against.
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Tier identifier (referenced by a rental's applicableTierIds) |
name | string | Yes | Display name (e.g. "Half Day") |
durationMinutes | integer | Yes | Tier duration in minutes |
sortOrder | integer | No | Display order (default: 0) |
{
"tiers": [
{ "id": "tier_2hr", "name": "2 Hours", "durationMinutes": 120, "sortOrder": 1 },
{ "id": "tier_half_day", "name": "Half Day", "durationMinutes": 240, "sortOrder": 2 }
],
"requireWaiver": true,
"requireIdVerification": true,
"defaultDepositPercent": 25
}
MaintenanceBlock
Takes a single physical resource instance offline for a date window — maintenance, cleaning, repair, or any operational downtime — without altering the catalog or existing reservations. While a block is active, the instance is unavailable for new assignments (mirroring the maintenance instance status).
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique identifier |
resourceInstanceId | string | Yes | Physical instance being blocked |
startDate | number | Yes | Block start (Unix epoch seconds) |
endDate | number | Yes | Block end (Unix epoch seconds) |
reason | string | null | No | Reason for the downtime |
locationId | string | null | No | Business location scope |
{
"id": "maint_room_204",
"locationId": "loc_hotel",
"resourceInstanceId": "room_204",
"startDate": 1705330800,
"endDate": 1705417200,
"reason": "HVAC repair"
}
endDate must be greater than or equal to startDate. Prefer maintenance blocks over synthetic reservations so downtime never shows up as customer activity.
Query options
| Resource | Filters | Sort fields |
|---|---|---|
ReservationSettings | locationId | — |
MaintenanceBlock | locationId, resourceInstanceId, dateRange (start, end) | startDate, endDate, createdAt (asc / desc) |
Both are paginated with page and pageSize.
Operational guidance
- Use the support flags to enable or disable reservation modes by location.
- Use table settings to drive slot interval, default duration, and turnover calculations.
- Use room settings to normalize check-in/check-out timestamps from local dates.
- Use rental tiers as the canonical duration options for rental resources.
- Use maintenance blocks for downtime instead of creating synthetic reservations.