- Getting started (Articles 1–2)
- Setting up what is taught (Articles 3–6)
- Building the timetable (Articles 7–10)
- When it will not solve (Articles 11–12)
- Day-to-day running (Articles 13–14)
- Printing and reports (Article 15)
- Reference (Articles 16–17)
Article 1 — How timetabling works in MySchool
Audience: anyone new to the timetable module.
A timetable is built in three stages. Each one answers a different question, and each depends on the one before it.
| Stage | Question it answers | Where you work |
|---|---|---|
| Framework | What is each class taught, and how often? | Timetable Framework |
| Deployment | Which teacher takes each of those? | Deployment, or the Framework Manager |
| Timetable | When does each lesson happen? | Timetable |
The stages are deliberately separate. Deciding that 7 Faith gets five periods of Maths is a curriculum decision. Deciding that Mrs Brown teaches it is a staffing decision. Deciding it happens Tuesday period 3 is a scheduling decision, and it is the only one the computer is good at.
That is why the generator is fast and confident once the first two stages are right — and why, when a timetable will not solve, the answer is almost always in the framework or the deployment rather than in the generator.
The words we use
| Word | Meaning |
|---|---|
| Period | One slot in the day, e.g. period 3 |
| Lesson | One subject taught to one class, with how many times a week and how long each time |
| Requirement | A line in the framework: subject, times per week, length, division |
| Division | A way of splitting a class, e.g. Boys / Girls, or Set 1 / Set 2 / Set 3 |
| Cohort or block | Several lessons taught at the same time to different divisions of a class — an options block |
| Joint class | One lesson taught to more than one class at once |
| The desk | The panel of lessons waiting to be placed on the grid |
| Single / double | A lesson lasting one period / two consecutive periods |
Article 2 — Quick start: your first timetable
Audience: a timetabler starting a new academic year.
- Set the structure. Timetable → Timetable Settings. Set your school days, periods and breaks, and your bells. Everything downstream depends on this, so get it right before defining lessons.
- Build the framework. Timetable Framework. For each class, add its subject requirements: subject, times per week, lesson length, and any division. → Article 3
- Assign teachers. Either in the Framework Manager's teacher column, or in Deployment if heads of department assign their own staff. → Article 5
- Create the timetable. Timetable → new timetable → Infer lessons. This turns your framework and deployment into lessons on the desk.
- Generate. Open the Generation Center and press Start Generation. → Article 8
- Check and print. Fix anything unplaced (Article 11), then print (Article 15).
Tip. Do a Dry run before your first real generation. It tells you in a few seconds whether the timetable can be solved at all, and changes nothing.
Article 3 — Defining what each class is taught (Framework Manager)
Audience: curriculum lead or timetabler.
The framework is the list of what each class must be taught each week. Open Timetable Framework and pick a class from the list on the left.
Adding a requirement
Each row is one subject requirement:
- Subject — what is taught.
- Times per week — how many separate lessons.
-
Lesson length — how many periods each lesson runs for.
1is a single,2is a double. - Division / Group — Entire class unless only part of the class takes it.
- Joint Classes — other classes taught alongside this one.
The running total at the top compares what you have asked for against the number of teaching periods in the week. If it goes over, the timetable cannot possibly fit, and the generator will tell you the same thing later — so it is worth fixing here.
Sorting the list
Click any column heading to sort: click again to reverse, a third time to return to the original order. Useful for spotting a subject you have entered twice.
Copying to other classes
Copy Requirements to Other Classes copies the current class's requirements to any classes you choose — the fast way to set up a whole year group.
Note. Teachers are not copied. Each class keeps its own teacher assignments, because two classes doing the same subject usually have different teachers.
Article 4 — Divisions, cohorts and joint classes
Audience: anyone setting up option blocks or split classes.
These three ideas cause most framework confusion, so it is worth being precise.
Division
A division splits a class into groups that are taught separately at the same time. For example a Boys / Girls division for PE: both halves are taught in the same period, by different teachers, in different places.
Set your divisions in Divisions & Joint Classes, then choose one on the requirement row.
Cohort (options block)
When several subjects run at the same time for different groups of a class — Physics, Chemistry and Biology all in period 3 while the class splits three ways — that is a cohort, or options block. You create one by giving each subject the same division scheme.
The timetable treats the whole block as one event: all of it is placed together or none of it. That is deliberate; a half-placed options block would leave some students without a lesson.
Joint class
A joint class is one lesson taught to more than one class at once — two Year 9 classes taking Careers together in the hall. Add the other classes in the Joint Classes column.
The periods are consumed in every class involved, not just the one you are editing.
Which one do I need?
| Situation | Use |
|---|---|
| Half the class does PE while the other half does Music | Division |
| Students pick one of four options, all taught period 3 | Cohort (a division with several subjects) |
| Two whole classes taught together | Joint class |
Article 5 — Assigning teachers
Audience: timetabler or head of department.
A requirement is not schedulable until somebody is teaching it. There are two places to assign, and they write to the same place.
In the Framework Manager
Click the teacher cell on a requirement row and pick from the list. The picker shows each teacher's current load, so you can see who has room.
Assignments save immediately — there is no separate save for them.
In Deployment
Heads of department assign staff within their own subject areas. This is the same data seen from the other side.
Things that stop an assignment saving
- Deployments are locked. Once the master timetable is being built, deployments can be locked to stop them changing underneath it. Unlock in Define Timetable Structure.
- A brand-new requirement. Assigning a teacher to a row you have only just typed saves the framework first, automatically.
If an assignment does not stick, the message tells you why. If it says something unexpected, send it to support along with the class and subject.
Article 6 — Getting lessons into the timetable
Audience: timetabler.
Inferring the whole school
When you create a timetable, Infer lessons reads your framework and deployment and creates every lesson, ready to place. This is the normal way to start.
It also sets your periods, days and bells from the framework, so use it when starting a timetable, not to refresh one.
Inferring one class
If you change one class's framework after the timetable exists, you do not have to start again. Right-click that class's row in the grid and choose Infer Lessons for This Class.
- Only that class's lessons are replaced. Every other class is untouched.
- Its current lessons are replaced, not merged — including any you have split or reshaped by hand.
- If any of them are joint lessons, the classes sharing them are affected too. The confirmation tells you how many.
- New lessons land on the desk, ready to place.
Adding lessons by hand
In the lessons list (right-click a row → Lessons):
- New lesson — one lesson, with the class, teacher or subject already filled in from wherever you opened the list.
- Add many — a grid for adding several at once. Pick a class, fill in rows, press Add lessons. Choosing a division creates one lesson per group automatically.
Article 7 — Understanding the timetable screen
Audience: anyone using the timetable.
- The grid — days across the top, one row per class, teacher, subject or room depending on the view.
- The desk — lessons not yet placed. The timetable is finished when the desk is empty.
- Views — switch between class, teacher, subject and room views. It is the same timetable seen from different sides.
Placing lessons
Drag a lesson from the desk onto the grid. Legal slots highlight as you drag; the system will not let you create a clash.
Locking
A locked lesson is never moved by the generator. Use it for anything fixed — assembly, a shared facility, a part-time teacher's day.
- Right-click a lesson → Lock Lesson
- Right-click a row → Lock/Unlock Row
You no longer need to lock lessons to make the generator behave. That was a workaround for the old engine. Lock only what genuinely must not move.
Clearing
Right-click a class row for Evict All From Row (everything) or Evict All Singles (single-period lessons only, useful when tidying up).
Article 8 — Generating the timetable
Audience: timetabler.
Open the Generation Center.
Core solver
The Core solver is the default engine. It builds a model of the whole selection and solves it in one go, rather than placing lessons one at a time and repairing afterwards. In practice: if a valid timetable exists, it finds it, and usually in seconds.
Switch it off only if asked to by support. Doing so reveals Solve grade by grade and Keep trying, which belong to the older engine.
Choosing what to generate
Select classes before opening the Generation Center to generate only those. With nothing selected, everything unlocked is generated.
Shift other classes to make room
On by default. Lets the solver move unlocked lessons in classes outside your selection when that is what frees a slot.
- Locked lessons are never moved.
- Nothing is ever deleted.
- If it moves anything, the result says how many.
Turn it off when you want a selection generated strictly on its own.
How long it runs
The time budget comes from Engine Size:
| Engine Size | Budget |
|---|---|
| Regular | 1 minute |
| Large | 15 minutes |
| Huge | up to 3 hours |
This is a ceiling, not a target. The run stops as soon as the timetable is solved, or as soon as it stops finding better answers. A school that solves in four seconds finishes in four seconds even on Huge.
Tick Use a fixed time limit to set the seconds yourself.
Stopping early
Press cancel and the best result found so far is kept — you never lose the work. The message says whether it stopped because it was solved, stopped improving, ran out of time, or was cancelled.
Dry run
Dry run (changes nothing) solves in the background and reports the outcome without touching your timetable. Use it to check a change before committing to it.
Article 9 — What the generator will and will not do
Audience: timetablers wanting to trust the output.
It will never create a clash, break a rule you have set, move a locked lesson, or delete a lesson.
It will move unlocked lessons in other classes, if Shift other classes is on; place part of an options block if the whole block will not fit, telling you which parts are left; and leave lessons on the desk when there is genuinely nowhere legal for them.
It will not change your curriculum. It never splits a double into two singles, changes how many times a week a subject is taught, or reassigns a teacher. Those are your decisions — it will suggest them (Article 11) but never act on them.
Article 10 — Generator settings explained
Audience: timetabler tuning a difficult timetable.
Under Generator Constraints:
| Setting | What it means |
|---|---|
| Allow double subjects per day | Off: a class gets a subject at most once a day (subject to its weekly need) |
| Allow teacher same class twice per day | Off: a teacher meets a given class at most once a day |
| Allow consecutive lessons of the same subject | Whether the same subject may run back to back |
| Max lessons per day for a Class / Teacher | A daily ceiling |
| Allow splitting lessons in desperate mode | Whether the old engine may break a double apart as a last resort |
Generation Mode — Strict respects conditional time-off; Normal and Desperate progressively relax it. Start with Strict.
These are school-wide rules. If one subject needs an exception, set it on the lesson rather than loosening the rule for everyone.
Article 11 — When lessons will not place
Audience: timetabler with lessons stuck on the desk.
Because the solver is exhaustive, lessons left on the desk almost always mean the data cannot be scheduled — not that the computer gave up.
Press Why not placed? in the Generation Center. (It reads Packing advisor before a run, and does the same thing.)
What it tells you
The advisor leads with the most common real cause: how the lessons pack onto each teacher's schedule. For each teacher it shows free slots, periods still to place, how many long lessons are needed, and how many long runs are actually available — then, where a split would fix it, suggests exactly which lesson to split and into what.
Other findings:
| Finding | Meaning | Usual fix |
|---|---|---|
| Capacity | A class or teacher is asked for more periods than exist | Remove periods, or share the load |
| Packing | Enough free time, but not in long enough runs | Split a double |
| Teacher | The class has room, the teacher does not | Share the subject, or move their other lessons |
| Rules | Space exists but a rule blocks it | Allow a second occurrence that day, or move the earlier one |
| Time off | The lesson had no legal slot from the start | Check time-off and lesson length |
Capacity findings come first, because they are arithmetic: no arrangement can fit an over-subscribed class, and nothing else matters until it is fixed.
Acting on a suggestion
Where a split would help, press Split… — the length editor opens with the suggestion already filled in. Change it if you prefer a different shape.
Article 12 — Changing lesson length and splitting lessons
Audience: timetabler.
The commonest reason a lesson will not fit is shape: the grid has two single gaps and the desk has a double. Nothing is clashing; the piece does not fit the hole.
The system will not reshape your curriculum by itself, because splitting a double changes how a subject is taught. You decide.
Opening the editor
- Lessons list → the ↔ button on a row, or Adjust length / split in the footer
- Lesson editor → Split
- Placement advisor → Split…
Using it
The dialog shows the current shape — for example 3 × 2 — meaning three lessons of two periods, six periods a week. Change it to any combination:
3 × 2 → 2 × 2 + 2 × 1 (6 periods a week either way)
The total is shown as you type and turns green when it matches. Changing the total is allowed, but it changes your curriculum, and the dialog says so.
Cohort blocks
If the lesson is part of an options block, the dialog says so and lists every group. The change applies to all of them together — an options block whose parts have different lengths cannot be scheduled.
What happens when you apply
Current placements of the affected lessons are cleared first, including locked ones — a lock pins a span, and the span is what is changing. The lessons return to the desk with their new shape, ready to place.
Article 13 — Substitution planning
Audience: whoever organises daily cover.
Open the clock icon in the timetable toolbar.
Planning cover for an absent teacher
- Choose the day.
- Mark the absent teachers.
- The planner lists every lesson needing cover and suggests who should take it.
- Change any suggestion from the dropdown.
- Print cover sheet.
How suggestions are ranked
Teachers who are not offered at all: the absent teacher, anyone teaching that period, anyone marked unavailable, and anyone already covering that period.
Everyone else is ranked, with the reason shown next to each name:
- teaches this subject elsewhere — the strongest signal
- already teaches this class
- how many periods they have taught today
- how many covers they have already been given today
- whether this would be their fourth lesson in a row
The reasons are shown rather than hidden in a score, because you know things the timetable does not — who is on a trip, who covered twice last week. Change anything.
The availability chart
Availability chart prints a one-day sheet for the staff room: every teacher, every period, showing who is teaching, who is FREE, and who is unavailable. Most-free teachers appear first. Also available from the Print Center as Teacher Availability (one day).
Absences are not stored between sessions. The planner is for today's cover; it does not keep a record of who has covered what.
Article 14 — Managing classes, teachers, subjects and rooms
Audience: timetable administrator.
In the entity manager you can add and edit classes, teachers, subjects and rooms, and set time off — periods when someone or something is unavailable.
Click any column heading to sort — by name, short name, sessions or capacity. Sorting by Sessions is a quick way to spot an over- or under-loaded teacher before you generate.
Time off
Time off is a hard rule: nothing is scheduled into it, and the substitution planner will not offer that person for cover.
Use it for part-time staff, protected non-contact time, and rooms unavailable at certain times.
Article 15 — Printing and reports
Audience: anyone distributing timetables.
Open the printer icon. Choose a report, a page size, then Generate.
| Report | What it is |
|---|---|
| All Classes / Teachers / Subjects / Rooms | One page each |
| All Classes / Teachers (with subject totals) | The same, with a panel beside the grid listing each subject, who it is with, and its periods — plus total taught and free |
| Class / Teacher / Subject Summary | Everything on one grid, one row each, with a Total column so nobody counts by hand |
| Class / Teacher Master Timetable (wall chart) | The whole school in detail, printed across several sheets to trim and glue into one chart |
| Teacher Availability (one day) | Who is free, for cover planning |
About the wall chart
The master chart is printed across several sheets rather than shrunk onto one, so it stays readable. The name column repeats on every sheet, so the strips line up when you butt them together. The footer says which sheet is which.
Choose Ledger for fewer, wider sheets.
A note on subject totals
On a class report, the subject periods can add up to more than the total. That is correct: an options block is one period of the class's time running several subjects at once. The report footnotes it where it happens.
Article 16 — Frequently asked questions
"The generator says complete but the timetable looks empty." Reload the timetable and generate again. If it happens again, tell support — it means the grid was not initialised.
"It won't place five lessons and I can see empty slots." Empty is not the same as legal. Press Why not placed? — usually the teacher is busy in those slots, or the gaps are singles and the lesson is a double.
"Can I stop a long generation without losing it?" Yes. Cancel keeps the best result found.
"I changed one class's framework. Do I have to start over?" No. Right-click that class's row → Infer Lessons for This Class.
"Two classes show the same teacher and I only assigned one." Tell support and mention this article. It can happen in frameworks built by copying one class to another; there is a one-click repair.
"Why did my locked lesson move when I split it?" Splitting changes how long a lesson is, and a lock pins a specific span. The lesson returns to the desk to be placed again.
"Can the system split doubles automatically?" No, by design. It will suggest exactly which to split, but changing how a subject is taught is a curriculum decision.
Article 17 — Getting help
Audience: anyone raising a ticket.
Before raising a ticket, try:
- Dry run — does it report the timetable as solvable?
- Why not placed? — does it name a capacity or teacher problem?
- The relevant article above.
If you still need help, include:
- the school, academic year and term;
- what you were doing, and what you expected;
- the exact message shown on screen;
- how many lessons are unplaced, and for which classes;
- if you can, the browser console (F12 → Console) — several of our diagnostics write detail there that is not on screen.
That last one saves the most time: many messages carry a short reason on screen and the full detail in the console.
Comments
0 comments
Please sign in to leave a comment.