Generate optimized conference schedules using SolverForge (Timefold compatible)...
Generate optimized conference schedules using SolverForge (Timefold compatible). Supports single-day and multi-day conferences.
# Install dependencies (requires Python 3.10-3.12)
pip install solverforge_legacy --break-system-packages
# Run scheduler
python assets/scheduler.py schedule.csv talks.csv output.csv --time-limit 30
"from hour";"to hour";"session type";"room name"
"10:35";"11:20";Conference;Room 2
"10:35";"11:20";Conference;Room 8
"11:30";"12:15";Conference;Room 3
Add a "day" column as the first column:
"day";"from hour";"to hour";"session type";"room name"
"Wednesday";"09:30";"10:15";Conference;Room 1
"Wednesday";"10:35";"11:20";Conference;Room 2
"Thursday";"09:30";"10:15";Conference;Room 1
Day values can be: day names (Monday, Tuesday), dates (2024-03-15), or labels (Day 1, Day 2).
"Talk ID";"Talk Title";"Audience Level";"Talk Summary";"Track Name";"Speaker Availability days";"Available from";"Available to";"Speaker names"
1411;Unit Test Your Architecture;BEGINNER;ArchUnit is...;Development Practices;Wednesday,Thursday;;;Roland Weisleder
3872;Full-stack development;INTERMEDIATE;Java developers...;UI & UX;;;;Simon Martinelli
Speaker Availability formats (column 6):
Wednesday,Thursday1,2,3| Constraint | Description |
|---|---|
| Speaker conflict | Same speaker can't be in two rooms at same time |
| Room conflict | Two talks can't be in same room at same time |
| Track conflict | Same track can't have talks in different rooms simultaneously |
| Speaker availability | Speaker must be available on scheduled day |
| Constraint | Description |
|---|---|
| Educational flow (level) | Beginner โ Intermediate โ Advanced within track per day |
| Educational flow (order) | Respect AI-computed optimal talk sequence |
| Track room consistency | Keep same track in same room on same day |
Single-day:
"Talk ID";"From";"To";"Room";"Title";"Speakers";"Level";"Track"
Multi-day:
"Day";"Talk ID";"From";"To";"Room";"Title";"Speakers";"Level";"Track"
Generated alongside CSV with .md extension, includes tables grouped by timeslot (and day for multi-day).
The schedule has constraint violations. Check for:
Increase time limit or review input data.
Verify CSV parsing - check semicolon separators and quote handling.
Ensure the "Speaker Availability days" column values match the day names in your schedule CSV (e.g., if schedule uses "Wednesday", availability should use "Wednesday" not "Wed").
Ensure JDK 17+ is installed and JAVA_HOME is set correctly.
Powered by SolverForge