Skip to main content
Version: Current

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​


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?
RegularBookStandard teaching period[x] Yes
AssemblyGroupSchool-wide or grade assembly[ ] No
HomeroomCapAdvisory or registration[ ] No
BreakBreakShort break between classes[ ] No
LunchLunchLunch break[ ] No
Study HallNotesSupervised study period[x] Yes
Activity✨Clubs, sports, extracurricular[ ] No
Flexible⏱️Variable use period[x] 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
[x] Has nameTemplate name is required
[x] Has operating daysAt least one day selected
[x] Has days definedDay structure for each operating day
[x] Has periodsAt least one period per day
[x] All periods validNo time conflicts within a day
[x] 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
MasterSchoolWhole schoolSchool-wide master schedule
Grade LevelGradeGrade/yearSchedule for all classes in a grade
StreamStreamAcademic streamSchedule for a specific stream
Class DivisionClassSingle classSchedule for one class section
TeacherTeacherIndividual teacherTeacher's personal timetable

Schedule lifecycle​

+---------+     +-----------+     +----------+     +----------+
| DRAFT | ---> | IN REVIEW | ---> | APPROVED | ---> | ACTIVE |
+---------+ +-----------+ +----------+ +----------+
| |
| |
v v
+---------+ +----------+
|ARCHIVED | <------------------------------------- |COMPLETED |
+---------+ +----------+
StatusDescriptionCan edit?
draftBeing created/edited[x] 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[x] Yes
Day of weekWhich day[x] Yes
Subject classWhat subject[x] 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
LeaveLeaveAnnual leave, vacation
PersonalPersonalPersonal day off
MedicalMedicalSick leave, medical appointment
TrainingTrainingProfessional development
MeetingMeetingScheduled meeting
Other❔Other 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-bookingErrorTeacher in two places at once
Room double-bookingErrorRoom assigned to multiple classes
Student overlapErrorStudents required in multiple places
Capacity exceededErrorMore students than room capacity
Teacher unavailableErrorTeacher marked as unavailable
Resource conflictWarningResource overbooked
Time constraintWarningTiming rule violated
Constraint violationWarningSoft constraint not met

Conflict severity levels​

LevelIconAction required
ErrorErrorMust resolve before publishing
WarningWarningReview recommended
InfoInfoFor 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[x] OnNo teacher double-booking
Prevent room clash[x] OnNo room double-booking
Prevent student clash[x] OnNo student overlap
Check availability[x] OnRespect unavailability
Enforce room capacity[x] OnClass size ≤ room capacity
Enforce teacher load[x] OnRespect max teaching hours
Max consecutive periods4Maximum without break

Soft constraints (preferred)​

ConstraintDefaultDescription
Minimize gaps[x] OnReduce free periods
Balance teacher loads[x] OnEven distribution of hours
Balance class loads[x] OnEven distribution of subjects
Optimize double periods[x] OnGroup where beneficial
Spread subjects[x] OnDistribute across week
Respect preferences[x] OnHonor teacher preferences
Prefer rooms[ ] OffUse preferred rooms
Prefer times[x] 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 | | | | | |
| +---------+ +---------+ +---------+ +---------+ |
| | | | | |
| v v v v |
| * 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
Pending⏳Created, waiting to start
QueuedQueuedIn queue for processing
RunningRunningSolver actively working
Succeeded[x]Completed successfully
Failed[ ]Encountered errors
CancelledCancelledCancelled by user
Timeout⏰Exceeded time limit

Solver result types​

ResultDescriptionAction
OptimalMathematically best solution[x] Deploy
FeasibleValid but may not be optimal[x] Review and deploy
InfeasibleNo valid solution possibleAction: Relax constraints
UnboundedNo finite solutionAction: Add constraints
UnknownSolver couldn't determineAction: 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:

[x] Reusable templates for consistent schedule structures

[x] Flexible period management with multiple period types

[x] Multi-level schedules from school-wide to individual classes

[x] Visual timetable grids with multiple view modes

[x] Automatic conflict detection and resolution guidance

[x] Teacher availability tracking integrated with scheduling

[x] AI-powered optimization for efficient timetable generation

[x] Review and approval workflow with audit trail

[x] Rotation support for complex scheduling needs

[x] Comprehensive analytics for workload and utilization

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