How It Works
Understanding how the booking system components work together
This page explains how trading hours, resources, and services work together to determine when bookings are available.
The Basic Flow
The booking system calculates availability by layering different schedules:
- Trading hours set your site's baseline operating hours
- Resources either inherit those hours or define their own
- Services derive availability from linked resources
- Customers see the final available time slots
Each layer can add constraints, but none can override the site's closed periods (unless you explicitly opt out a resource).
Common Scenarios
The booking system is flexible - there are often multiple ways to achieve the same outcome. The examples below show common setups, but similar results could be achieved using different combinations of resource schedules, service constraints, and exceptions.
Scenario 1: Simple Setup
Your pharmacy is open Monday-Friday, 9 AM - 5 PM. You have one consultation room that follows site hours, and you offer general consultations.
Result: Customers can book consultations Monday-Friday, 9 AM - 5 PM.
This is the most straightforward setup - everything follows your trading hours.
Scenario 2: Part-Time Baby Clinic
Your site is open Monday-Friday, 9 AM - 5 PM. You have a consultation room available all week, but your baby clinic pharmacist only works Tuesday-Thursday, 10 AM - 3 PM. Baby clinic consultations require both the room and the pharmacist.
Setup:
- Resource 1: "Consultation Room" (follows site)
- Resource 2: "Baby Clinic Pharmacist" with custom availability (Tue-Thu, 10 AM - 3 PM)
- Service: "Baby Clinic Consultation" linked to both resources with mode set to "All" (both required)
Result: Baby clinic consultations only available Tuesday-Thursday, 10 AM - 3 PM.
The service is only bookable when both the room and pharmacist are available. Since the pharmacist has limited hours, those hours become the effective availability for the service.
Note: This outcome could also be achieved using a service-level constraint (as shown in Scenario 3 below) instead of a custom resource schedule. Choose whichever approach fits your mental model better.
Scenario 3: Limited Service Hours
Your site is open Monday-Friday, 9 AM - 5 PM, but vaccinations are only administered on Wednesdays from 9 AM - 12 PM.
Setup:
- Resource: "Consultation Room" (follows site)
- Service: "Vaccination" in Linked Resources mode with custom hours (Wed, 9 AM - 12 PM)
Result: Vaccination bookable Wednesday, 9 AM - 12 PM only.
Even though the room is available all week, the service-specific hours constrain availability for Vaccinations specifically.
Scenario 4: After-Hours Virtual Service
Your site is open Monday-Friday, 9 AM - 5 PM, but you want to offer virtual consultations in the evenings.
Setup Option 1 (using resource):
- Resource: "Virtual Pharmacist" with custom availability (Mon-Fri, 6 PM - 8 PM) and opted out of site hour constraints
- Service: "Virtual Consultation" linked to virtual pharmacist
Setup Option 2 (using service):
- Service: "Virtual Consultation" in Virtual mode with custom availability (Mon-Fri, 6 PM - 8 PM) and opted out of site hour constraints
Result: Virtual consultations available Monday-Friday, 6 PM - 8 PM (outside trading hours).
Both approaches work because they're opted out of site hour constraints. Choose based on whether you want to model a specific virtual resource (Option 1) or keep it purely service-based (Option 2).
How Exceptions Work
Exceptions override schedules at different levels, with different impacts.
Site-Level Exception
You mark your site as closed for a public holiday on Monday, December 25.
Effect: The entire site is closed - all resources and services are unavailable that day, regardless of their individual schedules (unless opted out).
Resource-Level Exception
Your pharmacist takes leave on Thursday, January 11.
Effect: Services linked to that pharmacist are unavailable that day. Other resources and their services continue normally.
Service-Level Exception
Vaccinations are temporarily suspended from February 1-14.
Effect: Vaccination bookings are unavailable during those dates. All other services continue normally.
Multiple Resources per Service
A service can be linked to multiple resources. When this happens, whether the service is available depends on the linked resource mode.
"Any" Mode (Default)
The service is available when at least one linked resource is available.
Example:
- Service: "General Consultation"
- Linked to: Room 1, Room 2, Room 3
- Linked resource mode: "Any"
Result: Customers can book whenever any of the three rooms is available. The system will automatically assign whichever room is free.
This is useful for managing capacity - multiple rooms increase your available booking slots.
"All" Mode
The service is available only when all linked resources are available simultaneously.
Example:
- Service: "Baby Clinic Consultation"
- Linked to: Consultation Room, Baby Clinic Pharmacist
- Linked resource mode: "All"
Result: Bookings are only available when both the room and pharmacist are free at the same time.
This is useful when a service genuinely requires multiple specific resources to be present.
Advanced Availability Modes
More complex availability modes will be available in the future, but we encourage you to keep it simple where possible!
The Site Hours Constraint
By default, resources are constrained by your site's trading hours, even if they have custom schedules. This means:
- A resource with custom hours of 8 AM - 6 PM will only be available 9 AM - 5 PM if those are your site's trading hours
- If your site is closed on a public holiday, all resources are unavailable regardless of their custom schedules
This default behaviour is usually what you want - when you close your site for a day, bookings stop automatically across all resources.
You can opt out individual resources from this constraint in the resource settings if you need them available outside trading hours (e.g., for virtual consultations).
What Determines Available Time Slots
When a customer views available times, the system considers:
- Site trading hours and exceptions
- Resource availability and exceptions
- Service-specific constraints and exceptions
- Existing bookings on those resources
- Booking buffers and advance booking limits