Data organization: subjects, teachers, classes, timetables

Omniscol distinguishes two levels of organization: a school repository carried by the Administration module (subjects, users, school years…), which describes your institution over the long term, and timetables that draw on its elements to build a consistent plan over a given period. Understanding this duality is the key to handling changes calmly (renaming a subject, updating a teacher, archiving a timetable) without breaking the history.

Overview: two levels, two logics

Timetable level — planning

School level — Administration module

serves as template

serves as template

contains

assigned subjects

assigned teachers

subject taught

class concerned

optional group

lesson teachers

Subjects

Teacher users

Classes

Groups
(optional)

Courses
= class subjects
(local copy, typed)

Timetable teachers
partial copy

Lessons
duration, class, optional group,
teachers, classroom, position

School level: a global repository with a long lifespan, managed in the Administration module. It contains what is true for the institution independently of any particular timetable — the calendar of school years, the subject catalog (subjects common to the country plus the school's custom ones), and the directory of users (with their roles).

Timetable level: a consistent plan over a period. Each timetable has its own list of teachers, classes, groups, subjects attached to classes, and lessons. These objects are not mere references to the school repository: they are local copies, which can be enriched without modifying the repository. Conversely, the school-level repository can evolve (subjects or teachers being deleted) without breaking past timetables.

The rest of this page details each type of link.

The school year: the time frame

The school year defines a start date → end date range and the list of holidays (see School year). It does not directly "contain" timetables: it is the timetables that unfold over weeks (weekly / cycle mode) or dates (calendar mode) belonging to a school year.

This allows several configurations:

  • A single timetable per school year (the standard case): the timetable covers all the working weeks of the year.
  • Several successive timetables within the same year: one timetable per term for example, each handing over to the next at the changeover dates.
  • Several timetables in parallel over the same period (feature included in Premium; on some Standard accounts it can be enabled under a suitable contractual arrangement), for example:
    • a timetable for the recurring core curriculum
    • a calendar timetable for masterclasses, merged when viewed.

See Multiple active timetables in parallel.

The school year therefore remains a frame — not a container. Changing its start and end dates or its holidays updates the calendar used by the timetables attached to it, without modifying their content.

Subjects: from the school catalog to a class's lessons

chosen subject

optional type

class concerned

assigned teachers

used to create

can be adjusted on

Subject catalog
e.g. Mathematics

Course types
e.g. Lecture, Tutorial, Lab

Class in the timetable
e.g. Grade 9 A

Timetable teachers
e.g. Ms Martin

Class subject (= course)
Mathematics [Tutorial]
number of hours, teachers,
constraints, specialized classroom

Lessons
duration, date/time slot,
optional group, classroom,
teacher(s)

Level 1 — The catalog in the Administration module

At school level, two origins coexist:

  • Common subjects: Omniscol's reference set for the configured country (official codes, standardized labels). This catalog is read-only for the school.
  • Custom subjects: what the school creates itself, managed from the Subjects screen. Each custom subject has a name, a (short) code, and optionally: a short name, a specific color, a parent subject, a family.

This catalog says nothing about which classes teach these subjects — it only says that they exist.

Subject families can also come from a shared per-country reference set, read-only, or from a custom reference set local to the school.

Level 2 — Assignment to a class (with or without a type)

When you assign a subject to a class in a timetable, a local copy of the subject is created in the class, enriched with planning-specific fields (target number of hours, pedagogical weight, incompatibilities, default teachers, classroom specialization…).

If you assign the subject with a course type (Lecture, Tutorial, Lab, Exam — see Types of course), each type creates a separate entry in the class:

Subject in the class Origin Type
Mathematics Mathematics none
Mathematics [Lecture] Mathematics Lecture
Mathematics [Tutorial] Mathematics Tutorial

This is intentional: each variant (Mathematics lecture, Mathematics tutorial) becomes a separate local copy, with its own number of hours, its own teachers and its own incompatibilities. The link with the catalog is not a hard dependency: the local copy keeps the subject's origin as long as the subject still exists in the catalog. If the subject is deleted from the catalog, the local copies in the timetables remain valid.

Level 3 — From course settings to lessons

In Omniscol, what is commonly called a course generally corresponds to a subject assigned to a class, possibly associated with a course type (Lecture, Tutorial, Lab…), then enriched with planning information: number of hours, teachers, groups, placement constraints, classrooms or resources.

This definition states what needs to be scheduled. Lessons are the occurrences actually placed in the timetable, on a given week or date.

Example: a class subject such as Mathematics [Tutorial] can define a number of hours, teachers, groups, placement constraints and classroom preferences. Lessons are then created from this definition. See Courses, lessons, course types.

Teachers: school repository → enriched timetable copy

enriched partial copy

User (Administration module)
teacher role
name · login · email · global availability

Assignment to a timetable

Teacher in the timetable
name (copied) · idnumber
service hours (copied, overridable)
timetable-specific availability · preferred classroom

Assigned lessons

The teacher at school level

At school level, a teacher is a user holding the teacher role (the same user can hold several roles — see Users and roles). Managed from the Teachers screen, this user record carries the durable identifying information: last name, first name, login, email, identification number, as well as the teacher's global availability (recurring) and reference service hours.

The teacher assigned to a timetable

When you assign this teacher to a timetable, Omniscol creates an enriched partial copy in the timetable. The copy carries over only a selection of fields from the school repository and adds planning-specific fields to them:

Field School level (repository) Timetable level (copy)
Identifier the user's identifier identical (implicit link)
Last name, first name, middle name source copied at assignment
Identification number source copied at assignment
Email, phone, login source not copied (remains only in the Administration module)
Reference service hours source copied, overridable per timetable
Preferred classroom not managed in the repository timetable-specific
Availability the user's "global availability" recurring mode: local copy, validated or relaxed; calendar mode: shared source, viewable and editable from Administration or from the timetables concerned

This duality matters: the same teacher can have different service hours depending on the scope being planned, or a different preferred classroom at a given time (for example because of a temporary disability).

For availability, the logic depends on the planning mode:

  • in recurring mode, the availability entered by the teacher goes through an acceptance phase by the administration. It can be adapted locally in the timetable, for example by turning a strict unavailability into an undesired time slot;
  • in calendar mode, the teacher's availability is treated as a single source of truth, in particular for external instructors. It can be viewed and edited from the user's record or from any calendar timetable the teacher is assigned to.

In both cases, some settings remain timetable-specific and can locally enrich this availability.

Virtual teachers

A variant: you can create a virtual teacher in a timetable — a position to be filled, with no real user behind it ("the future math teacher"). It has no counterpart at school level. At recruitment time, you can replace this virtual teacher with a real teacher user (see Assigning teachers to a timetable).

The local-copy principle, in summary

The same logic governs subjects in a class and teachers in a timetable: a local copy is created at assignment time, and it is this local copy that carries the timetable-specific fields.

Why this design choice:

  • Temporal independence. A timetable closed last year must not change when you rename a subject or a teacher this year. Local copies guarantee historical integrity: what was planned stays exactly as it was at the time.
  • Contextual enrichment. A teacher does not have the same availability or the same service hours depending on the scope being planned; a subject does not have the same weight or the same incompatibilities depending on the class teaching it. The local copy is the natural place to carry these variations.
  • Cleanup without breakage. Deleting or overhauling a subject at school level does not erase the timetables that used it — their local copies remain valid.

As a trade-off, school-side renames do not propagate silently everywhere. That is the subject of the next section.

Practical consequences: renames, deletions, history

When you modify an entity at school level, Omniscol applies a clear propagation rule:

Action at school level Past (closed) timetables Current / future timetables
Rename a custom subject (name, short code, code) Unchanged — history preserved Name propagated to the matching local copies
Change a custom subject's color Unchanged Color updated if the previous color had not been overridden locally
Rename a teacher (last name, first name) Unchanged Name propagated to the local copies
Change a teacher's email or phone No effect (not copied) No effect (not copied)
Change a teacher's global availability No effect Recurring mode: update indicator if the availability had already been accepted; calendar mode: the shared availability source is updated
Delete a custom subject Local copies preserved Local copies preserved; the subject only disappears from the catalog
Disable a user's teacher role Unchanged The copies in the timetables stay in place

The distinction between "past" and "current or future" is made against today's date: a published timetable whose last active week is before today is considered past and is no longer modified by renames.

When to propagate manually

Automatic propagation stays deliberately narrow: subject name, code and color; teacher name and identifier. The name and code of a locally copied subject cannot be edited in the timetable; only its color can be redefined locally. The other fields (incompatibilities, pedagogical weight, service hours, per-timetable availability…) are not synchronized, because they are by nature timetable-specific.

If a deeper change must be applied to several existing timetables (for example: revising a teacher's service hours on all active timetables, or adding a new subject incompatibility everywhere), you have to act timetable by timetable. For bulk operations, the fastest tool is the copy-paste import from a spreadsheet on the relevant screen of each timetable.

See also