Bundle resources + schedule + rate card into a customer-visible reservation rule
Reached from + New booking group, from a row click on the Booking groups page, or from the Import preset sheet. Same shape for create + edit.
- Name — what shows on the public booking page (e.g. "Open play").
- Audience — public / members only / specific plan tiers / pro-managed (e.g. lessons).
- Resource pool — pick a resource group (cluster 2.1b) the booking can draw from.
- Schedule — uses the default weekly schedule with optional per-window override.
- Rate card — references a rate card; changes there flow here automatically.
- Length rules — min duration, max duration, slot granularity (15 / 30 / 60 min).
- Advance window — how far in advance can a customer book (e.g. 60 days for members, 14 for public).
- Cancellation policy — full refund / no refund / sliding-scale based on hours-until-booking.
- Booking caps — max concurrent reservations per customer, per day, per week.
- Custom fields — operator-defined required fields (party size, intent, accessibility needs, etc.).
- Status — Draft / Active / Paused. Draft groups don't appear on the public booking page.
- Impact preview — shows what changes when you save (affected bookings, capacity delta, customer-facing copy diff).
Backend wiring pending. POST /operator/booking-groups in the live app; PATCH for edit. The composition is the load-bearing concept; getting it right is what makes the rest of the dashboard sing.