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 pre-generation check, described next.

The pre-generation check​

Before anything is placed, EduRol checks the whole setup and tells you everything it finds. Not a sample — if two hundred cells have no teacher, you are shown two hundred of them, grouped by kind so the list can be worked through, with a Download the list button for a spreadsheet you can hand to someone else.

Findings come in two kinds, and the difference is a promise:

What it means
Problems (red)Generation is refused. The result would be wrong, not merely untidy.
Things worth knowing (amber)Generation goes ahead. You confirm once that you have read them.

Open any group to see a plain explanation of what the check means and what to change, then every class, teacher or subject it applies to.

What is refused:

  • a subject a class studies with no teacher, or a teacher with no weekly hours
  • no bell schedule, or a bell schedule with no teaching days
  • no classes selected for the run
  • a class given more lessons than there are periods in its week
  • a teacher given more lessons than the week holds, more than the weekly maximum on their own availability, more than their days-and-daily-maximum allow, or more than the periods they are actually free for
  • the whole selection needing more lessons than the week can hold

What you are warned about:

  • a class with fewer lessons than there are teaching days — some days will have none at all, and no timetable can solve arithmetic
  • a class whose subjects are all unassigned or not taught, so its timetable would come out empty
  • a teacher who is almost fully booked, so their classes take whatever periods are left
  • a subject needing a kind of room the school does not have
  • a subject with more weekly lessons than its own per-day maximum allows
  • no rooms recorded at all
Why a teacher's load counts their whole week

A teacher's total includes the classes you left out of this run. They are still busy those periods, and ignoring that would produce per-year timetables that cannot be published together.

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.

The shape of a pupil's week​

A class's week is not "twenty-four lessons somewhere". Every class gets:

  • lessons on every teaching day — never a full Thursday and an empty Wednesday, as long as it has at least as many lessons as there are days
  • no free period between two lessons — pupils are never left waiting at school for a lesson later in the day
  • no more of one subject in a day than you allow — see How many lessons of a subject in one day below

All three are built in as the lessons are placed and then repaired afterwards, class by class, so they hold even when the week does not divide evenly. A class with twenty-four lessons over five days gets days of five, five, five, five and four.

A day may start later than the first period

A class whose Friday runs from the second period, with nothing missing inside it, has a normal school day — the pupils simply come in an hour later. That is not reported as a problem, and it is sometimes the only way to give a class a Friday at all when its teachers are taken for the first hour.

What is reported is a free period between two lessons.

How many lessons of a subject in one day​

Every teaching assignment carries a maximum per day, set alongside its weekly hours on Teaching assignments. It starts at 2, which is the shape real schools use: a double period is normal and useful, a third lesson of the same subject in one day is not.

The timetable treats it as a real limit, not a preference. Seven weekly hours of Romanian with a maximum of two are spread across at least four days — they are never stacked onto one.

The limit yields rather than lose a lesson

If a week is too tight to respect it — too few teaching days, or a teacher free for only a handful of hours — the timetable goes over the maximum instead of leaving the lesson unplaced, and tells you where on the Grid tab. A reported warning is better than a lesson that quietly does not exist.

When a day still has a hole

If every teacher who could take that period is already teaching another class, nothing can fill it. Those are listed on the Grid tab as amber warnings naming the class and the day, so you can move something yourself — not left for a pupil to discover.

Which room each lesson gets​

Rooms are handed out after the week's shape is settled, and they are chosen per subject, not per lesson. A class's five Romanian lessons get one room for the week — not a different room each time.

The order is:

  1. A room your school holds for that teacher at that hour — set on Rooms → Who has the room, when. This outranks everything else, because somebody wrote it down deliberately.
  2. The teacher's own cabinet, from Teacher cabinets.
  3. Any suitable room, keeping the subject wherever it already is.

Two things follow from this that are worth knowing:

  • Both halves of a double period are always in the same room. A class does not walk next door at the bell.
  • An ordinary lesson never takes the gym, a laboratory or a workshop while an ordinary classroom is free. Those rooms are saved for the subjects that require them and cannot be taught anywhere else.

A subject needs a second room only when its first is genuinely occupied at that hour — which is why the same teacher and subject sometimes appear in two different rooms across the week.

The smallest room that fits

Between equally suitable rooms, the timetable picks the smallest one that still holds the class, so the big rooms stay free for the big classes.

When you do not have enough of a special room​

Rooms are chosen after every lesson has a time, so the timetable also has to watch how many special rooms it is spending as it goes. If your school has three gyms it will not put four PE lessons in the same period, because the fourth class would have nowhere to go.

It counts the same way for laboratories and computer rooms. A rough guide: a kind of room is comfortable up to about half its capacity, and gets tight past two thirds. Three gyms across a five-day, seven-period week hold 105 lessons — if your classes need 74 of them, expect the timetable to work hard and some lessons to end up without a room.

It is a limit, not a refusal

If there is genuinely nowhere left, the lesson is still placed — with no room — and the Grid tab says so. A lesson missing from the timetable would be worse than one whose room you have to sort out yourself.

If you see this a lot, the answer is usually another room rather than another attempt: add it on the Rooms page and regenerate.

Exporting it​

Export produces a finished document: your school's name, city and logo, the term, the bell times beside each period, and every lesson as subject, teacher and room. A draft is stamped DRAFT across the top so a working copy is never mistaken for the published one.

Choose what goes in:

Whole schoolevery class
By gradeone or several grades — tick as many as you want
By classone or several individual classes

Then pick the format.

  • PDF is for printing and for the noticeboard. One class prints as a single landscape page, the week down the side and the periods across. Several classes print one page per grade, because a whole school on one sheet is unreadable.
  • Excel is for editing, and it can be imported back — the layout it writes is the one the import reads best. Exporting a whole school and importing the file again returns every lesson unchanged.

A file EduRol exported imports back perfectly​

Both formats carry an invisible copy of the timetable as ids. Upload one back and it is recognised on sight: no AI step, no tokens, and nothing to match by name — the classes, subjects, teachers and rooms are read straight back, even from the PDF.

That makes export → adjust → import a safe way to move a timetable between terms, or to hand it to a colleague to edit. A file from another school is refused rather than half-matched, because its ids are not yours.

Editing the lesson text in Excel does not change what is imported

The embedded copy wins. To change lessons, edit them in the grid — or import a file EduRol did not write, which goes through the normal reading step.

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.

What reads well

This is about files from outside EduRol — anything we exported is read exactly in either format, see above.

  • Excel keeps each lesson in one cell, so it reads accurately.
  • A PDF of one class per page reads well too. The table's own printed lines are used to find the cells, so a lesson written over three lines stays one lesson, a word the printer split across lines is put back together, and the class is taken from the page's own heading.
  • A PDF with many classes across many pages is the hard case. Expect to correct a share of it on the review screen. If you have the Excel, upload that instead — it will be exact.

A scanned PDF cannot be read at all: it is a picture, with no text in 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 read when the file says which room each group is in. Printed timetables write both groups in one cell — Limba franceză 401/200 — so that becomes two lessons, group 1 in room 401 and group 2 in room 200, each on its own teaching assignment and therefore its own teacher. Groups are taken in the order they are printed. If the cell names only the subject, it is reported instead of guessed: which group is meant simply is not in the file, and guessing puts a teacher in front of the wrong half of the class.
  • If the file lists more groups than you have staffed for that subject, the extra ones are rejected rather than merged into the group you do have.
  • 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.
  • If the layout it read puts the classes on the wrong axis, that is corrected automatically: the file is re-read against each possibility and whichever actually matches your real class list is kept. You are never asked to know which axis is which.

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.

When the subject is split, each group is its own entry in the lesson list — 9A · Limba franceză · Grupa 1 — and picking one names the group and its teacher under the picker. The teacher comes from Teaching assignments and is changed there, not here: that is the încadrare the whole school is built on, so a timetable must not be able to quietly reassign it. What you set here is the room, and each group needs its own.

Because both groups sit in the same period, a cell can hold more than one lesson. Clicking a lesson opens that lesson, and the editor lists every group in the cell across the top so you can move between them without closing it — set group 1's room, switch, set group 2's. Add another group puts a second lesson into a period that already has one, which is how you add the missing half of a split by hand.

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
  • the class has a free period in the middle of its day
  • the class has no lessons at all on a teaching day
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​

Splitting a class does not split the lesson. Both groups of a subject are one lesson taught to two halves at the same time, so the generator places them in the same day and period and gives each its own room. It never puts group 1 on Monday and group 2 on Thursday: the class would then be in two places for the rest of both periods, and no one would be told.

That also means a split subject is only schedulable where every group fits. If one group's teacher is unavailable in a period, the whole lesson moves. When no period works for all of them, the lessons are reported as unplaced — once for each group, so a shortfall on the second half of a class is never hidden.

Two groups of the same subject in the same period is therefore normal and allowed. 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.
  • Problems block generating; things worth knowing do not — you confirm them once.
  • Conflicts block publishing; warnings do not.
  • A class needs at least as many weekly lessons as there are teaching days to have a lesson every day. Below that, some days are empty by arithmetic.
  • Only directors create, generate, edit or publish a timetable.
  • Teachers cannot move their own lessons — see teacher calendar.

Troubleshooting​

"Generate is greyed out." The pre-generation check found problems, or the timetable is published. Work through the red list, or unpublish.

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

"A class has an empty day." Check the pre-generation check for that class. The usual cause is that it has fewer weekly lessons than the school has teaching days, which no arrangement can fix — give it more weekly hours if its pupils should come in every day.

"A class has a free period in the middle of the day." Every teacher who could take that period is teaching another class at the time. The Grid tab names the class and the day; move a lesson yourself, or loosen a teacher's availability so the solver has somewhere to put it.

"A class starts at the second period on one day." That is not a fault and is not reported as one. Nothing is missing inside the day — the pupils come in an hour later. It usually means the class's teachers were all taken for the first hour, and starting later was the only way to give the class that day at all.

"Three lessons of the same subject landed on one day." Check that assignment's maximum per day on Teaching assignments. If it is set to 3 or more, that is what it was told to do. If it is 2 and the timetable went over anyway, the week was too tight to respect it — the Grid tab says so, and the usual causes are too few teaching days or a teacher available for very few hours.

"A lesson has no room at all." Every room of the kind it needs was taken at that hour. Count what you have against what you need: a five-day, seven-period week gives each room 35 slots, so three gyms hold 105 lessons. If your classes need most of that, add another room on the Rooms page rather than regenerating and hoping.

"A lesson is in the sports hall and should not be." That should no longer happen while an ordinary classroom is free. If it does, check whether that room's kind on the Rooms page is set correctly — a gym recorded as a classroom is treated as one.

"There are hundreds of problems listed." Use Download the list on the check. It gives you a spreadsheet of every one, with the class, subject and teacher named, that you can split between people.

"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.