Hikma
Timetable

Constraints

Understand the rules the generator always keeps, and tune the preferences that make a timetable good — gaps, room stability, subject spacing, and more.

A constraint is a rule the generator weighs when it builds the timetable. There are two kinds, and understanding the difference is the key to getting the schedule you want.

Who this is for

Administrators tuning how the timetable generator behaves.

Hard rules vs. soft preferences

  • Hard rules are things the timetable must never break. The generator will not produce a schedule that violates one. Most hard rules come from reality (see Scheduling setup) and structure (no double-booking).
  • Soft preferences are things that make a timetable good rather than just valid — avoiding gaps, keeping a class in one room, spacing out hard subjects. The generator satisfies as many as it can, and you decide how much each one matters.

The generator always satisfies every hard rule first, then makes the soft preferences as happy as possible.

Rules the timetable always keeps

You don't configure these — they're always on, so an activated timetable is always sound:

  • No class, teacher, or room is ever in two places at once.
  • Lessons are never placed in a time you've marked a teacher or room unavailable.
  • A room is never used beyond its capacity, and a subject only uses rooms of the right type.
  • No lesson is placed over a break.
  • Allowed-room restrictions (teacher rooms, subject rooms) are respected.
  • Pinned lessons stay exactly where you placed them.

Preferences you can tune

Open a timetable group (Academic → Timetable → Groups → open the group), then use Actions → Solver policy. Preferences are grouped into tabs. For each one you can:

  • Turn it on or off.
  • Set how much it matters (its importance, or weight) — higher means the generator tries harder to satisfy it, even at the cost of lower-priority preferences.

Teachers

PreferenceWhat it does
Teacher gapsAvoids free periods between a teacher's lessons on the same day. You can set how many gaps are tolerated, school-wide or per teacher.
Teacher daily / weekly limitKeeps each teacher within their maximum hours per day and per week.
Minimum lessons per dayIf a teacher is in on a day, ensures they have at least a set number of lessons.
Minimum lessons per half-dayThe same, per morning or afternoon (needs the half-day divider).
Teacher room stabilityTries to keep a teacher in the same room across the day.

Classes

PreferenceWhat it does
Class gapsKeeps a class's day compact, avoiding free periods between lessons.
Class room stabilityTries to keep a class in its own room for most lessons, so students don't move around constantly.
Minimum lessons per day / half-dayAvoids a class having a near-empty day or half-day.

Subjects

PreferenceWhat it does
Subject incompatibilityKeeps two subjects apart — for example, not on the same day or in the same half-day.
Subject order (chains)Encourages a relationship between two subjects, such as one running right after the other, or both on the same day.
Subject forbidden timesKeeps a subject out of chosen time slots — for example, no PE in the first period of the day.

Lessons

PreferenceWhat it does
Lesson linksHonours the links you set between specific lessons — same slot, back to back, same day, or same half-day. See Lessons and assignments.

Setting importance well

  • Start from the defaults. They produce a sensible timetable for most schools. Only change what you specifically care about.
  • Don't set everything to maximum. Preferences compete — if everything is "most important", nothing is. Raise only the few that matter most to your school.
  • Be careful making a preference strict. Some preferences can be made into firm rules. If a strict preference conflicts with reality (availability, rooms), the generator may be unable to build any timetable — it will tell you when that happens.

Per-teacher overrides

A few preferences can be set per teacher as well as school-wide — for example one teacher who truly can't have gaps. The per-teacher setting wins for that teacher. Set these in Scheduling setup.

Common use cases

  • Compact days — raise Class gaps so students don't have idle periods.
  • Spread hard subjects — use Subject incompatibility to avoid two demanding subjects on the same day.
  • Lab after lecture — link the two lessons and keep the link as a strong preference.

On this page