Education & Exams
School Timetable Generator
Give it the subject allocation — class, subject, teacher, periods a week — and get a clash-free timetable: a grid for every class, a grid for every teacher, double periods kept together, teacher free days honoured, and a plain list of anything that would not fit. Runs in your browser; no staff names are uploaded.
Privacy
Student names, marks and attendance stay on this device. The file is read and the result is written by your own browser — nothing is uploaded, queued or logged, so a school can use this without a data-processing agreement or a parent’s consent form.
Tips
- The one file it needs is the allocation your school already writes: one row per class–subject–teacher, with the periods a week. Column names are matched for you and can be corrected.
- Put the number of double periods in its own column for laboratory and games lessons. A double is placed as two periods side by side on the same day and never across a break.
- A teacher who is part-time, or who must have Wednesday afternoon free, goes in the unavailable box — one line per teacher, for example “R Menon: Wed 5-8, Fri”. Those slots are then left empty for that teacher, not worked around afterwards.
- Assembly, games and library go in the fixed periods box. They hold the class’s slot without needing a teacher, and everything else is arranged around them.
- If something cannot be placed the tool says so by name and explains why — usually one teacher has more periods than the week has slots, or two classes need the same teacher at the only time either is free. Fix the allocation and run it again; nothing is silently dropped.
- The seed makes a run repeatable. Change it to get a different arrangement of the same allocation, and keep the number of the one you liked.
Frequently asked questions
What does it guarantee?
No teacher is in two places at once, no class has two lessons at once, no teacher is booked when you said they are unavailable, no teacher exceeds the daily maximum you set, and every double period sits in two adjacent slots on one day. Those are checked after the grid is built, and the tool refuses to call a timetable finished if any of them fails.
What does it only try to do?
Spreading a subject across the week rather than twice in a day, keeping teachers’ free periods together instead of scattered, keeping the last period of the day off the subjects you name, and levelling teachers’ daily loads. These are scored, not enforced: a timetable that places every lesson with a few of these imperfect is better than no timetable.
Why did some lessons not fit?
Almost always arithmetic rather than bad luck. Add up one teacher’s periods a week: if it is more than the days times periods you have, no arrangement exists. The same goes for a class. The unplaced list names the class, subject and teacher, and the summary shows each teacher’s load against the maximum possible, so the cause is usually visible in one line.
Can it handle two teachers for one subject, or a class split into sets?
Write them as separate rows — “7A / Mathematics / R Menon / 4” and “7A / Mathematics / S Iyer / 2” — and both are placed without clashing. A split into sets that run at the same time is not supported: the tool assumes one class is in one place at a time.
Is any of this uploaded?
No. The allocation is read by your own browser, the timetable is built there, and the spreadsheet and PDF are written there. Staff names and teaching loads never leave the device.