Courses can meet alone or together.
Schedule fixed groups, flexible combinations, and shared sessions without flattening them into special cases.
Open-source scheduling engine
Model groups, teachers, rooms, availability, and shared sessions. Let CP-SAT find a schedule you can verify.
Every lesson competes for people, rooms, and time. Timetable models those relationships explicitly, then checks the result independently.
Read the problem formatEach boundary stays visible, testable, and useful on its own.
Declare the school week, workloads, resources, and availability in JSON.
Catch malformed data and broken references before optimization starts.
Apply hard constraints and minimize preference penalties with CP-SAT.
Check the solution independently, then export JSON and CSV files.
The backend already handles the relationships that make manual scheduling difficult.
Schedule fixed groups, flexible combinations, and shared sessions without flattening them into special cases.
Teachers, teaching teams, student groups, and rooms cannot occupy two places at once.
Respect breaks, daily limits, blocked periods, and uninterrupted multi-period sessions.
A separate validator checks generated sessions and structured diagnostics explain impossible inputs.
Clone the repository, validate the fictional example, and generate a schedule from the command line.
View the roadmap$ git clone https://github.com/aldahiiir/timetable.git
$ cd timetable
$ pip install -e '.[dev]'
$ timetable validate examples/basic_school/problem.json
Problem is valid.
$ timetable solve examples/basic_school/problem.json
Solver status: OPTIMAL
The public backend preview is ready for early technical and usability feedback.