Simple Scheduling for Internal Teams
Not every booking is a public event — sometimes it's just "is the small meeting room free at 2pm?"
The pain it solves: Internal meeting room scheduling often ends up in a separate tool from public event/room bookings, creating two systems to check for conflicts.
How it helps:
- Meeting rooms use the exact same booking engine as public room and resource bookings — just scoped to internal use and staff visibility.
- Staff see room availability directly from the Backstage calendar, without switching to a separate scheduling tool.
- Because meeting rooms are
Event-based like everything else on the calendar, a meeting room booking automatically avoids colliding with a public event booked in the same space. - Recurring meetings (weekly team syncs, monthly board meetings) are supported through the same recurrence rules used for any other recurring event.
The happy workday: Check the calendar, book the room, done — with total confidence nothing else is already scheduled there.
Why This Matters for Your Organization
Using one scheduling engine for both public and internal bookings guarantees there's never a conflict between "the public booked the hall" and "the team booked the same hall for a meeting" — because it's the same underlying system checking both.
Technical Details
Meeting room booking is not a separate feature — it is the same BookingService and Event model described in the Room Booking module, simply used for internally-facing, non-commerce bookings (no linked ShopOrder).
Key implementation points:
- Internal-only visibility is achieved through the existing category/permission system (
PermissionService.cs) rather than a separate access-control mechanism for meeting rooms specifically. - Recurrence rules on
Event(supported for calendar entries generally) apply equally to standing internal meetings, avoiding the need to re-create a recurring booking manually each week. - Because meeting rooms and public bookable spaces share the same underlying availability checks in
BookingService, there is a single source of truth for room conflicts — a hall booked publicly for an event will correctly block an internal meeting booking attempt for the same slot, and vice versa.
By treating meeting rooms as another instance of the platform's general-purpose Event/booking model rather than a separate internal scheduling tool, the platform avoids the classic problem of two calendars that don't talk to each other.