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

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+ (program tool key)
  • Event: program_enabled=True
  • (Recommended) Speakers module for assignments
  • (Recommended) Attendees module for session check-in

Step-by-step — Build schedule

  1. Enable Program & Schedule on event.
  2. Open /program/events/<pk>/<tag>/edit/ — create program container.
  3. Add Tracks (e.g., Main Stage, Workshops).
  4. Create Sessions with times, rooms, capacity.
  5. Assign speakers via /sessions/<session_pk>/speakers/.
  6. Run Conflicts check: /conflicts/.
  7. ReviewLock schedulePublish.

[SCREENSHOT: Session editor]


Step-by-step — Attendee session registration

  1. Attendee opens Session catalog.
  2. Registers for sessions (capacity/waitlist enforced).
  3. Builds My agenda with personal schedule.
  4. 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

stateDiagram-v2 [*] --> Draft Draft --> Review: Submit review Review --> Locked: Lock schedule Locked --> Published: Publish Published --> Live: Event day live board

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

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