Building a school timetable: the complete guide for the timetabler

The short answer: you build a school timetable in five steps: you collect the data (days, periods, teachers, classes and hours for each subject), you collect and approve the constraints, you place the lessons, you check what was kept and what was not, and you send it to the teachers before publishing. Most of the work is in the data and the constraints. The placement itself, manual or with a constraint solver, is the short part if the data is right.
This guide is written for the timetabler: a teacher who was handed the task, not an information systems manager. It goes through every step, what is important to check in it, and where things usually go wrong. In each step it also shows how to do it in Teaching School, but the principles are right in any tool.
Why a timetable is so hard
A timetable is a puzzle in which every piece touches all the others. A math teacher who teaches five classes connects those five classes to each other. One sports hall connects all the physical education lessons. A grouping in English requires several classes to study English at exactly the same hour. And a small fix in one class can move lessons in ten other classes.
That is why the first rule: do not start placing before all the data and constraints are on the table. A timetabler who starts placing and then discovers that a teacher does not work on Tuesdays starts again.
Step 1: the school's data
Before anything, you define the frame:
- Teaching days. Sunday to Thursday, and Friday if there is one.
- The number of periods a day and the length of a period. For example (for illustration) 8 periods of 45 minutes.
- Breaks. After which period, and how long.
It sounds trivial, but this is where it is set how many "slots" there are in the week, and that is the number that everything else has to fit into. A school with 5 days and 8 periods a day has 40 slots for each class. A class that needs 42 weekly hours will not fit, and it is worth finding that out now.
In Teaching School: the setup wizard asks for a school name, a school year, teaching days, periods a day (1 to 14), period length and breaks. All of it can be changed later. Already on this screen the commercial condition is written: free until you publish the first timetable.
Step 2: the teacher roster and qualifications
For each teacher you need to know:
- Which subjects they teach.
- Which grades they are qualified for or suited to.
- How many hours they work, and the maximum hours a day if there is one.
- Contact details, mainly an email, because through it you collect constraints and send the timetable.
The common mistake here is a teacher who is registered in one subject but in practice also teaches another subject, or a teacher who left and is still on the list. Go over the list with the principal or the deputy before you continue.
In Teaching School: you add teachers one by one, or "Import from a file" from Excel or CSV (also in the Windows-1255 encoding of Hebrew Excel). Before the import you see each row, which are valid and which are not, and why. A teacher without an email is saved, but the system warns that they will not receive requests by email.
Step 3: classes, subjects and weekly hours (the hours sheet)
The hours sheet is the table that says, for each class and each subject, how many hours a week and who teaches. This is the heart of the timetable. Every mistake here will appear in the final timetable.
What to check in the sheet:
- The total hours for each class does not exceed the number of slots in the week.
- The total hours for each teacher matches their position.
- Groupings. When several classes study a subject in levels (for example English in three levels), all the levels must be at the same hour, and each level has a different teacher. Record the grouping as one unit, not as separate lessons.
- Subjects without a teacher. If you have not yet decided who will teach, mark that explicitly.
In Teaching School: the "Classes and subjects" screen is a table of class against subject: in each cell how many hours a week and who teaches. If you have not decided yet, you choose "System chooses", and the solver will choose from the qualified teachers. You can "Start from a grade template" (Hebrew, math, English, science, history, physical education) and edit, add a grouping for lessons in levels, and import the hours of existing classes from an Excel file. Every change is saved at once.
Note: there is no student data in the system at all. Only teachers and classes.
Step 4: collecting constraints and approving them
Constraints are everything that limits the placement beyond the hours sheet. Three kinds:
- Teacher constraints. "Ronit does not teach on Tuesdays", "no more than 5 hours a day", "Danny finishes at 12:00 on Thursdays".
- Class and subject constraints. "Math in seventh grade not after the sixth period", "English in double periods", "not two history lessons on the same day".
- School constraints. "There is one sports hall", "a homeroom teacher opens the day".
Hard and soft constraints
The most important distinction at this stage:
| Hard constraint | Soft constraint | |
|---|---|---|
| What it is | Must hold | Better if it holds |
| Examples | A teacher in one class at every hour; a teacher unavailable on a certain day; one hall | A homeroom teacher opens the day; few gaps for a teacher; spreading a subject over the week |
| When it is not kept | There is no timetable | There is a timetable, with a compromise |
Teachers tend to phrase every preference as an obligation. The timetabler's job is to ask: "Is this impossible, or only inconvenient?" A timetable with too many hard constraints usually cannot be solved at all. A detailed guide to phrasing and collecting: teacher constraints in a timetable.
How to collect
The old way is a paper form or a WhatsApp group, and then typing by hand. The problem is that answers get lost and you cannot know who has not answered yet. It is worth asking each teacher separately, giving a deadline, and gathering everything in one place.
In Teaching School: you write constraints in free language, the way you speak, at the level of the school, a teacher or a class. You can also press "Send constraint request" to all the teachers: each teacher receives an email with a personal link, and answers from the phone or the computer, in her own words, or by ticking "Days I am not available" and "Most periods a day". You see who answered and who did not.
The important point: next to each constraint the system shows what was written and what it understood, and no constraint enters the calculation before you approve it. A phrasing the system could not understand is marked, and you are asked to phrase it again.
Step 5: placement - manual vs a constraint solver
Manual placement
Veteran timetablers work in a fixed order, from hard to easy:
- Groupings and shared lessons for several classes, because they take up several classes and teachers at once.
- Part-time teachers or those with the most constraints, because they have the fewest options.
- Shared resources: hall, lab, computer room.
- Double periods.
- Everything else.
Manual placement gives full control, but it is slow, and above all fragile: one change in the middle forces you to go over a large part of the timetable again. It is also the place where it is easy to miss a collision, like a teacher placed in two classes at the same hour.
A constraint solver
A constraint solver is software that receives all the data and constraints and looks for a timetable that meets all the hard constraints and as many of the soft ones as possible. It sees the whole school at once, so it does not get stuck on "I placed seventh grade 1 and now seventh grade 2 does not fit".
What the solver does not do: it does not know what you did not tell it. If a constraint was not entered, it does not exist for the solver. That is why step 4 matters so much. On the differences between kinds of software: school timetable software.
In Teaching School: you press "Build a timetable". You can set "Longest solve time". A large school (more than 400 lessons a week) or a long calculation runs in the background: you can close the page, and an email "The timetable is ready" arrives. At the end you see the timetable "By class" or "By teacher".
Step 6: checking - what was kept and what was not, and why
A first timetable is almost never final. The check includes three questions:
- Were all the hard constraints kept? Including the basic question: no teacher in two classes at the same hour, and no class in two lessons.
- Which soft constraints were not kept, and why? Sometimes that is acceptable, and sometimes you need to give up something else.
- How does it look to the eye? A teacher with four gaps in one day, or a class with three hours of math in one day, are things worth catching now.
When there is no solution
Sometimes there is no timetable that meets all the hard constraints. That is not a failure of the tool, it is information: two or more constraints contradict each other. Usually it looks like this: one teacher is the only one who teaches a subject, and she is not available at exactly the hours when the subject has to be. The solution is to decide on one of them, not to run it again and again.
In Teaching School: the "What was met and what was not" screen shows every approved constraint with "Met" or "Not met", and for each one that was not met, the reason. When there is no solution at all, the system says in plain words what conflicts and why. A separate check, which is not the solver itself, makes sure that no teacher is in two classes at the same hour.
Manual correction
Even with a solver, there are decisions that the timetabler knows and no software does. In Teaching School you choose a lesson and "Move", or drag it to another cell, and "Lock". After "Solve again" the locked lesson stays in its place, and the solver changes as little as possible in the rest of the timetable. "Mark what changed compared with version N" colours the cells that moved, so that you see exactly what changed and do not need to check everything again.
Step 7: sending to teachers, comments and publishing
Before the timetable is "official", it is worth having every teacher see their own timetable. Teachers catch things the timetabler did not know: a child's class on Wednesday, a long trip from another school, a mistake in a subject.
A few rules:
- Give a short deadline for comments, and write that after it the timetable is published.
- Gather all the comments in one place, and not in twenty WhatsApp conversations.
- Decide on every comment: accept, reject, or leave for next year. You cannot accept everything.
- Publish one clear version, with a date, so that three versions do not circulate in the corridor.
In Teaching School: "Send to teachers" sends each teacher an email with a personal link to their own timetable only and a place to write a comment, with no password. The comments are gathered in one table. "Solve again from the feedback" proposes a new version with a marking of what changed, and "Publish" turns a version into the active timetable. A principal or deputy can get view-only access. Every version is kept in the archive, and you can export it to Excel, with a sheet for each class and each teacher.
After publishing: substitutions and the monthly report
The published timetable is a starting point. From the next day, the daily work is absences and substitutions.
Substitutions
When a teacher is absent, you need to know which of her lessons are affected, and to find for each one a free and suitable substitute. In Teaching School a teacher reports an absence from the phone, or the timetabler reports on her behalf. The system finds all her lessons, and proposes a substitute for each lesson by fixed rules: free at that hour and meeting their own constraints, and then scoring by the same subject, qualification for the grade, the class's homeroom teacher, already in the school that day, and fewer substitution hours this month. The timetabler approves with a tap, and the substitute answers "yes" or "no" in an email link. A lesson with no substitute appears on the screen, and is not swallowed. Details: managing substitutions in a school.
The monthly report
Substitution hours affect pay, so they need to be documented exactly. In Teaching School, on the 1st of every month in the morning a report of the previous month's substitution hours is built: a summary for each teacher and a breakdown of every lesson (date, period, class, subject, in place of whom), in PDF and Excel. It is sent by email to the timetabler and saved. The total in the summary always equals the breakdown rows, and a report that was sent does not change: a correction is a new correcting report with a note. More on the report: substitution hours report.
Changes in the middle of the year
A teacher leaves, a class joins, or a subject changes. This is where a system that remembers the previous version has the advantage: you recalculate with a minimum of changes, and do not build everything from zero. See: changing a timetable in the middle of the year.
Common mistakes, and how to avoid them
Starting to place before the constraints were collected. The most expensive mistake. A constraint that arrives after the placement forces you to take apart part of the timetable. Set a deadline for constraints, and do not start before it.
Treating every preference as an obligation. When every teacher gets everything they asked for as a hard constraint, the timetable stops being solvable, or is solved only with bad compromises somewhere else. Ask each teacher what the one thing is that they truly cannot do, and mark only that as hard.
Forgetting shared resources. A sports hall, a lab, a computer room, a music room. If two classes need the hall at the same hour, it does not matter how good the timetable is on paper.
An unchecked hours sheet. A class with more hours than slots, or a teacher with more hours than a position, will show up as a problem only at the end. Add up rows and columns before the placement.
Sending teachers a non-final version without saying so. Teachers who receive a timetable think it is the timetable. Write explicitly "a proposal for comments until date X".
Correcting by hand without tracking. Small changes made directly in the table, without documenting, pile up. After a month nobody knows why a certain teacher teaches in the eighth period. Work with versions, and keep the previous one.
A schedule before the start of the year
There is no single schedule that suits every school, but the order is almost always the same:
- The teacher roster and the hours sheet - as soon as the positions and the allocation of hours are known.
- A constraint request to the teachers - with a clear deadline.
- Approving the constraints and a first placement.
- Sending to the teachers for comments - with a short deadline.
- A final version and publishing - before the first day, with room for last corrections.
Plan some room: a new teacher will always arrive in August, or a change in the allocation of hours at the last moment.
A checklist for the timetabler
- [ ] Teaching days, periods a day and breaks are defined
- [ ] The teacher roster is up to date, with subjects, grades and email
- [ ] The hours sheet is complete: hours for each class and subject, groupings defined
- [ ] The total hours for each class does not exceed the slots in the week
- [ ] Constraints were collected from all the teachers, and defined as hard or soft
- [ ] Every constraint was checked and approved
- [ ] A timetable was built, and what was kept and what was not was checked
- [ ] It was sent to the teachers, the comments were handled
- [ ] One version was published, with a date
How much Teaching School costs
One annual payment, by the number of active teachers, VAT included. Everything is included: the solver, the emails, the substitutions and the monthly report.
| Active teachers | Price per year |
|---|---|
| Up to 39 | NIS 2,400 |
| 40-89 | NIS 3,000 |
| 90 and above | NIS 3,900 |
The trial is free until you publish the first timetable. From the day of publishing you have 14 days to settle payment, by credit card or bank transfer, with a tax invoice. If you did not pay, the school moves to read-only: the published timetable stays open for viewing, printing and export, and no data is deleted. Registration as a supplier in the Ministry of Education's Gefen is in the process of registration, and until it is completed schools join directly.
Frequently asked questions
How long does it take to build a school timetable?
Most of the time goes on collecting data and constraints, not on the placement itself. Manual placement of a whole school is long work, and every change in the middle sends you back. With a constraint solver the calculation itself is the short part, and in a large school it runs in the background and an email arrives when the timetable is ready. Preparing the data and checking the result still take work.
What is the difference between a hard constraint and a soft constraint?
A hard constraint must hold, for example that a teacher is not in two classes at the same time or that a teacher is unavailable on a certain day. A soft constraint is a preference, for example that a homeroom teacher opens the day or few gaps for a teacher. A good timetable keeps all the hard ones and as many of the soft ones as possible.
What do you do when it is not possible to keep all the constraints?
You look for the group of constraints that collide and decide on one of them. In Teaching School the system says in plain words what conflicts and why, for example that a teacher is the only one who teaches a certain subject, so it is not possible to keep both her constraint and another one.
Does Teaching School replace Mashov?
No. It deals with the timetable, absences and substitutions. Teachers come in from an Excel or CSV file, the hours of existing classes from an Excel file, and the published timetable goes out to Excel.
How much does Teaching School cost?
One annual payment by the number of active teachers, VAT included: up to 39 teachers NIS 2,400, 40-89 teachers NIS 3,000, 90 and above NIS 3,900. It is free until you publish the first timetable, and from then you have 14 days to pay.
Written by the Teaching team · Updated on 14 October 2026. Prices include VAT and are correct for October 2026.
Start free: free until you publish the first timetable
Want to try it on your school? Open a school account, enter teachers and classes and press "Build a timetable". Free until you publish the first timetable.
Go to Teaching School

