Bookings & Meeting Rooms
Public booking, staff calendar, recurring series, reschedule and cancel.
Meeting rooms are booked by the hour against real-time availability. There
are several independently-coded ways to create the same underlying
Booking record — this page covers all of them.
Ways to book
- Public, guest checkout (
/book) — the unauthenticated flow meant to be embedded on the marketing site. Pick a room, pick a time, pay, done — no account required. Supports a multi-room cart and recurring series, with after-hours pricing applied automatically outside normal hours. - Portal (
/portal/book) — the same capability, for a signed-in customer, attributed to their real identity in both the portal and/admin. - Native app — its own dedicated booking screen, same backend.
- Staff, from the admin calendar — single, recurring, or multi-room, with four payment methods: free (comp), card-on-file, collect a new card, or a physical Stripe reader.
- Staff mobile — walk-in booking — a simpler, single/walk-in-only version for a phone call at the desk; no cart, no recurring, payment handled out of band.
Rescheduling
Both the portal and the admin calendar support moving a booking to a new resource or time. A reschedule:
- Creates the new booking first — if the new slot conflicts, the old booking is never touched.
- Charges the difference automatically if the new slot costs more.
- Refunds the difference automatically if the new slot costs less — unless that refund would exceed the location's refund approval threshold, in which case the reschedule still completes but the refund is held for manual staff review rather than firing instantly. See Approvals.
A booking can be rescheduled more than once — the system tracks the full chain, so a refund on the third reschedule in a row still correctly draws against whichever earlier payment in that chain has room, not just the most recent one.
Weekend bookings
A staff member without weekend-override rights (effectively, anyone below OWNER/ADMIN) can't create a weekend booking directly — it becomes a pending approval instead. See Approvals.
After-hours pricing
Bookings outside the location's configured hours are priced at an after-hours rate automatically, split correctly even when a single booking spans both regular and after-hours time. The price breakdown is shown to the customer before they pay, both for one-time and recurring bookings.
Cancelling
Cancelling frees the slot immediately and releases any hold on it — but unlike rescheduling, cancelling never automatically issues a refund. This is deliberate: a cancellation is a pure status change, not a financial transaction, so it doesn't touch Stripe at all. If a cancelled booking is owed money back, staff issue that refund manually through the normal refund flow — the same approval-threshold rules apply there as everywhere else.