Skip to Content
Retour aux modules
Education

Course & Activity School – Timetable Planner Add-on

Add-on for Course & Activity School Management: proposes the weekly timetable of a season (rooms, teachers, availabilities, student groups, preferences) with Google OR-Tools CP-SAT or a built-in solver, then applies it to the courses. The add-on itself is free; the price shown is the main app it requires.

20.0 19.0 18.0 17.0 16.0
Course & Activity School – Timetable Planner Add-on
Course & Activity School – Timetable Planner Add-on

Présentation du module

Nalios
Odoo Gold Partner · Belgium

/ Odoo 20 · School

Your weekly timetable, proposed for you

Free add-on for Course & Activity School Management: it proposes the weekly slots of a season from your rooms, the availability of your teachers and your student groups, shows the score and the conflicts, lets you adjust it, then applies it to the courses.

Free Google OR-Tools CP-SAT Built-in solver Weekly grid Conflict report Requires Course & Activity School Management

What it does

From a list of classes to a timetable you can apply

Courses to schedule

Sessions per week, duration, required room features, teachers, student groups, preferred days and hours. Defaults come from the current slots.

Rooms and sites

Capacity and features (piano, mirrors, sound system...) per room, opening hours per site, optional travel time between two sites.

Teacher availability

A weekly grid per teacher, per season if needed, with available and preferred hours. Teachers can keep their own lines up to date.

Never two places at once

One room, one teacher, one student group at a time; students enrolled in two courses never have them at the same time; one session of a course a day.

Preferences with weights

Preferred days and hours, teacher preferred hours, compact days for a group, siblings on the same day, keep the usual room, keep the current hours.

Review, adjust, apply

Weekly grid by room, teacher or group, calendar with drag and drop, locked slots, live score. Apply replaces the slots and regenerates the sessions.

Weekly grid of a proposal: one row per room, one column per day, the courses placed with their teacher

The proposal

Solved, scored, explained

Pick the season: its weekly classes are loaded. Solve: every session gets a day, an hour and a room. The result shows the sessions that could not be placed, the conflicts, the unmet preferences, the penalty and, with CP-SAT, the best penalty that is possible at all.

A proposal solved with CP-SAT: optimal, penalty and best possible penalty

A proposal solved with CP-SAT: optimal, penalty and best possible penalty

The same week, one row per teacher

The same week, one row per teacher

Score and conflicts

Every unmet preference, in plain words

Conflicts block the apply; warnings flag a manual change outside the rules (teacher not available, site closed, room too small); preferences explain the penalty. The weights are yours.

Issues of a proposal with their penalty

Issues of a proposal with their penalty

Hard rules and preference weights of a proposal

Hard rules and preference weights of a proposal

Manual adjustments

Your changes, checked as you make them

Move a slot in the calendar or edit it in the list: the score and the conflicts are recomputed at once. Lock the slots you want to keep and solve again for the others.

The proposal in the calendar, on a reference week

The proposal in the calendar, on a reference week

Proposed slots with their current slots, lock and check

Proposed slots with their current slots, lock and check

Inputs

Set once, used every season

A Timetable tab on the courses, opening hours on the sites, features on the rooms, a weekly availability per teacher and student groups for the courses taken by the same children.

The Timetable tab of a course: sessions per week, duration, room features, groups, preferred days

The Timetable tab of a course: sessions per week, duration, room features, groups, preferred days

Weekly availability of the teachers

Weekly availability of the teachers

Solvers

Two engines, one result

Google OR-Tools CP-SATUsed when the Python library ortools is installed on the server (pip install ortools; on Odoo.sh, add ortools to the requirements.txt of your repository). It finds the optimum, or the best timetable within the time limit, and tells how far from the best possible it is.
Built-in heuristicPure Python, always available: greedy placement, repair of the sessions left over, then local search (moves, swaps through a blocking session, regrouping the days of a group). Also used to warm-start CP-SAT.
SizesMeasured on a laptop: the demo school (11 weekly sessions) is solved to the proven optimum in about one second, 30 weekly sessions in under ten seconds; 60 to 100 weekly sessions get a complete timetable without conflict within the 20 second default (best found, with the gap to the best possible). Installing the add-on does not require ortools.
ApplyThrough the slot API of the main app: the weekly slots of each course are replaced and its sessions regenerated from today (past sessions are kept). If a new session would clash with another one in a room (a camp, a one-off session), nothing is changed and the conflicts are listed.

How it works

A timetable in four steps

1

Describe

Room features and site opening hours (Configuration), teacher availability and student groups (Planning), the Timetable tab of the courses.

2

Solve

Planning > Timetable Proposals > New: choose the season, check the courses and the weights, click Solve.

3

Review

Read the score and the issues, look at the grid, adjust slots in the list or the calendar, lock what you like and solve again.

4

Apply

Apply to the Courses: slots replaced, sessions regenerated, conflicts reported if any.

FAQ

Good to know

Which courses does it plan?

Weekly classes. Private lessons and camps are not re-planned: the private lessons of confirmed enrolments and the weekly classes left out of the proposal are taken as busy times for their room, teacher and students.

Does it plan a different week every week?

No: it plans the weekly pattern of the season (the slots of the courses). The main app turns it into sessions and skips the holidays.

Is ortools mandatory?

No. Without it the built-in heuristic is used and the proposal form says so. CP-SAT gives better results on tight timetables and proves when a timetable is optimal.

What about the server limits?

Solving runs in the request: keep the solving time (20 seconds by default) below the CPU time limit of your workers. CP-SAT uses two threads.

Can I apply during the season?

Yes. Sessions before today stay as they are; from today on, the sessions follow the new slots. Sessions with a roll call already taken are never removed.

Part of Course & Activity School Management

This module only works with the paid app Course & Activity School Management (technical name course_school), which holds the families, students, courses, sessions, enrolments, invoicing and roll call. Search for it on the Odoo Apps Store. This add-on itself is free: the price displayed on this listing is the one of the main app, which it requires.

A question? A problem? Talk to the people who built it.

We will get back to you within 8 business hours.

Contact us

Email us directly at

[email protected]

Published by

Nalios — Odoo Gold Partner, Belgium — nalios.be