Skip to main content
Schoolyi
School librarian arranging books and planning cards in a bright library

Browse docs

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

RuleSource
Only working daysAcademic year day records for the session year
Inside the session windowSession start and end dates
Minimum gap between papers for one classminWorkingDaysBetweenPapers, default two
No overlap, and at least 30 minutes between two papers for one classPapers already placed in this run plus existing session papers
Board-grade handlingGrades 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.