Define the thing being booked
A table, appointment, room, technician and event seat all create different availability models. The system needs a clear unit of capacity before the interface can accurately promise a time to a customer.
Write down the constraints explicitly
Opening hours are only one rule. Duration, preparation time, buffers, capacity, staff skills, location, party size and booking lead time can all change whether a slot is valid.
- Opening and service hours
- Capacity or resource availability
- Booking duration and buffers
- Lead time and cut-off rules
- Location or staff constraints
- Exceptions and manual overrides
Design the customer and staff journeys together
Customers want simple choices and clear confirmation. Staff need visibility, exceptions and ways to correct mistakes. If those interfaces are designed separately, the operational team often inherits complexity removed from the customer journey.
Decide how amendments and cancellations behave
Changing a booking is not always equivalent to creating a new one. The system may need to preserve payment state, notifications, audit history or resource allocation while applying the new availability rules.
Integrate only once the source of truth is clear
If an established booking provider remains the system of record, the bespoke flow should respect that. If the new platform owns availability, downstream systems need a reliable way to receive changes.
Either model can work; ambiguity about ownership is what creates duplicated or conflicting reservations.

