Services and resources, kept apart
A service has its duration and price; a resource is who or what performs it — a member of staff, a chair, a room. Availability is computed from the combination, not from one shared calendar where everybody collides.
Each resource has its own weekly schedule.
Blocks that do not rewrite the past
You can block time ranges — leave, a closure, a busy morning — and the public page stops offering slots there. Appointments already confirmed are not affected: a block added today does not cancel someone holding a confirmation from last week.
A public booking link
Customers book themselves from a link. Staff see appointments in the back-office calendar and can create one by hand when somebody calls anyway.
The numbers that matter
Total, completed, cancelled, no-shows and revenue, with a per-service breakdown and a daily chart. No-shows are their own category rather than "cancelled" — they are different things and they cost you differently.
Worth knowing
The reservation engine is shared with the hotel, restaurant, rentals and events verticals: the same availability rules, the same cancellation and deposit policies. One way of computing what is free, whatever it is you are booking.