Sivitas
Academic operations

AI scheduling

Produce a term timetable and lecturer allocation from your rules with a constraint solver, review the drafts, and publish.

SidebarClass & Teaching AssignmentSchedule (AI)
Super AdministratorDepartment AdministratorStudy Program AdministratorCourse Assignment

The AI scheduling module turns the course offering for a term into a weekly timetable, with rooms and lecturers assigned, and lets you review and publish the result. It appears in the sidebar when the module is enabled for your institution.

How it works

  1. You describe the rules once: which rooms each program may use, when lecturers are unavailable, how cohorts move through the week, where exams sit in the meeting sequence, how long it takes to travel between campuses.
  2. The rules compile into a model specification. A named person reviews and approves it.
  3. Generate sends the term's classes, rooms, lecturers and the approved rules to a constraint solver running on your server. It places everything at once, proves the result optimal or reports how far it is from optimal, and lists any class it could not place together with the rules that blocked it.
  4. You review the draft, fix or pin what you need, compare alternatives, and publish. Publishing writes the schedules and faculty assignments that the rest of Sivitas uses.

A full term of roughly 390 classes across 126 rooms and 140 lecturers solves in under a minute on a 16-core server. Large language models are used only for parsing documents, mapping free-text course interest to courses, and the assistant; the timetable itself is produced by the deterministic solver.

Before the first term

Work through the Masters pages once. Most of them can be cloned from a previous academic year the next time round.

Holidays calendar

Public and institutional holidays for the academic year. Click Sync to pull the dates parsed from the official academic calendar in Setup, then add or remove dates. No class is placed on a holiday.

Room pools

Per study program, tick the rooms its classes may use. A class without a pool falls back to any room of sufficient capacity. Cohort tags on rooms (see Facilities) give the solver a preference within the pool.

Scheduling constraints

The rule catalogue. Each rule has a key, a level (institution, program, course or lecturer), a value and a reason. Typical rules:

The constraint catalogue for an academic year, grouped by family, each rule with level, type, value and reason
The constraint catalogue for an academic year, grouped by family, each rule with level, type, value and reason

Use Clone from year to copy last year's rules into the new academic year, then adjust. Every change is versioned and, if enabled, the reason text is tidied by the language model on save.

Cohort schedule templates

A cohort is a group of students who take the same classes (a batch group). The template describes the cohort's weekly pattern: which days and blocks are available, protected windows, and non-standard patterns such as biweekly blocks. Auto generate proposes a template from the cohort's course list; Clone cohort copies one to another.

Cohort schedule templates per study program, with the weekly pattern each cohort follows
Cohort schedule templates per study program, with the weekly pattern each cohort follows

Teaching candidates

Which lecturers can teach which courses. Sources: the course's history, the lecturer's discipline and qualification, and free-text teaching interest submitted by lecturers. Map with AI turns the free text into course matches for you to confirm. Export and import the list as Excel, including pins (a lecturer who must teach a course) and coordinator templates. Toggle external lecturer course on university-wide courses taught from outside the faculty.

Teaching candidates per course: coordinator, pinned lecturers and candidate lecturers
Teaching candidates per course: coordinator, pinned lecturers and candidate lecturers

Fixed schedule

Classes that must sit in a specific slot and room, for example a joint class shared with another faculty. Enter them directly or import from Excel; the import shows a preview and applies only after you confirm.

Lecturer constraints

Per lecturer: unavailable days and windows, maximum sessions per day, preferred campus, discipline tags, and whether the lecturer is full-time, part-time or visiting. Lecturers cannot edit this page themselves; the program office enters what they submit. Bulk save applies a whole table at once.

Approve the model specification

Model Spec shows the current compiled specification: every active rule, how it is encoded, and a plain-language annotation. When constraints change, the spec shows a diff against the last approved version. Click Approve to authorize solving with this version. Generation is refused while the live constraints differ from the approved spec, so the timetable you get is always the one somebody signed off.

Model Spec page: rule groups with counts, enforcement badges and the open solver gate
Model Spec page: rule groups with counts, enforcement badges and the open solver gate

Generate a schedule

  1. Open Generate AI Schedule, choose the academic year and semester, and optionally give the run a scenario name.
  2. Choose Solve term for one semester or Generate for a year for both semesters together.
  3. Watch the progress log. The solver reports a heartbeat, the best solution so far and its distance from optimal. It stops when the result is proven within one percent of optimal, when it has not improved for five minutes, or at the outer time limit.
  4. The result is saved as a draft.

Review a draft

Drafts & Review lists drafts by term and scenario. Open one to see:

Drafts & Review: scenarios and drafts for a term with coverage, rows and status
Drafts & Review: scenarios and drafts for a term with coverage, rows and status
Draft review: the typical-week grid with fixed classes and exam sessions highlighted
Draft review: the typical-week grid with fixed classes and exam sessions highlighted

Group drafts into scenarios to compare, for example, a version with a stricter daily cap against one without. Delete drafts you no longer need; a published draft cannot be deleted.

Publish

Publish writes the draft's schedules and faculty assignments into the live term. Before writing, Sivitas runs a dry run and lists what would change, including any class that already has a protected or locked schedule. Confirm to apply. Use Force only when you intend to overwrite protected rows, and expect it to be recorded in the audit trail.

Term overview

After publishing, Term Overview shows pivot tables of the term: load per lecturer, allocation by function and status, sessions per room. Download the department review workbook (Excel) for circulation, and the typical-week and conflict workbooks for the scheduling office.

Term Overview: faculty allocation run with load per lecturer, caps and spread
Term Overview: faculty allocation run with load per lecturer, caps and spread

The scheduling assistant

A chat panel on the AI scheduling pages. Describe a change in plain language, for example "Professor X cannot teach on Wednesday mornings" or "keep all first-year classes on the main campus". The assistant proposes the exact constraint rows to add or change; review them and click Apply proposals. Applied changes go through the same versioning and model-spec approval as manual edits.

The Constraint Assistant docked beside the constraints page, with example prompts
The Constraint Assistant docked beside the constraints page, with example prompts

The assistant and the parsers use a language model and consume your institution's model quota. Batch runs such as re-mapping every teaching-interest submission should be started deliberately, not repeatedly.

Troubleshooting