Shared spaces — halls, studios, equipment, vehicles — are some of the most fought-over resources in any organization.
The pain it solves: Manual booking (a shared calendar, a whiteboard, a group chat) inevitably leads to double-bookings and last-minute scrambles.
How it helps:
The happy workday: Book a room in seconds, trust that the system has already checked for conflicts, and never discover a double-booking the day of the event.
A dedicated booking engine removes the manual conflict-checking burden from staff, and because it ties into automation, reminders and confirmations happen without anyone needing to remember to send them.
Booking functionality is implemented in BookingService (ExireNexus.Services/Services/BookingService.cs), working alongside the Event model (ExireNexus.Shared/Models/Event.cs) — the platform's calendar entity, covering room bookings, public events, appointments, and recurring events under one type.
Key implementation points:
Event-linked entities with capacity and time-slot constraints, allowing the same booking logic to serve a simple internal room reservation or a public paid booking.BookingAutomationProcessor (ExireNexus.Services/Services/Automation/BookingAutomationProcessor.cs) plugs into the shared AutomationBackgroundService, so booking confirmations, reminders, and follow-ups are handled by the same automation engine used across the rest of the platform — no bespoke scheduling code for bookings.ShopOrder/ShopOrderItem, which can link to an Event for the booked time slot — reusing the commerce engine instead of building a parallel payment path for bookings.This reuses the platform's existing Event (calendar) and Order (transaction) entities rather than introducing a separate booking-specific data model, consistent with the platform's core design principle of multi-purpose entities.