Composite courses: multi-part classes sold as one
Composite courses let the Booking Engine sell multi-part classes as one product: a parent session carries labelled, ordered component sessions that inherit its timetable and settings, and a single enrolment on the parent covers every part. Components are managed through dedicated API operations, and the structure is covered by end-to-end tests.
What does the composite course capability do?
Plenty of real programmes are not a single class. A performing-arts session might combine dance, drama, and singing components; a coaching product might pair a group class with a linked practice session. Selling these as separate bookings creates orphaned places and mismatched registers; flattening them into one class loses the structure staff plan around.
- Parent and components. A composite course is a parent session with component sessions beneath it, each carrying a label and an explicit sort order.
- One enrolment. Customers enrol on the parent. There is no risk of a child booked into one component but not another, because the components are not bookable products in their own right.
- Inherited scheduling. Components inherit the parent’s timetable and settings, so the parts stay aligned through term calendars and skip dates without duplicate administration.
- API-managed. Adding, updating, and removing components are first-class API operations under the parent session, so the structure is available to every channel, not just one admin screen.
How it fits the rest of the engine
Composite structure composes with the platform’s other scheduling machinery rather than sitting beside it. Occurrences are still generated per date, capacity and counters still work per occurrence, and attendance registers still record against the specific dates delivered. The composite layer only changes what is sold and how the parts relate.
Why it matters
Multi-part programmes are common in exactly the sectors that outgrow generic booking tools: performing arts, activity camps, structured coaching. The workaround in a flat system is either double data entry or a naming convention someone has to police. Modelling the structure natively means the product sold matches the programme delivered, which is the standard the Booking Engine holds across its scheduling model.
Frequently asked questions
What is a composite course?
Do customers book each component separately?
Can components be changed after the course is created?
More Booking Engine capabilities
Waitlists: positioned queues that never race
How the Booking Engine handles full sessions: atomic waitlist joins with explicit queue positions, configurable queue sizes, and live waiting counts.
Checkout reservations: hold a place while the customer pays
How the Booking Engine holds places during checkout: time-boxed reservations with configurable expiry, lazy release, and guarded atomic confirmation.
Capacity and overbooking: hard limits, deliberate exceptions
How the Booking Engine models capacity: per-occurrence limits, live booked and waiting counters, sub-capacities for trials and make-ups, and an explicit overbooking allowance.
See this working in a demo
Book a consultation and we will demonstrate this capability on the Booking Engine accelerator, against your own scenarios.
Book a demo