Time Slot Booking.
Appointments with staff members. The customer picks a service, a staff member, a date, and a time slot. The most common booking pattern.
Time Slot Booking
The Time Slot pattern is for businesses where customers book appointments with specific staff members at specific times. This is the most common booking pattern.
Who uses this
- Hair salons - Book a haircut with a specific stylist
- Consultants - Book a 30-minute strategy call
- Personal trainers - Book a training session
- Therapists - Book a therapy appointment
- Photographers - Book a portrait session
Setup
When creating a Time Slot business, the operator configures:
-
Services - What can be booked (Haircut, Color Treatment, Consultation)
- Name, duration, price, description
- Which staff members can provide this service
- Buffer time between appointments
-
Staff members - Who provides the services
- Name, title, photo
- Weekly availability schedule (Mon–Sun, start/end times)
- Break periods and days off
-
Business hours - Default operating hours for the business
- Used as fallback when staff doesn't have custom hours
- Holiday and closure dates
The booking flow
The customer's journey through the booking page:
Step 1: Service selection
The customer sees all available services with name, duration, price, and description. They pick one.
Step 2: Staff selection
If multiple staff members offer the selected service, the customer picks their preferred person. Shows name, title, and photo. An "Any available" option is always present.
Step 3: Date and time
A calendar shows available dates. Dates with no availability are grayed out. After picking a date, available time slots appear. Slots are generated based on the service duration and the staff member's availability.
Step 4: Customer details
The customer enters their name, email, and phone number. Custom fields configured by the operator appear here (e.g., "Any allergies?", "How did you hear about us?").
Step 5: Confirmation
A summary shows the service, staff member, date, time, and price. The customer confirms. A confirmation email is sent immediately with a calendar link (.ics).
Admin management
Booking list
All bookings for this business in a filterable table. Filter by status (confirmed, completed, cancelled, no-show), date range, staff member, or service. Search by customer name or phone.
Calendar view
Day and week views showing bookings as blocks on a timeline. Color-coded by status. Drag to reschedule. Click to open booking details.
Booking detail
Full booking information: customer contact, service, staff, date/time, price, custom field responses, internal notes, and status history. Quick actions: confirm, cancel, reschedule, mark as no-show.
How availability works
- The system starts with the staff member's weekly schedule
- Subtracts existing confirmed bookings (including buffer time)
- Subtracts blocked-out periods (breaks, holidays)
- Generates slots matching the service duration
- When a customer selects a slot, MySQL row-level locking prevents double-booking
If a slot is taken between selection and confirmation, the customer sees remaining alternatives - not an error page.
Configuration
Key settings for Time Slot businesses:
- Booking window - How far in advance customers can book (e.g., 30 days)
- Minimum notice - How close to the appointment customers can book (e.g., 2 hours)
- Buffer time - Minutes between appointments for cleanup/preparation
- Auto-confirm - Whether bookings are confirmed automatically or require manual approval
- Cancellation policy - How close to the appointment customers can cancel
One service per booking
Each booking is for a single service. If a customer wants a haircut and a color treatment, they book each service separately. This keeps the availability engine accurate - each service has its own duration, price, and eligible staff - and means rescheduling or cancelling one service doesn't affect the other.
Multi-service booking (selecting multiple services in one checkout flow) is not supported in the current version.
Ready to build?
One-time purchase. Self-hosted. Own every file forever.