Sessions
Sessions are time blocks that organize performances within an event. They're a core concept in CheerKeeper that helps both organizers and attendees navigate complex schedules.
What Are Sessions?
A session represents a distinct time period during your event, like:
- Morning Session (8:00 AM - 12:00 PM)
- Afternoon Session (1:00 PM - 5:00 PM)
- Awards Session (5:30 PM - 7:00 PM)
Sessions help attendees know:
- When to arrive
- Which part of the day their team competes
- When breaks and awards occur
Session Structure
Each session has these properties:
| Property | Required | Description |
|---|---|---|
id | Yes | Unique identifier |
eventId | Yes | Parent event |
sessionNumber | Yes | Order within the event (1, 2, 3...) |
date | Yes | Which event day |
hall | No | Assigned venue/room |
label | No | Display label (e.g., "AM", "S1") |
Creating Sessions
From the Event Builder
- Navigate to Event Builder → Step 4 (Sessions)
- Click + Add Session
- Fill in the details
- Sessions are automatically numbered
From Event Settings
- Go to Event Settings → Sessions
- Click + Add Session
- Configure the session
- Drag to reorder
Auto-Generated Sessions
When you add performances without sessions, CheerKeeper can auto-generate sessions based on:
- Time gaps in your schedule
- Hall assignments
- Date boundaries
Session Numbering
Sessions are numbered sequentially within an event:
Event: Spring Championship 2025
├── Session 1: Day 1 Morning
├── Session 2: Day 1 Afternoon
├── Session 3: Day 1 Awards
├── Session 4: Day 2 Morning
├── Session 5: Day 2 Afternoon
└── Session 6: Day 2 Awards
Session numbers are:
- Unique per event - No duplicates
- Sequential - 1, 2, 3... without gaps
- Stable - Don't change when other sessions are modified
Sessions and Halls
Sessions can be assigned to specific halls:
Single Hall Events
All sessions share the same space. Hall assignment is optional.
Multi-Hall Events
Assign sessions to specific halls for parallel competitions:
Hall A (Main Floor)
├── Session 1: Morning Cheer
└── Session 2: Afternoon Cheer
Hall B (Side Room)
├── Session 3: Morning Dance
└── Session 4: Afternoon Dance
Session Labels
Labels are short identifiers shown in the mobile app:
| Session Name | Label |
|---|---|
| Morning Session | AM |
| Afternoon Session | PM |
| Day 1 Session 1 | D1-S1 |
| Awards | AWD |
Keep labels short (2-6 characters) for mobile display.
Performances and Sessions
Assignment
Performances are assigned to sessions based on:
- Explicit assignment - You select the session when adding
- Time-based - Performance time falls within session boundaries
- Hall-based - Performance hall matches session hall
Moving Between Sessions
When you move a performance:
- Within the same session: Time shifts, session stays
- Across session boundary: Session assignment updates
- To a different hall: May change session if hall-specific
Empty Sessions
Sessions persist even when empty. This is intentional:
Why Keep Empty Sessions?
- Preserve event structure during editing
- Allow adding performances later
- Maintain consistent session numbering
- Support schedule templates
In the Mobile App
Empty sessions are hidden from attendees. They only see sessions with performances.
Cascade Behavior
Schedule changes respect session boundaries:
Within Session
When you shift a performance time, subsequent performances in the same session cascade.
Across Sessions
By default, cascade changes stop at session boundaries. This prevents:
- Morning changes affecting afternoon times
- One hall affecting another hall's schedule
Override
Enable Cross-Session Cascade in settings if you want changes to flow across sessions.
Session Times
Sessions have implicit start and end times:
Calculated Times
- Start: First performance time in the session
- End: Last performance time + rotation interval
Display Times
In the mobile app, attendees see:
- Session name and label
- Approximate time range
- Number of performances
Best Practices
Naming Conventions
Use clear, consistent names:
Good:
- "Day 1 - Morning"
- "Session 1 (AM)"
- "Junior/Senior Session"
Avoid:
- "S1" (too cryptic)
- "Morning stuff" (unprofessional)
- "8am session" (may change)
Session Count
- Small events: 1-2 sessions per day
- Medium events: 2-4 sessions per day
- Large events: 4-6 sessions per day
More sessions = more organization but more complexity.
Time Gaps
Leave buffer time between sessions for:
- Awards presentations
- Venue transitions
- Judge breaks
- Running behind schedule
Troubleshooting
Sessions Not Appearing
Check that:
- Session has at least one performance (for mobile app)
- Session date matches event date
- Session is not accidentally deleted
Wrong Session Assignment
Verify:
- Performance time falls within expected session
- Hall assignment matches (if hall-specific sessions)
- Session boundaries don't overlap
Session Numbers Out of Order
Session numbers should auto-correct. If not:
- Go to Event Settings → Sessions
- Drag to reorder
- Numbers update automatically
Technical Details
For developers, see the Database Schema for session model details.
Key Constraints
- Unique (eventId, sessionNumber) prevents duplicates
- sessionId on performances is nullable (SetNull on delete)
- MAX_CASCADE_DEPTH = 1000 prevents infinite loops
Related Docs
- Events - Parent entity for sessions
- Schedule Engine - How cascade logic works
- Schedule Management - Using sessions in the UI