Venues and events
Scheduling for venues, festivals and sports facilities
A venue sells and runs the same spaces at two speeds: months ahead, as holds and confirmed dates, and on the day, as a running order measured in minutes. The timeline has to serve both, and make the time between bookings as visible as the bookings themselves.
The space between bookings is the job
On a festival stage, a 45-minute set needs a soundcheck earlier in the day and a changeover before it, and the last act must finish before the curfew. In a conference center, a hall booked for a morning session needs resetting for an evening dinner. At a sports club, courts are sold in 30- or 60-minute slots while coaching, leagues and resurfacing compete for the same hours.
Bookings are not all equal either. Venues work with holds: a first hold on a date, a second hold behind it, and a confirmation that converts one of them. A calendar that only knows “booked” and “free” loses the negotiation that happens in between.
On the day, things run late. A delayed headliner or a rain break pushes everything after it, and the operations team needs to see the consequences before deciding what to shorten or cut.
Calls made in the production office
- 01
How long each changeover needs
Changeover time depends on the setups on either side. Too short and the stage runs late; too long and the program loses a slot.
- 02
Where the soundcheck goes
Soundchecks happen hours before the set, often in reverse running order, and each must stay tied to its performance when either one moves.
- 03
What the curfew allows
Noise limits and licensed hours fix the last minute of the day, and the running order is built backwards from it.
- 04
Holds versus confirmed bookings
A second hold can sit behind a first hold on the same space; a confirmed booking cannot be overlapped.
- 05
Court and room slots
Members book fixed slots, while staff block courts for coaching, leagues and maintenance and move sessions when weather or lighting fails.
Modeling spaces and running orders
Rows are spaces, events are sets, sessions and changeovers, and the shape of the day comes from the cells you choose to show.
- Resources
- Group stages, halls and rooms by site in a resource tree, or courts by surface. Coaches or crews can have rows of their own when they constrain the program.
- Events
- Sets, soundchecks, changeovers and court sessions are separate events with a kind field that renders each distinctly. Link each soundcheck to its set, and give bookings a status such as first hold, second hold or confirmed.
- Time scale
- Use 5- or 15-minute cells on show days and day cells across a festival run, with zoom between them. For a night that ends at 03:00, show two days and hide the cells between 03:00 and noon with onIncludeTimeCell, so the night reads as one operating day.
- Rules
- Refuse overlaps on stages, but let holds sit together by deciding args.allowOverlap in onEventMoving from the status of the events in args.conflicts. Mark curfew and maintenance as disabled cells, draw doors and curfew as separators, and offer quick actions such as “mark delayed” through context menus.
Timeline and box office
- Minute-level cells and zoom out to a whole festival run
- Links between soundchecks and sets
- Disabled cells for curfews and maintenance, separators for doors and curfew
- Context menus on events, rows and empty time
- Per-drag overlap decisions based on the events in conflict
- Theming to match a venue or club brand
- Ticketing, member accounts, payments and public booking pages
- Hold ranking and the rules for converting holds
- Recurring classes and leagues, expanded into individual sessions
- Rippling a delay through the running order, if you choose to automate it
- Artist, client and contract data
Working examples
Where event schedules slip
Expecting a delay to ripple by itself
Moving a set does not move the next one. Shift the following events in your own handler, as one undoable change, or leave the decision to the stage manager.
Letting midnight split the show day
A set from 23:30 to 00:45 crosses a calendar day. Build the visible window around the operating day, not the calendar day, and keep times as plain civil date-times.
Treating holds as free time
If holds are not on the timeline, two promoters can be offered the same date. Keep them as events with a status, even when they are allowed to overlap.
One screen for staff and members
Staff see blocks, holds and notes that members must not. Build the member view from its own data and permissions instead of hiding fields in a shared one.
Questions
Can I schedule events that run past midnight?
Yes. Events are civil date-time intervals, so 2026-07-18T23:30:00 to 2026-07-19T00:45:00 is an ordinary event. Show two days and hide the hours the site is closed with onIncludeTimeCell, so the night reads as one continuous operating day.
How do I keep a soundcheck connected to its performance?
Add a link from the soundcheck event to the set event. It is drawn between them and follows both when either moves. Whether moving the set should also move the soundcheck is logic you add in onEventMoved.
Can courts be booked in 30- or 60-minute slots?
Yes. Set scale to “CellDuration” with cellDuration 30, or use scale “Hour”. Drags and new selections snap to the cell, and onTimeRangeSelecting can refuse a selection longer than the club allows, with a message.
Can members book courts themselves with this?
The timeline can be embedded in a member-facing page, but sign-in, booking limits, payments and confirmations belong to your application. Consider a full timeline for staff and a narrower, separately permissioned view for members.
Two venue demos
Aurora Live adjusts a soundcheck and shows its link to the performance; Court Club moves a class, blocks a court for maintenance and validates overlaps. Both businesses are fictional.
Working examples