A grid that tells you before you publish
Built against the school’s real periods and teacher loads, with the clash reported while you are still editing the slot, and a substitution board for the morning somebody calls in sick at ten to eight.
The whiteboard and the photocopied grid
A timetable assembled by hand is checked by hand, which means a double-booked teacher is found by the teacher. And when the grid changes on Tuesday, the version on the staffroom wall does not. Here the entry is a record, the check runs before the save, and a substitution is a dated entry rather than a note in the margin.
A whiteboard grid photographed and shared
A photocopied master timetable per class
Teacher period loads counted by hand
Substitutions written on a slip in the staffroom
Timetable, screen by screen
Each of these is a screen or a service in the module rather than a heading on a roadmap.
Generate a week that holds
Scheduling a school week is a constraint problem, so it is solved as one. One lesson per section per slot; a teacher in one place at a time across every section in the school; a cap on how often a subject repeats in a day; a cap on a teacher’s daily periods; breaks and assembly never scheduled over; and anything you have already pinned left where it is.
Preferences, scored rather than hoped for
Subjects spread across the week instead of clumping, demanding subjects earlier in the day, teacher load levelled across days, no back-to-back repeats, and not every section getting the same subject in period one.
Reproducible, not random
Ordering and tie-breaks come from a seeded generator, so the same seed rebuilds the same grid exactly — a published timetable can be regenerated and audited — while a new seed explores a genuinely different valid arrangement. No two sections are handed the same layout.
Nothing placed silently
A hard constraint is never bent to fit a lesson in. A period that cannot be placed is reported back as unplaced, with the demand that could not be met, so you know what to resolve rather than discovering it in week two.
Conflicts named, not flagged
The check runs before a slot is saved and distinguishes a teacher double-booking from a class double-booking from a room double-booking, each returned as a sentence naming who and when rather than a red border.
A substitution board for the morning
Pick the absent teacher and the date; their periods for that day are listed, and for each one the board checks which teachers are already busy in that period. The cover is written as a substitution entry that remembers whose class it was and which date it applied to.
The same row, read from somewhere else
The point of an ERP is not that it has a lot of modules. It is that a fee concession, an attendance shortfall and a report card are all reading one record. These are the places Timetable touches.
Academics
Classes, sections, subjects and the session’s periods all come from Academics. The grid never holds its own copy of the class list.
Reports
Teacher load and the substitution log are both built-in report definitions, so “who is carrying the most periods” is a query rather than a count.
Attendance
Attendance can be recorded against a period, which is what makes a period-wise register possible in a school that runs one.
What Timetable does not do
Stated here rather than discovered in week three. If something you need is on this list, ask before you buy — it is a better conversation than the one after.
The generator solves for structure, not for preference lists. It does not model a teacher’s preferred free afternoon, a room’s equipment requirement, or travel time between campuses.
Room double-booking is detected when a room number is entered on the entry. Rooms are a field on the slot rather than a managed inventory with capacities, so there is no room-allocation planner behind it.
A published grid is read in the product and in the student portal. It is not pushed to a phone, because there is no app and no push pipeline.
Set your institution up on Elevate
Start on the free plan for up to 250 students. Paid plans begin at ₹1499 per month, billed to the institution.