Skip to main content

Timetable

Who this is for: directors · Where: Timetable in the sidebar.

What this page is for

Deciding when each lesson happens, and putting it in everyone's calendar.

It does not decide who teaches what — that is Teaching assignments, and the timetable takes it as given. Three things must be in place first:

  1. Rooms — optional, but lessons say where they happen.
  2. Timetable setup — the bell schedule is required, and teacher availability is what stops the timetable from being unworkable.
  3. Teaching assignments — every subject needs a teacher and a weekly hour count, or be marked as not taught.
The timetable is built by the app, not by AI

Same inputs and same seed, same result — every time. That is deliberate: a timetable that is nearly right is worse than none, and a director needs to be able to re-run a build and compare it with the last one.

The tabs

1. Setup

Choose what to generate: all classes, selected years, or selected classes.

A run only touches the classes you pick. Everything else keeps its timetable exactly as it is — but its teachers and rooms still count as busy, so a per-year run cannot double-book someone who also teaches elsewhere.

Below the selection is the readiness banner. It is green when every subject in scope has a teacher and weekly hours, and tells you how many lessons a week there are to place. When it is amber it lists each gap by class, subject and — for a split class — group.

It also warns if the week is simply too small: if the classes in scope need more lessons than there are periods in the week, no arrangement exists and it says so rather than letting you discover it after a failed run.

Two shifts

A school running schimbul I and schimbul II keeps one timetable per shift, over the same rooms and the same teachers. Pick the shift when you create the timetable; the switcher marks anything that is not the morning shift so you can tell them apart, and importing a file goes into whichever timetable you have open.

Deleting a timetable

Delete removes a draft and its generated week, after asking. Lessons already in teachers' and pupils' calendars are not touched, and your classes, teachers and matrix stay exactly as they are — only the generated week goes, and you would generate it again.

A published timetable cannot be deleted. Unpublish it first: deleting it outright would leave lessons in calendars with nothing behind them.

2. Generate

Press Generate. A full school takes a few seconds.

The seed decides which of the many valid arrangements you get. Change it to explore a different one; keep it to reproduce the same board exactly.

Keep pinned lessons preserves anything you pinned in the grid.

Afterwards you get how many lessons were placed, how long it took, and — if anything could not be placed — exactly what and why:

ReasonMeaning
No free period leftEvery feasible slot was taken by something else
Teacher at their weekly limitTheir availability cap is the blocker
No two consecutive periods freeA double period had nowhere to go
Ran out of timeThe build hit its time limit; try again or reduce scope
Nothing is ever dropped silently

If a lesson cannot be placed it appears in this list. A timetable that quietly omitted a class's lessons would not be discovered until a class turned up to an empty room.

3. Import an existing timetable

If you already have the year's timetable in Excel or a PDF, you do not have to retype it.

How it works. The file is read on your own server first — that step is free and nothing leaves it. Then a description of the file's layout is sent to be interpreted: which axis is the weekday, which is the period, which is the class, and what a cell contains. The timetable itself is never sent. Your own copy then applies that description to every cell.

That is why the cost is the same for a 40 KB file and a 4 MB one, and it is shown before anything is spent — typically a few thousand tokens for a whole school.

The steps.

  1. Upload an .xlsx, .xls or .pdf. You are told how many cells were read and what reading the layout will cost.
  2. Read the layout. If the file is genuinely ambiguous you get at most one multiple-choice question — answer it and it tries once more, never more than twice.
  3. Check the names. Every class, subject, teacher and room the file mentions is matched against your school. Anything unmatched appears once, with how many lessons depend on it, and a picker. Leave one unmatched to skip its lessons.
  4. Preview, then Import.

What it will not do.

  • It never creates a teaching assignment. A lesson can only be imported when the class and subject are already staffed in Teaching assignments — otherwise it is listed as rejected. Inventing the staffing would put a teacher in front of a class you never assigned them to.
  • A split class is reported rather than guessed: the file names a subject, not a group, so it cannot tell which group the lesson belongs to.
  • Two teachers with the same surname are not guessed between — you pick.
  • Cells it cannot place on a day and period are reported, never silently dropped.

Replace or add. By default an import is added to the draft. Tick Replace what is already in this timetable to clear it first.

A scanned PDF cannot be read

A scan is a picture of a timetable, with no text in it. Export the timetable to Excel and upload that — it takes half a minute and gives a much better result than any reading of a photograph would.

4. Grid

The board, readable three ways:

  • By class — what 9A does all week. The view parents and pupils recognise.
  • By teacher — where one teacher is, and in which room.
  • By room — what happens in room 204.

Cells show the subject, and depending on the view the teacher, class and room. A cell involved in a conflict is ringed in red; the list underneath names each one.

Editing (drafts only). Click an empty cell to add a lesson, or an existing one to change its lesson, room or weeks — then Save.

Drag a lesson to another cell to move it. While you drag, every cell you could drop into is outlined, the one under the pointer is highlighted and says Drop here, and the lesson you are holding fades so you can see what is underneath. On release you get a confirmation naming the lesson and where it landed — or the reason it could not go there.

As you change anything, the grid re-checks the whole week and shows what the edit would break, naming the class, subject, teacher and room involved. You can still Save anyway: the button turns amber, the cell keeps a warning marker, and the conflict stays in the list until you deal with it. Nothing is hidden from you, and nothing is decided for you.

Three conflicts you cannot save over

One class, one teacher and one room can each hold one lesson in a period — that is enforced by the database, not by advice. If your edit would double-book any of the three, the entry is marked blocks, the box turns red and the save button is disabled. Free the cell first, or choose another room. Everything else — the wrong kind of room, a class bigger than the room, hours off the plan, a teacher's stated preference — is advice you may knowingly override.

Pin keeps a lesson exactly where it is — same day, period and room — through the next regeneration. Everything unpinned may move. Use it for the handful of lessons that genuinely cannot shift; pinning most of the week leaves the generator nothing to solve with.

On a phone the grid becomes one day at a time rather than a shrunken table.

5. Publish

See Publishing.

Odd and even weeks

A lesson can run every week, odd weeks only or even weeks only — for a subject that alternates with another, or a teacher who changes rooms fortnightly.

Week 1 counts as odd, starting from the Monday of the timetable's first date.

Two lessons in the same period are fine if one is odd and the other even. An every-week lesson conflicts with both.

Conflicts

Conflicts (red) block publishing:

  • the class has two lessons at once
  • the teacher is in two places at once
  • two lessons in the same room
  • a group overlaps another subject of its own class
  • the teacher is unavailable, or over a limit they set
  • the wrong kind of room for the subject
  • the period is not in the bell schedule
  • it clashes with an event a teacher created

Warnings (amber) never block:

  • fewer or more lessons than the plan requires
  • too many lessons of one subject in a day
  • the class is bigger than the room
Why hour shortfalls are only a warning

A term loses days to holidays, and only you know which. Refusing to publish over "this class is two lessons short" would make the feature unusable in December.

Reading the list

Every entry names what is wrong, then which class, subject, teacher and room it happened to, then the day and period. A double booking names both sides, so you can see at a glance which of the two to move.

Fixing them automatically

Anything that a different room would solve — the wrong kind of room, two lessons in one room, a class too big for the room — carries a Move to … button, and the header offers Fix N automatically for all of them at once.

It only ever proposes a room that is genuinely free in that exact period and of the right kind, and it picks the smallest one that still fits so a class of twenty does not take the hall. If nothing suitable is free it offers nothing rather than guessing — a "fix" that creates a second conflict is worse than none.

What it will not fix

A teacher in two places, a class with two lessons at once, or hours that do not match the plan are decisions, not clerical errors. Those are left to you.

Groups are a special case

Two groups of the same subject in the same period is normal and allowed — that is what splitting a class is for. A group scheduled against a different subject of its own class is a conflict, because those pupils would have to be in two rooms at once.

Publishing

Publishing turns the weekly pattern into real lessons in every teacher's and pupil's calendar, for every matching date in the period, skipping holidays.

You always get a preview first:

New lessonscreated
Lessons movedalready exist and are being updated
Lessons removedno longer in the timetable and carried no work
Lessons kept but unlinkedcarried work, so they survive — see below
Existing lessons taken overearlier lessons that match, adopted rather than duplicated

What republishing will never do

You can edit and republish as often as you like. These rules always hold:

  • Past lessons are never touched. Not moved, not deleted, not re-created. What happened, happened.
  • A moved lesson keeps its identity. Move a lesson to another period and the same lesson moves — its topic, lesson plan, homework, exam and any competence points stay attached. It is never deleted and re-created.
  • A lesson that carries work is never deleted. If you remove a lesson from the timetable but a teacher has already put a topic, a plan or homework on it, it stays in the calendar marked as no longer part of the timetable. Only empty future lessons are removed.
  • Teachers' own events are never touched by publishing, unpublishing or republishing.
  • Publishing twice changes nothing the second time.

Unpublishing removes the timetable's future empty lessons, keeps the ones carrying work, and leaves the past alone. You can republish afterwards.

Editing needs unpublishing first

A published timetable cannot be regenerated or edited cell by cell — its lessons are already in people's calendars. Unpublish, change, republish.

Rules and limits

  • One published timetable per academic year and period at a time.
  • A bell schedule is required. Without it there are no periods to fill.
  • Every subject needs a teacher and weekly hours, or be marked not taught.
  • Conflicts block publishing; warnings do not.
  • Only directors create, generate, edit or publish a timetable.
  • Teachers cannot move their own lessons — see teacher calendar.

Troubleshooting

"Generate is greyed out." The readiness banner on Setup is amber, or the timetable is published. Fill the gaps it lists, or unpublish.

"It says no bell schedule." Create one in Timetable setup — the grid is built from its lesson times.

"Some lessons were not placed." The result names each one and why. The usual causes are a teacher whose limits leave too few slots, or a week too full for the hours demanded. Loosen the availability limits, or reduce weekly hours.

"The same seed gives the same imperfect result." That is intended. Change the seed for a different arrangement.

"I moved a cell and it refused." The move would have created a conflict; the message says which. Move the other lesson first, or pick a different period.

"A teacher says their lesson disappeared after I republished." It will not have been deleted if it carried any work — check for a lesson marked as no longer part of the timetable on the same date. If it was empty and in the future, it was removed because its slot is gone.

"Publishing is blocked." There are red conflicts. The Grid tab lists every one.