Skip to main content
Timetable & Lessons holds each teacher’s weekly teaching schedule. The school first sets up the time grid each curriculum stage runs on (its periods and breaks), then builds a timetable for each teacher and fills it with lessons that tie a subject to a class stream and repeat each week. School leadership builds and maintains the timetables; teachers read their own weekly grid. A timetable belongs to a teacher and stays current for a fixed window of dates; once that window passes, the system rolls the teacher onto a fresh timetable on its own, so there is no start-of-term rebuild to do by hand.
Timetable & Lessons is an optional module. A school can turn it on or off under Settings. While it is off, the Timetables pages disappear from the panel and the timetable view embedded on teacher and class pages shows a locked card explaining the feature is switched off. The school day periods you set under Curriculum stay editable either way, because they belong to the curriculum stage rather than to this module.

Records you’ll work with

RecordWhat it is
TimetableA teacher’s weekly schedule, valid between a Valid From and a Valid To date. Each teacher has one current timetable plus any expired ones kept as history. It holds the teacher’s lessons.
LessonOne scheduled teaching slot inside a timetable: a subject taught to one class stream, with a start and end time and an optional weekly (or daily) repeat. A lesson shows on the weekly grid in the period its time falls in.
School day periodA named time slot for a curriculum stage, such as Period 1, Morning Break, or Lunch, with a start and end time. Periods are the rows of the weekly grid that lessons are laid onto. A period can be a teaching period or a break.

What you can do

Configure school days

Set the periods and breaks each curriculum stage runs on.

Build a timetable

Create a teacher’s timetable and fill its weekly grid with lessons.

Run lessons

Read the grid, repeat lessons weekly, and adjust a lesson when plans change.

Configure school days

Before a timetable grid can show anything, each curriculum stage needs its school day periods: the named time slots that become the rows of the grid. Periods are set per curriculum stage (for example, the periods for Lower Primary can differ from those for Senior School), and they are managed from the stage, not from the Timetable pages.

Add school day periods

You will need: the curriculum stage the periods belong to. Stages ship pre-seeded under Curriculum, so there is no setup before this step. Periods stay editable whether or not the Timetable module is enabled, because they belong to the curriculum stage.
To set the time grid a stage teaches on, add one period per time slot in the school day.
1

Open the curriculum stage

Go to Settings → Curriculum Stages, open the stage, and find the Periods section.
2

Add a period

Click New. Enter a Label (for example, Period 1, Morning Break, or Lunch), the Start time and End time in 24-hour format (for example, 08:20), and switch on Break period (non-teaching) if the slot is a break rather than a teaching period.
3

Save

Save. The period joins the stage’s list, which always stays ordered by start time. A new period cannot overlap one already on the stage; if its time range clashes with another, the save is rejected with a message naming the period it clashes with.
[Insert screenshot: Periods section on a Curriculum Stage view at /settings/curriculum-stages/ showing columns Label, Start, End, Duration (min), and Break, with the New action and rows for Period 1, Morning Break, and Lunch]

Edit or remove a period

On the stage’s Periods list, use Edit on a row to change its label, times, or break flag (the same overlap check applies), or Delete to remove it. A stage must always keep at least one teaching period, so the last teaching period cannot be deleted; break periods can be removed freely. Changing a period’s times reshapes the grid for every timetable that uses the stage.

Build a timetable

A timetable is one teacher’s weekly schedule for a date window. Each teacher is given a timetable automatically when they are onboarded (see Users & Identity), so in most cases you do not create one by hand. You then open the timetable and fill its weekly grid with lessons. Open Timetables in the sidebar (under Timetables), or go to /timetables.

Create a teacher’s timetable

You will need: the teacher’s record to exist. Add teachers under Users & Identity first. A new teacher already receives a timetable on onboarding, so create one here only when you need an extra date window for a teacher.
1

Open the form

Go to Timetables and click New timetable.
2

Pick the teacher and the window

Choose the Teacher, then set Valid From and Valid To. The Valid To date must fall after Valid From. These two dates are the window the timetable is current for.
3

Save

Click Create. The timetable is saved against the teacher, and the owning teacher is notified that a timetable is ready. Open it to start adding lessons.
[Insert screenshot: New timetable form at /timetables/create showing the Teacher selector and the Valid From and Valid To date pickers]

Add lessons to the grid

You will need: the curriculum stage to have school day periods (see Add school day periods), the subject, and the class stream the lesson is taught to. Subjects and streams are managed under Curriculum. Without periods, the grid has no rows to drop a lesson onto.
Lessons are added straight onto the weekly grid, one slot at a time. Click an empty slot in the day and period you want, and the lesson form opens pre-filled for that day and time.
1

Open the timetable

From Timetables, open the teacher’s timetable to see the weekly grid: school day periods down the left, weekdays across the top.
2

Click an empty slot

Click the empty slot for the day and period you want. The Add Lesson form opens with the day and the slot’s start and end times already filled in.
3

Fill in the lesson

Pick the Subject (the Lesson Title fills in from the subject name, and you can change it). Pick the Grade & Stream the lesson is taught to. Add an optional Description. Adjust the Start and End times if needed.
4

Set how it repeats

Under Recurrence, leave Recurring Lesson on for a slot that runs every week (the default), and choose how it repeats: Weekly on a chosen day, Daily, or Every Weekday (Mon-Fri). Set an Until date to stop the repeat early; left blank, it runs to the end of the timetable’s window. Switch Recurring Lesson off for a one-off lesson on a single date.
5

Save

Save. The lesson appears on the grid in its slot, and on every later week the repeat covers.
[Insert screenshot: Add Lesson modal opened from a grid slot showing Lesson Title, Description, Subject, Grade & Stream, the Schedule fieldset (Start, End), and the Recurrence fieldset (Recurring Lesson toggle, Repeat, On Day, Until)]

View a class timetable

The same weekly grid can be read from the class side as well as the teacher side. On a class stream’s page under Curriculum, the grid shows every lesson scheduled for that stream across teachers, so you can check a class’s full week in one place. From a teacher’s timetable you can also narrow the grid to a single grade and stream using the selector at the top.

Renew a timetable for a new term

You do not rebuild timetables at the start of a term. Each teacher’s timetable is current only between its Valid From and Valid To dates. Once that window passes, the system gives the teacher a fresh timetable on its own and notifies them, while the old one stays in place as history. To carry a teacher’s schedule into the new window, open the new timetable and add its lessons. There is no copy-forward action that clones the previous term’s lessons.

Run lessons

Once a timetable is built, day-to-day work is reading the grid and adjusting individual lessons when plans change.

Read the weekly grid

Open a teacher’s timetable from Timetables, or open a class stream to read its grid. Periods run down the left, weekdays across the top, and each lesson sits in the slot its start time falls in. A recurring lesson shows in its slot every week the repeat covers, up to the timetable’s Valid To date or the lesson’s own Until date, whichever comes first.

Change or cancel a lesson

To handle a substitution, a room change, or a cancelled lesson, edit or delete the lesson directly on the grid.
1

Open the lesson

On the grid, click the lesson you want to change.
2

Edit it, or delete it

Use Edit to change the subject, the class stream, the title, the times, or how it repeats. To substitute the teacher who delivers it, edit the lesson from the class-stream grid and pick a different Teacher, which moves the lesson onto that teacher’s current timetable. Use Delete to remove a lesson that is no longer running; confirm when prompted.
3

Save

Save. The change shows on the grid for the affected weeks straight away.
[Insert screenshot: A grid slot with a lesson selected, showing the Edit and Delete actions, and the Edit form with Subject, Grade & Stream, Schedule, and Recurrence fields]

Statuses and lifecycle

A timetable does not carry a status that staff move it through. Its state is read from its dates: a timetable shows a Status badge of Active while today falls between its Valid From and Valid To dates, and Expired once the Valid To date has passed. Nothing on the panel activates or closes a timetable; the badge follows the calendar. An expired timetable stays readable as history, and the teacher is rolled onto a fresh timetable automatically when their current one lapses (see Renew a timetable for a new term). Lessons and school day periods carry no status of their own.

How records relate

A few user-visible relationships are worth keeping in mind:
  • A timetable belongs to one teacher, and a teacher has one current timetable (the one whose date window contains today) plus any expired ones kept for reference.
  • A lesson belongs to one timetable, so it belongs to that timetable’s teacher, and it points at one subject and one class stream. The subject and stream come from Curriculum; the teacher comes from Users & Identity.
  • The rows of the weekly grid are the school day periods of the teacher’s (or the class stream’s) curriculum stage. Change a stage’s periods and every grid built on that stage reshapes to match.
  • A recurring lesson never runs past its timetable’s Valid To date, even if its Until date is later. The timetable’s window is the hard stop.
  • Every lesson is anchored to dates, so the academic year and term it falls in come from the calendar (see Academic Years & Terms).

Reports and analytics

The timetable prints as a PDF from three places. All three stream straight to your device.
ReportWhereFiltersOutput
Teacher timetableDownload PDF on a teacher’s timetable view page (/timetables/{id}), and Download Timetable on a teacher’s profile under Users & IdentityTimetable period (on the profile action)Landscape PDF of that teacher’s weekly grid, periods down the left and weekdays across the top
Class timetableDownload Timetable on a class stream’s view page under CurriculumTimetable periodLandscape PDF of one class stream’s weekly grid across all its teachers
Class timetable (from the list)Class Timetable header action on Settings → Grade Streams under CurriculumClass (required), Timetable period (required)The same class-stream PDF, chosen from the list rather than from one stream
The teacher-profile and class-stream download actions appear only while the Timetable module is enabled.

What guardians see

Guardians do not see the Timetable pages. The Timetables sidebar entry and every timetable page are hidden from the locked, read-only Guardian role, so a guardian never reaches the timetable list, a teacher’s grid, the Add Lesson form, or any edit or delete action. Guardians can still receive their child’s schedule as a document the school shares with them. The school produces a class timetable PDF from a class stream under Curriculum and a teacher timetable PDF from a teacher profile under Users & Identity, then sends or hands those PDFs to families. The guardian does not generate them and cannot change anything on a timetable.

FAQs and troubleshooting

Open the class stream’s grid under Curriculum, click the lesson, and Edit it. Change the Teacher to the replacement, which moves that lesson onto the replacement teacher’s current timetable. For a one-off cover rather than a permanent change, switch Recurring Lesson off on the substitute lesson so it runs on the single date only, and leave the original arrangement in place for the following weeks.
Nothing you have to do. A timetable is current only between its Valid From and Valid To dates and shows Expired once the Valid To date passes. The teacher is then rolled onto a fresh timetable automatically and notified, while the expired one stays readable as history. To carry the schedule forward, open the new timetable and add its lessons; there is no action that copies the old term’s lessons across.
A recurring lesson runs until the earlier of its own Until date and its timetable’s Valid To date. If a lesson disappears from a week you expected, check the lesson’s Until date, and check the timetable’s Valid To date, since the timetable window is a hard stop the lesson cannot run past.
The rows of the grid are the curriculum stage’s school day periods. If the grid is empty or a time has no slot, the stage has no matching period. Add the periods under Settings → Curriculum Stages (see Add school day periods), then return to the timetable.
A period cannot overlap another period on the same curriculum stage. If the save is rejected, its start and end times clash with an existing period (the message names which one). Adjust the times so the slots do not overlap, or edit the existing period first.
The Timetable pages are hidden from the Guardian role by design, so guardians never see timetables in the panel. To give a family a child’s schedule, download the class timetable PDF for the child’s stream under Curriculum, or the teacher timetable PDF under Users & Identity, and share it with them.
Under Settings → Curriculum Stages, on each stage’s Periods list. Periods belong to the curriculum stage, not to a single timetable, so every teacher and class on that stage shares the same grid rows. Editing a period’s times reshapes the grid for all of them, and the periods stay editable even when the Timetable module is switched off.