Event
canonical term:showEvent | plural: showEvents
This document explains what an Event is, how it relates to a Show, and what operational data it carries.
What Is an Event?
An Event (showEvent) is a scheduled, bookable instance of a show on a specific date. It is the thing guests actually reserve seats for.
While a Show (showTemplate) is the blueprint — “Jazz Night is a Wednesday show with doors at 7pm” — an Event is the real thing — “Jazz Night on Wednesday 3 June 2026 at 7:30pm, with 14 seats remaining.”
The event is what appears in the booking calendar. It is what has availability. It is what owns the list of reservations for that performance.
Why Not “Episode”?
Use Event (showEvent) as the canonical operational and code term. It describes a scheduled, bookable live performance with a date, capacity, reservations, payments, check-in, and prep work.
The word episode can work as brand or editorial copy if House of Legends deliberately wants a serialized-story metaphor, but it should not replace showEvent in code, API contracts, admin workflows, or operational docs.
Event vs. Show
This is the most common confusion in the codebase. Here is the distinction:Show (showTemplate) | Event (showEvent) | |
|---|---|---|
| Is it bookable? | No — it is a definition | Yes — guests reserve seats |
| Has a date? | No — it is the template | Yes — specific calendar date |
| Has availability? | No | Yes — remaining seats |
| How many exist? | One per show type (7 shows) | Many — one per scheduled date |
| Example | Jazz Night | Jazz Night — Wed 3 Jun 2026 |
- Show = “what” — what kind of experience is this?
- Event = “when” — when does this specific performance happen?
What Defines an Event?
When an event is created from a show, it inherits all the show’s programme data and adds date-specific information:- Date — the calendar date (e.g. 3 June 2026)
- Event slot — the show time within that date (e.g. “7:30 PM”)
- Availability — remaining seats (starts at capacity, decrements per reservation)
- Status — SCHEDULED, SOLD_OUT, CANCELLED, POSTPONED
- Prep counts — what the kitchen needs to prepare
- Logistics notes — any show-specific setup notes
- Reservation list — everyone booked for this performance
The Event Reference Format
Events have a human-readablereference that encodes the show and date:
| Part | Meaning | Example |
|---|---|---|
EVT | Prefix — this is an event | EVT |
{SHOWCODE} | Show identifier | JAZZ |
{YYMMDD} | Event date, compact | 260603 |
{NNNN} | Sequence — if multiple shows on same date | 0001 |
EVT_JAZZ260603_0001 — Jazz Night on 26 June 03, first event of the day.
The Three Identifiers of an Event
| Identifier | Example | Purpose |
|---|---|---|
id (ULID) | 01ARZ3NDEKTSV4RRFFQ69G5FAV | Machine identity — joins, API, DB |
reference | EVT_JAZZ260603_0001 | Human identifier — ops, receipts |
slug | jazz-night-2026-06-03 | Friendly identifier — derived from show slug + date |
How Events Own Reservations
An event is the parent of all reservations for that performance. When a guest books:Event Status Lifecycle
| Status | Meaning |
|---|---|
SCHEDULED | Normal — bookings open |
SOLD_OUT | All 32 seats reserved — waitlist may open |
CANCELLED | Show cancelled — all reservations refunded |
POSTPONED | Show moved — reservations transferred to new date |
Key Fields
| Field | Type | Notes |
|---|---|---|
id | ULID | Machine identity |
reference | string | e.g. EVT_JAZZ260603_0001 |
slug | string | e.g. jazz-night-2026-06-03 |
showTemplateId | ULID | FK to parent show |
showDate | date | Calendar date |
eventSlot | string | Show time, e.g. “7:30 PM” |
doorTime | string | Door time, e.g. “7:00 PM” |
showTime | string | Show start time, e.g. “7:30 PM” |
totalCapacity | number | Inherited from show — 32 |
remainingSeats | number | Live availability |
status | enum | SCHEDULED, SOLD_OUT, CANCELLED, POSTPONED |
See Also
- Show — the template this event is created from
- Reservation — bookings for this event
- Offer — what guests can add to their reservation
- Booking Flow Overview — how events are selected
- Pricing Model — how event pricing is determined
