Skip to main content
Version: Next

Timetable & Scheduling

The Timetable module provides comprehensive schedule management for your school. From creating reusable templates and defining periods through building schedules, detecting conflicts, and optimizing with AI-powered solvers, this module ensures efficient, conflict-free scheduling that maximizes learning time and resource utilization.


Scheduling (segment: scheduling)

Sub-sectionPathDescription
DashboardschedulingOverview and quick actions
Templatesscheduling/templatesReusable schedule templates
Schedulesscheduling/schedulesActive and draft schedules
Periodsscheduling/periodsPeriod definitions
Timetable Gridscheduling/timetableVisual timetable view
Teacher Availabilityscheduling/availabilityTeacher unavailability management
Conflictsscheduling/conflictsConflict detection and resolution
Optimizationscheduling/optimizationAI-powered schedule generation
Statisticsscheduling/statsAnalytics and reporting

Scheduling architecture

┌─────────────────────────────────────────────────────────────────────────────┐
│ Scheduling Management System │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ SCHEDULE BUILDING FLOW │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ TEMPLATE │ → │ SCHEDULE │ → │ PERIODS │ → │ASSIGNMENTS│ │ │
│ │ │(Reusable)│ │ (Draft) │ │ (Slots) │ │ (Lessons) │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │
│ │ │ │ │ │
│ │ │ ┌──────────────────────────────┘ │ │
│ │ │ │ │ │
│ │ │ ▼ │ │
│ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ └──────→ │VALIDATION│ → │APPROVAL │ → │PUBLISHED │ │ │
│ │ (Reuse) │(Conflicts)│ │ (Review) │ │ (Active) │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ │ │
│ │ │ │ │ │
│ └───────────────────────┼──────────────────────────────┼──────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────────────────────────┐ ┌──────────────────────────────────┐ │
│ │ CONFLICT DETECTION │ │ TIMETABLE VIEWS │ │
│ │ • Teacher double-booking │ │ • Weekly view │ │
│ │ • Room double-booking │ │ • Class view │ │
│ │ • Student overlap │ │ • Teacher view │ │
│ │ • Capacity exceeded │ │ • Room view │ │
│ └──────────────────────────────────┘ └──────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ AI OPTIMIZATION ENGINE │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │Hard Rules│ │Soft Rules│ │Objectives│ │ Solver │ │ │
│ │ │(Required)│ │(Preferred)│ │(Weights) │ │(OR-Tools)│ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

Part 1: Schedule templates

Templates are reusable blueprints that define the structure of a school day — periods, timings, and breaks. Create templates once and apply them to multiple schedules.

Who manages templates?

RoleResponsibilities
Scheduling CoordinatorCreate and maintain templates
School AdministratorApprove template changes
Academic DirectorDefine instructional requirements

Template components

ComponentDescriptionExample
Operating daysDays when school operatesMonday - Friday
Session typeFull day, morning, or afternoonFull day (single session)
Period durationStandard lesson length45 minutes
Rotation cyclePattern repetitionWeekly, two-week, custom

Session types explained

Full day schedule

  • One continuous school day
  • Typical: 8:00 AM - 3:30 PM
  • Best for: Traditional schools
Morning → Lunch → Afternoon → Dismissal

Creating a template

  1. Navigate to Scheduling → Templates
  2. Click Create Template
  3. Enter basic information:
    • Template name (e.g., "Standard Academic Day")
    • Template code (e.g., "STD-2024")
    • Description
  4. Configure structure:
    • Select operating days
    • Set session type
    • Define base period duration
  5. Build the day structure (see Period types below)
  6. Save as draft or activate immediately

Period types in templates

Period typeIconPurposeInstructional?
Regular📚Standard teaching period✅ Yes
Assembly👥School-wide or grade assembly❌ No
Homeroom🎓Advisory or registration❌ No
BreakShort break between classes❌ No
Lunch🍽️Lunch break❌ No
Study Hall📝Supervised study period✅ Yes
ActivityClubs, sports, extracurricular❌ No
Flexible⏱️Variable use period✅ Yes

Template structure example

┌─────────────────────────────────────────────────────────────────┐
│ Standard Academic Day Template │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 07:45 - 08:00 │ HOMEROOM │ Registration & announcements │
│ ───────────────────────────────────────────────────────────── │
│ 08:00 - 08:45 │ PERIOD 1 │ Regular instruction │
│ 08:45 - 09:30 │ PERIOD 2 │ Regular instruction │
│ ───────────────────────────────────────────────────────────── │
│ 09:30 - 09:45 │ BREAK │ Morning break │
│ ───────────────────────────────────────────────────────────── │
│ 09:45 - 10:30 │ PERIOD 3 │ Regular instruction │
│ 10:30 - 11:15 │ PERIOD 4 │ Regular instruction │
│ 11:15 - 12:00 │ PERIOD 5 │ Regular instruction │
│ ───────────────────────────────────────────────────────────── │
│ 12:00 - 12:45 │ LUNCH │ Lunch break │
│ ───────────────────────────────────────────────────────────── │
│ 12:45 - 13:30 │ PERIOD 6 │ Regular instruction │
│ 13:30 - 14:15 │ PERIOD 7 │ Regular instruction │
│ ───────────────────────────────────────────────────────────── │
│ 14:15 - 14:30 │ BREAK │ Afternoon break │
│ ───────────────────────────────────────────────────────────── │
│ 14:30 - 15:15 │ PERIOD 8 │ Regular instruction │
│ │
│ Operating Days: Mon, Tue, Wed, Thu, Fri │
│ Session Type: Single (Full Day) │
│ Base Period Duration: 45 minutes │
│ │
└─────────────────────────────────────────────────────────────────┘

Managing template days

Templates support day-specific configurations:

  1. Copy from another day — Duplicate an existing day's periods
  2. Apply to all days — Copy one day's structure to all operating days
  3. Generate standard schedule — Auto-create periods based on timing settings
  4. Custom per day — Different structures for different days

Template validation

Before activating a template, the system validates:

CheckRequirement
✅ Has nameTemplate name is required
✅ Has operating daysAt least one day selected
✅ Has days definedDay structure for each operating day
✅ Has periodsAt least one period per day
✅ All periods validNo time conflicts within a day
✅ No gapsNo unexplained gaps between periods

Part 2: Periods

Periods are the time slots within a schedule where teaching and activities occur.

Period scope options

ScopeDescriptionUse case
All daysSame period on every dayStandard periods
Specific dayPeriod only on one dayAssembly on Fridays
RotationDifferent days in a cycleA/B week rotations

Period duration presets

DurationUse case
30 minPrimary school, short activities
35-40 minElementary school
45 minStandard secondary period
50-55 minExtended secondary period
60 minStandard lesson hour
75-90 minBlock scheduling, labs, practicals

Transition times

Configure buffer time between periods:

  • Transition before — Time before the period starts (e.g., 3 min passing time)
  • Transition after — Time after the period ends (e.g., 2 min cleanup)

Creating periods manually

  1. Navigate to Scheduling → Schedules → [Schedule] → Periods
  2. Click Add Period
  3. Configure:
    • Period number and name
    • Start and end time (or duration)
    • Day scope (all days or specific)
    • Period type
    • Transition times (optional)
  4. Save the period

Bulk period creation

For efficiency, create multiple periods at once:

  1. Select Generate from Template to clone template periods
  2. Or use Quick Generate with:
    • Start time (e.g., 8:00 AM)
    • Number of periods
    • Period duration
    • Break after periods (e.g., after periods 2, 5)
    • Lunch after period (e.g., after period 5)

Part 3: Schedules

Schedules are the actual timetables applied to your school, grade levels, streams, or classes.

Schedule types

TypeIconScopeDescription
Master🏫Whole schoolSchool-wide master schedule
Grade Level🎓Grade/yearSchedule for all classes in a grade
Stream📊Academic streamSchedule for a specific stream
Class Division👥Single classSchedule for one class section
Teacher👨‍🏫Individual teacherTeacher's personal timetable

Schedule lifecycle

┌─────────┐     ┌───────────┐     ┌──────────┐     ┌──────────┐
│ DRAFT │ ──→ │ IN REVIEW │ ──→ │ APPROVED │ ──→ │ ACTIVE │
└─────────┘ └───────────┘ └──────────┘ └──────────┘
│ │
│ │
▼ ▼
┌─────────┐ ┌──────────┐
│ARCHIVED │ ←──────────────────────────────────── │COMPLETED │
└─────────┘ └──────────┘
StatusDescriptionCan edit?
draftBeing created/edited✅ Yes
in_reviewSubmitted for approval⚠️ Limited
approvedReady to activate❌ No
activeCurrently in use❌ No
completedTerm/year ended❌ No
archivedHistorical record❌ No

Creating a schedule with the wizard

The schedule wizard guides you through creation in 5 steps:

Enter schedule details

  • Schedule name (e.g., "Term 1 2024 - Grade 8")
  • Schedule code (auto-generated or custom)
  • Select a template (optional but recommended)
  • Link to academic year and term
Template Selection

Selecting a template pre-fills timing settings and creates periods automatically.

Schedule review workflow

  1. Author creates schedule in draft
  2. Author submits for review
  3. Reviewer (coordinator/admin) reviews schedule
  4. Reviewer approves or requests revisions
  5. Administrator publishes the approved schedule

Part 4: Period assignments

Assignments link subjects, teachers, and rooms to specific periods in the schedule.

Assignment components

ComponentDescriptionRequired?
PeriodTime slot✅ Yes
Day of weekWhich day✅ Yes
Subject classWhat subject✅ Yes
TeacherWho teaches⚠️ Recommended
ClassroomWhere⚠️ Recommended

Making assignments manually

  1. Open the schedule's timetable grid
  2. Click on an empty cell (period + day)
  3. In the assignment dialog:
    • Select the subject/class
    • Choose the teacher
    • Assign a room
    • Add notes (optional)
  4. Save the assignment

Double periods

For subjects needing extended time (labs, practicals):

  1. Assign the subject to consecutive periods
  2. The system detects and marks as "double period"
  3. Both periods show the linked subject

Parallel classes (split groups)

For practical subjects with split groups:

  • Multiple assignments can occupy the same period
  • Common for: Lab work, PE, electives
  • Each group has its own teacher and room

Part 5: Timetable grid views

The timetable grid provides visual representations of your schedule.

View modes

Full week at a glance

Shows all periods for all days in a grid format.

  • Rows: Periods (time slots)
  • Columns: Days of the week
  • Cells: Subject, teacher, room

Best for: Overall schedule review

Grid cell information

Each cell in the timetable shows:

┌─────────────────────────┐
│ Mathematics │ ← Subject name
│ Mrs. Johnson │ ← Teacher
│ Room 101 │ ← Location
│ 🔴 │ ← Conflict indicator (if any)
└─────────────────────────┘
ActionHow
Change weekUse week navigation arrows
Filter viewSelect class/teacher/room from dropdown
View cell detailsClick on any cell
Edit assignmentClick cell → Edit in dialog
Clear assignmentClick cell → Remove assignment

Part 6: Teacher availability

Track when teachers are unavailable for scheduling.

Unavailability types

TypeIconDescription
Leave💼Annual leave, vacation
Personal👤Personal day off
Medical🏥Sick leave, medical appointment
Training📚Professional development
Meeting💬Scheduled meeting
OtherOther reasons

Recording unavailability

  1. Navigate to Scheduling → Availability
  2. Click Add Unavailability
  3. Enter details:
    • Select teacher
    • Choose unavailability type
    • Set start and end date/time
    • Add reason (optional)
  4. Save the record

Unavailability calendar

View teacher availability in calendar format:

  • Color-coded by unavailability type
  • Filter by teacher or department
  • Export for planning purposes

Impact on scheduling

  • Unavailability is checked during manual assignment
  • Optimization engine respects unavailability windows
  • Conflicts are flagged if teacher is assigned during unavailable time

Part 7: Conflict detection

The system automatically detects scheduling conflicts.

Conflict types

ConflictSeverityDescription
Teacher double-booking🔴 ErrorTeacher in two places at once
Room double-booking🔴 ErrorRoom assigned to multiple classes
Student overlap🔴 ErrorStudents required in multiple places
Capacity exceeded🔴 ErrorMore students than room capacity
Teacher unavailable🔴 ErrorTeacher marked as unavailable
Resource conflict🟠 WarningResource overbooked
Time constraint🟠 WarningTiming rule violated
Constraint violation🟠 WarningSoft constraint not met

Conflict severity levels

LevelIconAction required
Error🔴Must resolve before publishing
Warning🟠Review recommended
Info🔵For your information

Viewing conflicts

Access the conflicts panel:

  1. Open a schedule
  2. Click Validate or Check Conflicts
  3. Review the conflict list showing:
    • Conflict type and severity
    • Affected entities (teacher, room, class)
    • Suggested resolution
  4. Click each conflict to navigate to the affected cell

Resolving conflicts

Teacher double-booking:

  1. Identify which assignment to move
  2. Find an alternative period for the subject
  3. Or assign a different teacher

Room double-booking:

  1. Move one class to a different room
  2. Or move one assignment to a different time

Capacity exceeded:

  1. Move class to a larger room
  2. Or split the class into sections

Part 8: Constraint rules

Constraints define the rules that must or should be followed when scheduling.

Hard constraints (required)

ConstraintDefaultDescription
Prevent teacher clash✅ OnNo teacher double-booking
Prevent room clash✅ OnNo room double-booking
Prevent student clash✅ OnNo student overlap
Check availability✅ OnRespect unavailability
Enforce room capacity✅ OnClass size ≤ room capacity
Enforce teacher load✅ OnRespect max teaching hours
Max consecutive periods4Maximum without break

Soft constraints (preferred)

ConstraintDefaultDescription
Minimize gaps✅ OnReduce free periods
Balance teacher loads✅ OnEven distribution of hours
Balance class loads✅ OnEven distribution of subjects
Optimize double periods✅ OnGroup where beneficial
Spread subjects✅ OnDistribute across week
Respect preferences✅ OnHonor teacher preferences
Prefer rooms❌ OffUse preferred rooms
Prefer times✅ OnSchedule at preferred times

Configuring constraints

  1. Open schedule settings or optimization wizard
  2. Navigate to Constraints section
  3. Toggle hard constraints on/off (with caution)
  4. Configure soft constraint priorities
  5. Set numeric values where applicable

Part 9: AI-powered optimization

The optimization engine automatically generates optimal timetables using constraint-based solving.

How optimization works

┌─────────────────────────────────────────────────────────────────┐
│ OPTIMIZATION WORKFLOW │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ INPUT │ → │ MODEL │ → │ SOLVER │ → │SOLUTIONS│ │
│ │ │ │BUILDING │ │ │ │ │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ • Schedule • Variables • OR-Tools • Multiple │
│ • Periods • Constraints • CP-SAT • Ranked │
│ • Teachers • Objectives • MIP • Scored │
│ • Rooms • Weights • Search • Optimal │
│ • Subjects │
│ │
└─────────────────────────────────────────────────────────────────┘

Generation wizard steps

Choose what to optimize

  • Select the schedule to generate
  • Give the scenario a name
  • Add description (optional)
Scenario Naming

Use descriptive names like "Term 1 - Minimize gaps" or "Science stream - Lab priority"

Job status tracking

StatusIconDescription
PendingCreated, waiting to start
Queued📋In queue for processing
Running🔄Solver actively working
SucceededCompleted successfully
FailedEncountered errors
Cancelled🚫Cancelled by user
TimeoutExceeded time limit

Solver result types

ResultDescriptionAction
OptimalMathematically best solution✅ Deploy
FeasibleValid but may not be optimal✅ Review and deploy
InfeasibleNo valid solution possible🔧 Relax constraints
UnboundedNo finite solution🔧 Add constraints
UnknownSolver couldn't determine🔄 Retry with more time

Working with solutions

After generation completes:

  1. View solutions — Multiple solutions may be generated
  2. Compare solutions — Side-by-side metrics comparison
  3. Preview in grid — See the timetable visually
  4. Review quality metrics:
    • Total assignments
    • Conflict count
    • Gap statistics
    • Teacher load balance
    • Room utilization
  5. Commit solution — Apply to the schedule

Solution comparison metrics

MetricBetter whenDescription
Total conflictsLowerNumber of rule violations
Teacher gapsLowerFree periods between classes
Class gapsLowerFree periods in class schedule
Room movesLowerClass room changes per day
Teacher balanceHigherEven load distribution score
Double periodsDependsCount of consecutive periods
Utilization %HigherRoom usage percentage

Part 10: Schedule publication

Once validated and approved, publish the schedule to make it active.

Publication workflow

  1. Validate — Run conflict check
  2. Review — Address any warnings
  3. Approve — Get necessary approvals
  4. Publish — Activate the schedule
  5. Notify — Inform stakeholders

Publishing a schedule

  1. Open the approved schedule
  2. Click Publish
  3. Add publish notes (optional)
  4. Confirm effective date
  5. Click Confirm Publication

Post-publication

After publishing:

  • Schedule becomes read-only
  • Appears in teacher/student portals
  • Previous active schedule is archived
  • Audit trail is created

Making changes after publication

To modify a published schedule:

  1. Create new version — Clone and edit
  2. Emergency override — With admin approval
  3. Temporary adjustment — For specific dates

Part 11: Statistics and analytics

Schedule statistics

MetricDescription
Total schedulesAll schedules in system
Active schedulesCurrently in use
Draft schedulesWork in progress
Published schedulesMade available
By type breakdownMaster, grade, stream, class
By status breakdownDraft, active, archived

Teacher load statistics

MetricDescription
Periods per weekTeaching periods
Instructional minutesTotal teaching time
Periods per dayDaily breakdown
Subject distributionSubjects taught
Class distributionClasses assigned

Room utilization statistics

MetricDescription
Total slotsAvailable period-room combinations
Booked slotsAssigned slots
Utilization %Booked / Total × 100
Peak daysHighest utilization days
Peak periodsBusiest time slots

Part 12: Rotation schedules

For schools using rotating timetables (A/B weeks, Day 1-6 cycles, etc.).

Rotation cycle types

TypeDescriptionExample
NoneSame schedule every dayMonday always the same
WeeklyDifferent each weekWeek A / Week B
Two-weekAlternating pattern10-day cycle
CustomUser-defined cycleDay 1 through Day 8

Setting up rotation

  1. Choose rotation cycle in template or schedule
  2. Set cycle length (number of days)
  3. Define periods for each rotation day
  4. System maps calendar dates to rotation days

Viewing rotation schedules

  • Current rotation day shown in dashboard
  • Week view shows rotation day labels
  • Date picker shows which rotation day applies

Part 13: Best practices

Template design

PracticeRecommendation
Start simpleBegin with standard template, customize later
Standard durationsUse consistent period lengths
Adequate breaksInclude morning, lunch, afternoon breaks
Buffer timeAdd transition minutes between periods
Naming conventionUse clear, descriptive names

Schedule creation

PracticeRecommendation
Use templatesDon't start from scratch
Plan hierarchyMaster → Grade → Class
Version controlKeep drafts, don't delete
Early validationCheck conflicts frequently
Stakeholder reviewGet teacher input

Optimization

PracticeRecommendation
Pin critical assignmentsLock what must not change
Start with defaultsUse default constraints first
Allow adequate timeDon't set timeout too low
Compare solutionsDon't accept first result blindly
IterateRun multiple scenarios

Conflict resolution

PracticeRecommendation
Address errors firstFix blocking issues
Document exceptionsNote why warnings are accepted
Verify resolutionRe-validate after changes
Prevent recurrenceUpdate constraints if needed

Part 14: Permissions reference

Scheduling permissions

PermissionDescriptionTypical roles
scheduling.viewView schedulesAll staff
scheduling.createCreate schedulesCoordinator, Admin
scheduling.editModify schedulesCoordinator, Admin
scheduling.deleteDelete schedulesAdmin only
scheduling.publishPublish schedulesCoordinator, Admin
scheduling.approveApprove schedulesDirector, Admin

Template permissions

PermissionDescriptionTypical roles
templates.viewView templatesCoordinator, Admin
templates.createCreate templatesCoordinator, Admin
templates.editModify templatesCoordinator, Admin
templates.deleteDelete templatesAdmin only

Optimization permissions

PermissionDescriptionTypical roles
optimization.viewView jobs and solutionsCoordinator, Admin
optimization.generateRun optimizationCoordinator, Admin
optimization.commitCommit solutionsCoordinator, Admin
optimization.cancelCancel running jobsCoordinator, Admin

Part 15: Troubleshooting

Common issues

Conflicts won't resolve

Possible causes:

  • Insufficient rooms for class sizes
  • Not enough teachers for required subjects
  • Overlapping scope schedules

Solutions:

  1. Review room capacities and class sizes
  2. Check teacher availability and loads
  3. Verify schedule scope priorities
  4. Consider adding resources (rooms, teachers)

Getting help

  1. Check validation messages — The system explains what's wrong
  2. Review conflict details — Click conflicts for resolution suggestions
  3. Consult audit log — See who changed what and when
  4. Contact support — For complex scheduling issues

Summary

The Timetable & Scheduling module provides:

Reusable templates for consistent schedule structures

Flexible period management with multiple period types

Multi-level schedules from school-wide to individual classes

Visual timetable grids with multiple view modes

Automatic conflict detection and resolution guidance

Teacher availability tracking integrated with scheduling

AI-powered optimization for efficient timetable generation

Review and approval workflow with audit trail

Rotation support for complex scheduling needs

Comprehensive analytics for workload and utilization

For additional assistance, contact your school administrator or the Makronexus support team.