Examinations
Exam scheduling
Place session papers on working days with a minimum gap per class, resolve the conflicts auto-placement reports, and release the timetable to families.
Examinations guide for day and boarding schools.
Last updated August 29, 2026
An exam session is a container: a name, an academic year, an optional term, a start and end date, and a set of papers, one per class and subject. Scheduling means giving each paper a start and end datetime. You can do that by hand paper by paper, or run auto-placement across the whole session and then repair what it could not solve.
Auto-placement is calendar-aware rather than clever. It collects the available dates in the session window from the academic year working days, groups papers by class, and for each paper walks candidate days from the earliest date allowed by the previous paper plus the class gap, trying hourly slots from 09:00 until the afternoon. Every candidate is run through the same validation as a manual edit, so nothing placed automatically could not have been typed in.
Prerequisites
- The session has an academic year, otherwise placement stops immediately with NO_ACADEMIC_YEAR
- The academic calendar is synced, since working days come from the year day records
- Papers exist for the classes and subjects being examined, each with a duration
- Venues are defined at /exam-venues if you want room allocation as part of the run
Rules auto-placement enforces
| Rule | Source |
|---|---|
| Only working days | Academic year day records for the session year |
| Inside the session window | Session start and end dates |
| Minimum gap between papers for one class | minWorkingDaysBetweenPapers, default two |
| No overlap, and at least 30 minutes between two papers for one class | Papers already placed in this run plus existing session papers |
| Board-grade handling | Grades treated as board grades get their own available-date rules |
Handoff
Dates on papers are what everything after scheduling depends on. Seating is generated for the session once the classes taking papers are settled, invigilators are assigned per paper, exam-day screens group by the date you placed, and hall tickets print the times. Move a paper after hall tickets have been downloaded and you are relying on families re-reading the portal, so treat the publish date as the point where the schedule stops moving.
Limits
- Candidate slots begin at 09:00 and step in 90-minute increments, stopping before 17:00; there is no evening or split-shift placement
- Placement does not consider invigilator availability, which is assigned separately per paper
- It optimises nothing. The first valid slot wins, so a hand-built schedule is still better for a tight session
Common questions
Quick answers in plain language.
Auto-placement returned NO_WORKING_DAYS. What does that mean?+
Every date between the session start and end is a holiday or weekend for that academic year, so there is nowhere to put a paper. Widen the session window or fix the calendar and re-sync before retrying.
What is the default gap between two papers for the same class?+
Two working days, held on the session as minWorkingDaysBetweenPapers. Weekends and holidays count towards the gap, so a Friday paper with a two-day gap can be followed by the next paper on the following Tuesday if Monday is a working day.
Why is a paper reported as NO_VALID_SLOT?+
No candidate day and time satisfied all the rules at once - calendar working day, session window, the class gap, no clash with another paper for that class, and venue availability. Place it manually, lengthen the session, or reduce the gap.
When do students and parents see the exam timetable?+
Only after the session publishDate has passed. Until then the schedule, venues, and hall tickets stay staff-only, which lets you finish seating without families reading a draft.
Related searches
School leaders and IT teams often search for: exam date planner, and publish exam dates parents.

