Features
The short version: most booking tools assume everyone hands out time the same way. They do not.
Three ways to hand out time
Fixed time slots
Cuts the open hours into equal slots. Doctors, stylists, turf and courts.
Capacity / party size
Any start time; each booking uses up seats. Restaurant tables and classes.
Token queue
No times — people get numbers in order and an estimated arrival.
Calendars, not "resources"
A calendar is one bookable thing: a doctor, a stylist, a court, a table, or a whole dining room treated as a pool of seats. Each one carries its own hours, its own slot length, its own gaps and its own Google connection.
Services decide the length
A follow-up is ten minutes, a hair colour is ninety. Attach a gap before or after and the calendar stays blocked for the tidy-up — the next customer is never offered a chair that is still busy.
Weekly hours and split shifts
Two rows on a Monday means a morning clinic and an evening one, with the gap between them genuinely closed. Holidays and half days override a single date without disturbing the pattern.
Overbooking is impossible
Availability is decided in the same transaction that writes the booking, inside a database that handles one request at a time. Two people tapping the same 6pm slot at once cannot both get it.
The board
One day, every calendar side by side, every booking in position. Click an empty gap to fill it, or move an existing booking and let it re-check itself.
Roles that make sense
Owners and admins run things and are the only people who can add anyone. Providers see their own calendar and nobody else’s. Everyone else books for customers and leaves the settings alone.