Dates, price, and unit type never change. Only the physical unit assignment changes, within the same unit type. You can lock units to be excluded from the calendar optimizer. If a unit is set as unfurnished, the calendar optimiser deprioritises an unfurnished unit. It does not block it.
What you need to know
The calendar optimizer runs automatically, nightly at 04:40 UTC across enabled workspaces, optimizing the next 3 months after the day's calendar changes.
The calendar optimizer can be run on-demand:
Open the required workspace
Go to Inventory then Unit types
Select the required unit type
Go to Calendar
Select a date range (minimum 7 days, default 3 months)
Select Optimize
How it works
Snapshot: the PMS gathers every booking and maintenance block for a unit type and marks what can move
Solve: a dedicated optimization engine finds the arrangement that frees the most whole units with the fewest moves. Every result is re-checked by independent safety validations
Move: approved moves are applied through the standard booking-move flow, fully attributed and auditable, tagged "Optimization"
When would you use it
You can use the calendar optimizer to:
Reduce scattered short gaps between bookings
Create longer, more sellable availability windows
Improve occupancy without manually moving bookings
Re-plan unit assignments after calendar changes
Optimise availability within a specific unit type
Things to note
Booking dates never change. Moves happen in space, never in time
Bookings are never split across units
In-stay guests are never moved. The arrival freeze holds until check-out
Imminent arrivals are frozen. The arrival freeze engages 3 days before check-in
Maintenance blocks stay put
No double-booking, ever. This is enforced by the model and independently re-verified
A locked booking is excluded from the optimizer's relocation logic entirely
If a unit is set as unfurnished, the calendar optimiser deprioritises an unfurnished unit. It does not block it. The calendar optimiser can still place a guest there when there is no better option.
Because the optimizer works within a single unit type, guests are only ever reassigned between equivalent units: same product, same rate, same experience.
