Occupancy
Control when and how much of a product is available for booking using date ranges or time slots.
Occupancy is how you manage product availability over time. When an inventory product has an availability control type set to Date Range or Time Slot, you use the occupancy calendar to define capacity, track reservations, and control booking restrictions for each date or time slot.
Products with availability control set to "None" do not use occupancy — they are always available with no capacity limits.
Occupancy modes
There are two ways to manage availability, depending on the product's availability control type.
Date Range
Date range occupancy tracks capacity on a per-date basis. Each calendar date has its own record with capacity, reserved, blocked, and available counts.
This mode works well for accommodations, multi-day products, and anything where availability changes by date but not by specific time of day.
Each date entry tracks:
| Field | Description |
|---|---|
| Capacity | Total spots available for that date |
| Reserved | Spots booked by customers (updated automatically as bookings come in) |
| Blocked | Spots held back from sale (e.g., reserved for staff or maintenance) |
| Available | Calculated automatically: Capacity minus Reserved minus Blocked |
| Min Stay | Minimum nights required (for accommodation products) |
| Max Stay | Maximum nights allowed (for accommodation products) |
| Close to Arrival | Prevents new check-ins on this date |
| Close to Departure | Prevents check-outs on this date |
| Stop Sale | Completely stops all sales for this date |
| Note | An internal note visible only to your team |
Time Slot
Time slot occupancy tracks capacity for specific date-and-time combinations. Each slot has its own capacity and availability counts.
This mode works well for tours, activities, events, or any product that runs at specific times during the day.
Each time slot tracks:
| Field | Description |
|---|---|
| Starting On | The date and time for this slot |
| End Time | An optional end time. When set, the slot picker displays the range as "HH:mm → HH:mm (+Nd)" so you can see at a glance which slots run overnight. Both the day offset and end time are independently optional. |
| Capacity | Total spots available. When the product has variants, each variant gets its own capacity pool — the dialog shows a "Capacity by variant" grid with a summed total. When the product has no variants, the slot carries a single product-level capacity. |
| Reserved | Spots booked by customers |
| Blocked | Spots held back from sale |
| Available | Calculated automatically: Capacity minus Reserved minus Blocked |
| Stop Sale | Completely stops all sales for this slot |
| Note | An internal note visible only to your team |
The occupancy calendar
The occupancy calendar gives you a visual month-by-month overview of availability. Navigate between months using the arrow buttons, or jump to a specific month using the month picker. The calendar loads data one month at a time, up to a maximum window of 365 days.
Reading the calendar
Each calendar cell displays two key numbers:
- CA — Total capacity for that date or slot
- AV — Available spots (capacity minus reserved minus blocked)
A progress bar at the top of each cell provides a quick visual indicator of how full the date is.
Color-coded status
Each cell is color-coded based on its availability:
| Status | Color | Meaning |
|---|---|---|
| Excellent | Teal | 75-100% of capacity available |
| Good | Green | 50-74% available |
| Medium | Yellow | 25-49% available |
| Low | Orange | 1-24% available |
| Full | Red | No availability remaining |
| Overbooked | Red | More reservations than capacity |
| Restricted | Orange | Close to arrival or close to departure is active |
| Stop Sale | Red | Sales are completely blocked |
| No Data | Gray | No occupancy record exists for this date |
Viewing date details
Click any date cell to open a detail dialog. This shows the full breakdown of capacity, reserved, blocked, and available counts, along with any stay restrictions, booking restrictions, and notes.
The detail dialog also shows a consumers section that lists which trip products are drawing availability from this inventory product on that date. Each consumer entry shows the trip name, product name, and how many spots it has reserved. This helps you understand exactly where your capacity is going before making changes.
Variants in the calendar
When a product has variants, the calendar shows a separate row for each variant with its own availability data. A summary row at the bottom aggregates totals across the product and all variants, giving you a combined view of overall occupancy.
Managing date range occupancy
Bulk updates
Instead of editing one date at a time, use the bulk editor to apply changes across many dates at once. Click Edit above the calendar to open the editor.
The bulk editor has four sections:
1. Variant selection — If the product has variants, choose which variants to update. Changes are applied to each selected variant independently, and the editor reports success or failure per variant.
2. Date range and pattern — Select the start and end dates, then choose which dates within that range to affect:
| Pattern | Applies to |
|---|---|
| All | Every date in the range |
| Weekdays | Monday through Friday only |
| Weekends | Saturday and Sunday only |
| Custom | Specific days of the week that you select |
3. Changes — Enable the fields you want to update and set the new values:
| Field | Actions available |
|---|---|
| Capacity | Set to a value, increment, or decrement |
| Blocked | Set to a value, increment, or decrement |
| Min Stay | Set to a value, increment, or decrement |
| Max Stay | Set to a value, increment, or decrement |
| Close to Arrival | Toggle on or off |
| Close to Departure | Toggle on or off |
| Stop Sale | Toggle on or off |
| Note | Set or overwrite text |
You only need to enable the fields you want to change. Any field left disabled will not be modified on the target dates.
4. Options — Control how edge cases are handled:
| Option | Default | Description |
|---|---|---|
| Create missing records | On | Add occupancy entries for dates that do not have one yet |
| Skip dates with bookings | Off | Do not modify dates that already have reservations |
| Skip if capacity exceeded | Off | Do not apply changes that would cause reserved plus blocked to exceed capacity (overbooking protection) |
Example: To set up a hotel for the summer season, you might run the bulk editor twice — once for weekdays with 20 rooms capacity, then again for weekends with 25 rooms. In a few seconds you have three months of availability configured.
Managing time slot occupancy
Creating a time slot
Click a date cell in the calendar, then click Add Time Slot to open the creation dialog. For each slot you set:
- Time — The hour and minute the slot starts (24-hour format, e.g., 10:30)
- End Time — An optional end time for the slot. This allows slots to span overnight (e.g., "10:00 PM → 8:00 AM next day"). Both the day offset and end time are independently optional.
- Capacity — How many spots are available (defaults to 10). When the product has variants, you set capacity per variant in a "Capacity by variant" grid, with a summed total shown.
- Blocked — How many spots to hold back from sale (defaults to 0)
- Stop Sale — Whether to block all bookings for this slot
- Note — An optional internal note
Time slots are defined at the product level. When the product has no variants, the slot carries a single product-level capacity. When the product has variants, each variant gets its own capacity pool.
Editing a time slot
Click any time slot in the calendar to open its detail dialog. From there, click Edit to modify its capacity, blocked count, stop sale flag, or note. Click Save to apply changes.
The detail dialog also shows which trip products are consuming capacity from this time slot, just like the date range detail dialog.
The reserved count is managed automatically by bookings and cannot be edited directly.
Capacity counting
The capacity counting type on the product controls how bookings count against capacity:
| Method | How it works |
|---|---|
| None | No capacity tracking — the product is always available |
| Per Unit | Each booking unit counts as one against capacity |
| Per Participant | Individual participants count against capacity. You control which types count: adults, children, infants, or any combination |
When using per-participant counting, at least one participant type must be selected.
Example: A guided tour with per-participant counting and adults + children selected has a capacity of 20. A booking for 2 adults and 1 child consumes 3 spots. A separate booking for 1 adult and 1 infant consumes only 1 spot (infants are not selected, so they do not count).
Overbooking
You can allow overbooking on a product by enabling it and setting an overbooking percentage. This lets you accept more bookings than the stated capacity to account for expected cancellations.
Example: A product with 10 capacity and 20% overbooking allows up to 12 bookings before showing as fully booked.
The calendar will display an overbooked status (red) if reservations exceed the base capacity, regardless of the overbooking setting.
How occupancy connects to trips and bookings
When you add an inventory product to a trip, the trip product links back to the inventory product's occupancy pool. Bookings against that trip product automatically update the reserved count on the inventory product.
The consumers section in the date detail dialog shows this relationship. You can see exactly which trip products are consuming capacity from each date or time slot, along with how many spots each one has reserved.
This means your inventory product is the single source of truth for availability. Multiple trips can sell the same product, and the occupancy calendar always reflects the combined reservation state across all of them.
When customers book through the public booking portal, the system checks the inventory product's available capacity before allowing the booking to proceed.
Protection rules
When trip products are consuming an occupancy row, the system enforces several protections:
- Reserved is read-only. The reserved count is calculated from linked trip product bookings and cannot be edited directly.
- Capacity cannot drop below reserved. You cannot set capacity lower than the current reserved count.
- Occupied rows cannot be deleted. You must unlink the consuming trip products before deleting an occupancy row.
- Time slot start times are locked. For time slot occupancy, you cannot change the start time while trip products are consuming the slot, because the start time is how the system matches bookings to slots.
These protections prevent accidental data loss and ensure bookings always have a valid occupancy record to draw from.
Common tasks
Setting up availability for a new product
- Open the product and set its Availability Control Type to Date Range or Time Slot
- Set the Capacity Counting Type to control how bookings count against capacity
- Navigate to the Occupancy tab
- For date range products, use the bulk editor to set capacity across your desired date range
- For time slot products, create individual time slots with their start time, optional end time, and capacity (per-variant capacity when the product has variants)
Blocking dates for maintenance
- Open the occupancy calendar
- Click Edit to open the bulk editor
- Set the date range covering the maintenance period
- Enable Blocked and set it to the number of spots to hold back
- Optionally enable Stop Sale if you want to prevent all bookings
- Click Save
Setting seasonal stay restrictions
- Open the bulk editor
- Set the date range for the season
- Under Additional Restrictions & Settings, enable Min Stay and set it (e.g., 3 nights minimum during peak season)
- Optionally set Max Stay to limit the length of bookings
- Click Save
Checking who is consuming capacity
- Click any date cell or time slot in the occupancy calendar
- In the detail dialog, scroll to the Trip Products Consuming This Row section
- Each entry shows the trip name, product name, and reserved count
- Use this information to understand where capacity is allocated before making changes
How it connects
- Inventory Products — Occupancy is configured per product. The availability control type and capacity counting type are set on the product detail page.
- Trips — Trip products linked to inventory products consume availability from the occupancy pool. Reserved counts update automatically. When a time slot product has an end time, the end time copies onto the trip product automatically so it shows both start and end times.
- Orders — Customer bookings reduce available capacity. The occupancy calendar reflects all reservations in real time.
- Public Booking Portal — The portal checks occupancy before allowing customers to complete a booking, preventing overbooking (unless overbooking is enabled).