Program & Schedule¶
Overview¶
The Program module (program_enabled) provides tracks, sessions, speaker assignments, public agenda, live board, session registration, Q&A, conflict detection, and ICS export for multi-track conferences.
Purpose¶
Centralize schedule building, publishing, and day-of session operations linked to speaker and attendee modules.
Who should use it¶
- Program committees
- Producer / stage managers
- Speakers confirming slots
- Attendees building personal agendas
Benefits¶
- Draft → review → lock → publish workflow
- Live board for stage managers
- Session-level registration and waitlist
- Public program pages and ICS feeds
Navigation path¶
| Action | Path |
|---|---|
| Program hub | /program/ |
| Event program | /program/events/<pk>/<tag>/ |
| Edit program | /program/events/<pk>/<tag>/edit/ |
| Publish | /program/events/<pk>/<tag>/publish/ |
| Sessions list | /program/events/<pk>/<tag>/sessions/ |
| Tracks | /program/events/<pk>/<tag>/tracks/create/ |
| Program dashboard | /program/events/<pk>/<tag>/dashboard/ |
| Schedule review | /program/events/<pk>/<tag>/review/ |
| Lock schedule | /program/events/<pk>/<tag>/lock-schedule/ |
| Live board | /program/events/<pk>/<tag>/live/ |
| Public program | /program/public/<pk>/<tag>/<program_pk>/ |
| My agenda | /program/events/<pk>/<tag>/agenda/ |
| Session catalog | /program/events/<pk>/<tag>/catalog/ |
| Analytics | /program/events/<pk>/<tag>/analytics/ |
| Notifications | /program/notifications/ |
Prerequisites¶
- Subscription: Essentials+ (
programtool key) - Event:
program_enabled=True - (Recommended) Speakers module for assignments
- (Recommended) Attendees module for session check-in
Step-by-step — Build schedule¶
- Enable Program & Schedule on event.
- Open
/program/events/<pk>/<tag>/edit/— create program container. - Add Tracks (e.g., Main Stage, Workshops).
- Create Sessions with times, rooms, capacity.
- Assign speakers via
/sessions/<session_pk>/speakers/. - Run Conflicts check:
/conflicts/. - Review → Lock schedule → Publish.
[SCREENSHOT: Session editor]
Step-by-step — Attendee session registration¶
- Attendee opens Session catalog.
- Registers for sessions (capacity/waitlist enforced).
- Builds My agenda with personal schedule.
- Downloads ICS:
/agenda.ics.
Field descriptions¶
| Entity | Key fields |
|---|---|
| Program | Title, status, publish state |
| Track | Name, color, sort order |
| Session | Title, start/end, room, capacity, format |
| Assignment | Speaker link, role, confirmation status |
| Session registration | Status, waitlist_position |
Business rules¶
| Rule | Detail |
|---|---|
| Lock schedule | Blocks structural edits after lock |
| Conflicts | Overlapping speaker/room detection |
| Session waitlist | Promote via promote_waitlist_registration |
| Live board | Real-time feed for stage ops |
| Public program | Separate public URL with program_pk |
| Judges | Not implemented — speaker judging roadmap only |
Validation rules¶
- Session end after start
- Capacity positive integer
- Cannot publish empty program (per workflow guards)
User permissions¶
| Action | Host | Speaker | Attendee |
|---|---|---|---|
| Edit schedule | ✅ | ❌ | ❌ |
| Confirm assignment | ✅ | ✅ own | ❌ |
| Session register | ❌ | ✅ | ✅ |
| Live board | ✅ | ❌ | ❌ |
Workflow¶
Examples¶
3-track conference: Keynotes on Main, breakouts with session caps, live board in ops office.
Single-day meetup: One track, open sessions, no session registration.
Best practices¶
- Lock schedule 48h before event
- Resolve conflicts before speaker notifications
- Use session registration only when rooms have limits
Tips¶
- Speaker confirm:
/speakers/<assignment_pk>/confirm/ - Q&A per session:
/sessions/<session_pk>/qa/ - Push notifications:
/notifications/preferences/
Common mistakes¶
| Mistake | Result | Fix |
|---|---|---|
| Program toggle only | Empty public page | Build sessions in Program app |
| Skip lock | Last-minute chaos | Lock after committee sign-off |
| No attendee module | No session scan | Enable attendees |
FAQs¶
Is there a judging workflow?
No — judge panels are not implemented in codebase; roadmap item for talent/speaker contexts.
Troubleshooting¶
| Symptom | Cause | Fix |
|---|---|---|
| Can't edit session | Schedule locked | Unlock via host workflow |
| Conflict false positive | Buffer time | Adjust session times |
Related features¶
Screenshot placeholders¶
[SCREENSHOT: Program dashboard][SCREENSHOT: Live board][SCREENSHOT: My agenda attendee view]
Administrator notes¶
- Workflow services:
program/workflow_services.py - Analytics:
program/analytics_views.py
Developer/API notes¶
Live feed: GET .../live/feed/
Live actions: POST .../live/action/
Session scan API parallels attendee check-in.
See also: Events & Registration