Service Scheduling & Bookings
Configure weekly time-slot templates, date-specific overrides, and manage bookings with customer details and event types.
Manage recurring time-slot availability for service products, handle date-specific exceptions (holidays, special events), and create bookings with customer and event details.
Overview
Service Scheduling is organized into three layers that work together:
| Layer | Purpose | Example |
|---|---|---|
| Weekly Schedule | Recurring template for each day of the week | "Mon-Fri 09:00–22:00, 60-min slots, max 2 bookings at once" |
| Overrides | Date-specific exceptions | "Apr 13 (Public Holiday) = Closed" or "Apr 20 = Modified Hours 10:00–14:00" |
| Bookings | Actual reservations made by customers | "Apr 14, 09:00–16:00, Birthday Party, 40 guests, Marko Petrović" |
The calendar shows all three layers at once. Overrides take precedence over the weekly schedule for a specific date. Bookings are overlaid as green blocks (or amber warning blocks if on a closed day).
Prerequisites
- At least one Service product — see the Service Products guide
- At least one Store configured in the organization
- User role with
products:updatepermission
Navigating to Service Scheduling
- In the portal sidebar, open Stores & POS
- Click Service Scheduling
- Select a Service from the dropdown (services are products with type = Service)
- Select a Store to manage its schedule
The page has three tabs: Weekly Schedule, Overrides, Bookings.
Weekly Schedule Tab
A full calendar with two views.
Week View (timeline)
- Vertical hour axis on the left (00:00–24:00)
- Seven day columns with actual dates
- Today is highlighted with a blue circle
- Slots appear as colored blocks at their exact time position
- Click any empty area in a day column to add a new slot for that day of week
- Click the `+` icon in a day header to add a slot
- Click a slot block to edit it
- Hover a slot to reveal edit/delete buttons
Month View
- Standard calendar grid (Mon-Sun)
- Each day cell shows summary badges:
- 🔵 N slots — configured weekly slots
- 🟢 N bookings — actual reservations
- 🔴 Closed — closure override
- 🟠 Modified Hours / Special Event — non-closure override
- Click any day to jump to the Week View focused on that date
Use the Today, Previous (‹), Next (›) buttons and view toggle (Week / Month) in the top toolbar.
Adding a Slot
- Click
+or an empty area in a day column - Fill in the slot form:
- Day of Week — which day this recurs on
- Start Time / End Time — the window (e.g., 09:00 to 10:00)
- Max Concurrent — how many simultaneous bookings allowed (e.g., 2 for a field with two halves)
- Duration (min) — how long one appointment takes
- Active — toggle off to pause this slot without deleting - Click Add Slot
Apply to Weekdays (Bulk)
To quickly create the same slot for Monday through Friday:
- Open a slot (existing or new)
- Click Apply to Weekdays
- The slot template is applied to days 1–5 in a single transaction
Existing slots at the same time are updated; missing ones are created.
Editing or Deleting a Slot
- Edit: Click a slot block or the pencil icon — the modal opens with current values
- Delete: Click the trash icon — confirm the deletion
- Pause: Toggle the Active switch on the slot card (appears in the mobile/list view)
Overrides Tab
Date-specific exceptions that override the weekly schedule.
Three Override Types
| Type | Use for | Behavior |
|---|---|---|
| Closed | Public holidays, scheduled closures | No slots available that day; existing slots dimmed with strikethrough |
| Modified Hours | Special operating hours | Slots are replaced by override start/end/capacity |
| Special Event | Holiday or promotional event | Slots are replaced; distinct visual indicator |
Adding an Override
- Open the Overrides tab
- Click + Add Override
- Fill in the form:
- Date (required)
- Override Type (Closed / Modified Hours / Special Event)
- Start/End Time (for Modified Hours or Special Event only)
- Max Concurrent and Duration (optional, to override the slot defaults)
- Notes (e.g., "Public Holiday", "Easter Sunday") - Click Add Override
How Overrides Appear on the Calendar
- Closed day: red-tinted column with "🚫 Closed — {notes}" centered; clicking opens the override for editing
- Modified Hours: amber badge at the top-left of the day
- Special Event: amber badge with alternate label
When a day is closed:
- Weekly slots still show but dimmed and with strikethrough (25% opacity)
- Bookings already on that date show in amber warning color with a ⚠ prefix (so the admin can decide whether to cancel them manually)
Bookings Tab
Actual reservations tied to specific dates and times.
Creating a Booking
- Open the Bookings tab
- Click + Create Booking
- Fill in the form:
- Booking Date (required)
- Start Time / End Time (required)
- Event Type:
- Standard — regular booking (e.g., 1h playroom entry)
- Birthday Party — books the entire facility
- Private Event — books the entire facility
- Tournament — group event
- Group Session — group class/activity
- Customer Name (required)
- Customer Phone (optional)
- Guest Count — number of guests (default 1, label changes to "Expected Guests" for facility events)
- Notes — special requests - Click Create Booking
Facility-Wide Bookings
When Event Type is Birthday Party or Private Event, a hint appears: *"This books the entire facility for the duration"*. Use these for whole-store rentals where no other customers can book overlapping slots.
Status Workflow
Each booking has a status that updates throughout its lifecycle:
| Status | Meaning |
|---|---|
| Confirmed | Booking accepted (default on creation) |
| Completed | Customer attended and the service was delivered |
| Cancelled | Customer or staff cancelled the booking |
| No Show | Customer did not arrive |
Update status inline from the Bookings table using the dropdown in the Update Status column. Delete a booking with the trash icon (confirmation required).
Booking Filters
- Start Time / End Time — date range filter
- Status — filter by confirmed, cancelled, completed, or no show
Viewing Bookings on the Calendar
In the Week View:
- Each booking appears as a green block at its exact time (or amber if on a closed day)
- Block shows time range and customer name + guest count
- Click a booking block to jump to the Bookings tab for editing/status updates
In the Month View: each day cell shows a 🟢 badge with booking count.
Tips
- Color legend: Blue-to-rose gradient = recurring weekly slots · Green = bookings · Amber = override/warning · Red = closed
- Timezone: All times are stored in the store's local timezone; no UTC conversion needed when entering values.
- Guest count on facility bookings (Birthday Party, Private Event) helps the kitchen and staff prepare. Track it even for walk-in bookings so reports are accurate.
- Public holidays: Create a Closed override for each holiday in advance. The calendar will block new bookings on those days.
- POS sync: Bookings created at the POS or via online channels appear here automatically with
source: posorsource: online. - Use Apply to Weekdays after setting up your first Monday slot — saves manual entry for the rest of the week.
Quick Navigation
| Action | Path |
|---|---|
| Create a service (prerequisite) | Catalog > Products > Add Product (Service) |
| Manage weekly slots | Stores & POS > Service Scheduling > Weekly Schedule |
| Add date-specific override | Stores & POS > Service Scheduling > Overrides > + Add Override |
| Create a booking | Stores & POS > Service Scheduling > Bookings > + Create Booking |
| Update booking status | Stores & POS > Service Scheduling > Bookings (status dropdown) |
| View booking calendar | Stores & POS > Service Scheduling > Weekly Schedule |
Need help? Contact support at support@stogly.com