Staff block
Maintenance owns Court 03
A maintenance block is treated as schedule ownership, not a note floating beside the calendar.
Bookings
18:10, the front desk checks whether tonight’s court inventory is actually sellable.
A booking is not just a block on a calendar. It is availability, hold state, checkout, confirmation, cancellation rules, and staff visibility moving through one write path.
Sellable inventory
Courts, staff blocks, league sessions, holds, and cancellations sit on one schedule, so the desk never promises an hour it cannot sell.
Court 01
18:00
Open play · 4/4
PaidCourt 02
18:30
Checkout · 01:12 left
HeldCourt 03
19:00
Coach maintenance
BlockedCourt 04
20:00
Cancelled in window
ReopenedHold lifecycle
Open, held, paid, expired, cancelled, reopened. Each step shows on the schedule before a stuck checkout turns into a support call.
Conflict case
When a staff block, a recurring reservation, and a player checkout want the same slot, one wins. The others see it immediately, not after the double-booking.
Staff block
A maintenance block is treated as schedule ownership, not a note floating beside the calendar.
Player checkout
The hold request fails because inventory is already owned by another operational record.
Desk result
Staff can explain why the slot is unavailable without checking another schedule.
Revenue handoff
Unpaid slots, reopened cancellations, and paid holds carry their context into payments and reports. Nothing gets reconstructed at the end of the week.
Bookings handoffs
Bookings demo
Illustrative club data. The booking story follows one evening from open court time to hold, payment, a blocked double-booking, cancellation, and reopened time.