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.
Navigation path
Scheduling (segment: scheduling)
| Sub-section | Path | Description |
|---|---|---|
| Dashboard | scheduling | Overview and quick actions |
| Templates | scheduling/templates | Reusable schedule templates |
| Schedules | scheduling/schedules | Active and draft schedules |
| Periods | scheduling/periods | Period definitions |
| Timetable Grid | scheduling/timetable | Visual timetable view |
| Teacher Availability | scheduling/availability | Teacher unavailability management |
| Conflicts | scheduling/conflicts | Conflict detection and resolution |
| Optimization | scheduling/optimization | AI-powered schedule generation |
| Statistics | scheduling/stats | Analytics 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?
| Role | Responsibilities |
|---|---|
| Scheduling Coordinator | Create and maintain templates |
| School Administrator | Approve template changes |
| Academic Director | Define instructional requirements |
Template components
| Component | Description | Example |
|---|---|---|
| Operating days | Days when school operates | Monday - Friday |
| Session type | Full day, morning, or afternoon | Full day (single session) |
| Period duration | Standard lesson length | 45 minutes |
| Rotation cycle | Pattern repetition | Weekly, two-week, custom |
Session types explained
- Single Session
- Double Shift
- Boarding
Full day schedule
- One continuous school day
- Typical: 8:00 AM - 3:30 PM
- Best for: Traditional schools
Morning → Lunch → Afternoon → Dismissal
Two separate sessions
- Morning shift and afternoon shift
- Different student groups each shift
- Best for: High-capacity schools
Morning Shift: 7:00 AM - 12:00 PM
Afternoon Shift: 1:00 PM - 6:00 PM
Extended schedule
- Includes evening study periods
- Weekend activities optional
- Best for: Boarding schools
Day Classes → Prep → Evening Study → Lights Out
Creating a template
- Navigate to Scheduling → Templates
- Click Create Template
- Enter basic information:
- Template name (e.g., "Standard Academic Day")
- Template code (e.g., "STD-2024")
- Description
- Configure structure:
- Select operating days
- Set session type
- Define base period duration
- Build the day structure (see Period types below)
- Save as draft or activate immediately
Period types in templates
| Period type | Icon | Purpose | Instructional? |
|---|---|---|---|
| Regular | 📚 | Standard teaching period | ✅ Yes |
| Assembly | 👥 | School-wide or grade assembly | ❌ No |
| Homeroom | 🎓 | Advisory or registration | ❌ No |
| Break | ☕ | Short break between classes | ❌ No |
| Lunch | 🍽️ | Lunch break | ❌ No |
| Study Hall | 📝 | Supervised study period | ✅ Yes |
| Activity | ✨ | Clubs, 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:
- Copy from another day — Duplicate an existing day's periods
- Apply to all days — Copy one day's structure to all operating days
- Generate standard schedule — Auto-create periods based on timing settings
- Custom per day — Different structures for different days
Template validation
Before activating a template, the system validates:
| Check | Requirement |
|---|---|
| ✅ Has name | Template name is required |
| ✅ Has operating days | At least one day selected |
| ✅ Has days defined | Day structure for each operating day |
| ✅ Has periods | At least one period per day |
| ✅ All periods valid | No time conflicts within a day |
| ✅ No gaps | No unexplained gaps between periods |
Part 2: Periods
Periods are the time slots within a schedule where teaching and activities occur.
Period scope options
| Scope | Description | Use case |
|---|---|---|
| All days | Same period on every day | Standard periods |
| Specific day | Period only on one day | Assembly on Fridays |
| Rotation | Different days in a cycle | A/B week rotations |
Period duration presets
| Duration | Use case |
|---|---|
| 30 min | Primary school, short activities |
| 35-40 min | Elementary school |
| 45 min | Standard secondary period |
| 50-55 min | Extended secondary period |
| 60 min | Standard lesson hour |
| 75-90 min | Block 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
- Navigate to Scheduling → Schedules → [Schedule] → Periods
- Click Add Period
- Configure:
- Period number and name
- Start and end time (or duration)
- Day scope (all days or specific)
- Period type
- Transition times (optional)
- Save the period
Bulk period creation
For efficiency, create multiple periods at once:
- Select Generate from Template to clone template periods
- 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
| Type | Icon | Scope | Description |
|---|---|---|---|
| Master | 🏫 | Whole school | School-wide master schedule |
| Grade Level | 🎓 | Grade/year | Schedule for all classes in a grade |
| Stream | 📊 | Academic stream | Schedule for a specific stream |
| Class Division | 👥 | Single class | Schedule for one class section |
| Teacher | 👨🏫 | Individual teacher | Teacher's personal timetable |
Schedule lifecycle
┌─────────┐ ┌───────────┐ ┌──────────┐ ┌──────────┐
│ DRAFT │ ──→ │ IN REVIEW │ ──→ │ APPROVED │ ──→ │ ACTIVE │
└─────────┘ └───────────┘ └──────────┘ └──────────┘
│ │
│ │
▼ ▼
┌─────────┐ ┌──────────┐
│ARCHIVED │ ←──────────────────────────────────── │COMPLETED │
└─────────┘ └──────────┘
| Status | Description | Can edit? |
|---|---|---|
draft | Being created/edited | ✅ Yes |
in_review | Submitted for approval | ⚠️ Limited |
approved | Ready to activate | ❌ No |
active | Currently in use | ❌ No |
completed | Term/year ended | ❌ No |
archived | Historical record | ❌ No |
Creating a schedule with the wizard
The schedule wizard guides you through creation in 5 steps:
- Step 1: Basic Info
- Step 2: Schedule Settings
- Step 3: Scope
- Step 4: Advanced Options
- Step 5: Review
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
Selecting a template pre-fills timing settings and creates periods automatically.
Configure timing
- School day start and end times
- Period duration (if not from template)
- Total periods per day
- Break times (morning, lunch, afternoon)
- Operating days and half-days
Timing presets:
| Preset | Start | End | Periods |
|---|---|---|---|
| Half day | 8:00 AM | 12:00 PM | 4 |
| Standard | 8:00 AM | 3:00 PM | 6-7 |
| Extended | 7:30 AM | 4:00 PM | 8-9 |
Define who the schedule applies to
- Whole school — All students and classes
- Grade level — Specific grade/year
- Stream — Academic track (Science, Arts, etc.)
- Class division — Single class section
If multiple schedules apply, more specific scopes take precedence: Class > Stream > Grade > School
Configure constraints and rotation
Rotation settings:
- No rotation (same schedule daily)
- Weekly rotation
- Two-week (A/B week)
- Custom cycle
Constraints:
- Max consecutive periods for teachers
- Minimum break between classes
- Instructional minutes per week target
Verify and create
- Review all settings
- Check validation status
- Save as draft or submit for review
Validation checks:
- ✅ Required fields complete
- ✅ Timing is valid
- ✅ Scope is properly configured
- ✅ No date conflicts with existing schedules
Schedule review workflow
- Author creates schedule in draft
- Author submits for review
- Reviewer (coordinator/admin) reviews schedule
- Reviewer approves or requests revisions
- Administrator publishes the approved schedule
Part 4: Period assignments
Assignments link subjects, teachers, and rooms to specific periods in the schedule.
Assignment components
| Component | Description | Required? |
|---|---|---|
| Period | Time slot | ✅ Yes |
| Day of week | Which day | ✅ Yes |
| Subject class | What subject | ✅ Yes |
| Teacher | Who teaches | ⚠️ Recommended |
| Classroom | Where | ⚠️ Recommended |
Making assignments manually
- Open the schedule's timetable grid
- Click on an empty cell (period + day)
- In the assignment dialog:
- Select the subject/class
- Choose the teacher
- Assign a room
- Add notes (optional)
- Save the assignment
Double periods
For subjects needing extended time (labs, practicals):
- Assign the subject to consecutive periods
- The system detects and marks as "double period"
- 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
- Weekly View
- Class View
- Teacher View
- Room View
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
Single class timetable
Filter by specific class division to see:
- What subjects the class has
- When each lesson occurs
- Which teachers teach them
- Which rooms they use
Best for: Distributing to students/parents
Individual teacher schedule
Filter by teacher to see:
- Their teaching periods
- Free periods (gaps)
- Classes they teach
- Rooms they use
Best for: Teacher scheduling, workload review
Room utilization
Filter by room to see:
- When the room is occupied
- Which classes use it
- Which teachers use it
- Utilization percentage
Best for: Room management, finding free rooms
Grid cell information
Each cell in the timetable shows:
┌─────────────────────────┐
│ Mathematics │ ← Subject name
│ Mrs. Johnson │ ← Teacher
│ Room 101 │ ← Location
│ 🔴 │ ← Conflict indicator (if any)
└─────────────────────────┘
Navigating the grid
| Action | How |
|---|---|
| Change week | Use week navigation arrows |
| Filter view | Select class/teacher/room from dropdown |
| View cell details | Click on any cell |
| Edit assignment | Click cell → Edit in dialog |
| Clear assignment | Click cell → Remove assignment |
Part 6: Teacher availability
Track when teachers are unavailable for scheduling.
Unavailability types
| Type | Icon | Description |
|---|---|---|
| Leave | 💼 | Annual leave, vacation |
| Personal | 👤 | Personal day off |
| Medical | 🏥 | Sick leave, medical appointment |
| Training | 📚 | Professional development |
| Meeting | 💬 | Scheduled meeting |
| Other | ❔ | Other reasons |
Recording unavailability
- Navigate to Scheduling → Availability
- Click Add Unavailability
- Enter details:
- Select teacher
- Choose unavailability type
- Set start and end date/time
- Add reason (optional)
- 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
| Conflict | Severity | Description |
|---|---|---|
| Teacher double-booking | 🔴 Error | Teacher in two places at once |
| Room double-booking | 🔴 Error | Room assigned to multiple classes |
| Student overlap | 🔴 Error | Students required in multiple places |
| Capacity exceeded | 🔴 Error | More students than room capacity |
| Teacher unavailable | 🔴 Error | Teacher marked as unavailable |
| Resource conflict | 🟠 Warning | Resource overbooked |
| Time constraint | 🟠 Warning | Timing rule violated |
| Constraint violation | 🟠 Warning | Soft constraint not met |
Conflict severity levels
| Level | Icon | Action required |
|---|---|---|
| Error | 🔴 | Must resolve before publishing |
| Warning | 🟠 | Review recommended |
| Info | 🔵 | For your information |
Viewing conflicts
Access the conflicts panel:
- Open a schedule
- Click Validate or Check Conflicts
- Review the conflict list showing:
- Conflict type and severity
- Affected entities (teacher, room, class)
- Suggested resolution
- Click each conflict to navigate to the affected cell
Resolving conflicts
Teacher double-booking:
- Identify which assignment to move
- Find an alternative period for the subject
- Or assign a different teacher
Room double-booking:
- Move one class to a different room
- Or move one assignment to a different time
Capacity exceeded:
- Move class to a larger room
- 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)
| Constraint | Default | Description |
|---|---|---|
| Prevent teacher clash | ✅ On | No teacher double-booking |
| Prevent room clash | ✅ On | No room double-booking |
| Prevent student clash | ✅ On | No student overlap |
| Check availability | ✅ On | Respect unavailability |
| Enforce room capacity | ✅ On | Class size ≤ room capacity |
| Enforce teacher load | ✅ On | Respect max teaching hours |
| Max consecutive periods | 4 | Maximum without break |
Soft constraints (preferred)
| Constraint | Default | Description |
|---|---|---|
| Minimize gaps | ✅ On | Reduce free periods |
| Balance teacher loads | ✅ On | Even distribution of hours |
| Balance class loads | ✅ On | Even distribution of subjects |
| Optimize double periods | ✅ On | Group where beneficial |
| Spread subjects | ✅ On | Distribute across week |
| Respect preferences | ✅ On | Honor teacher preferences |
| Prefer rooms | ❌ Off | Use preferred rooms |
| Prefer times | ✅ On | Schedule at preferred times |
Configuring constraints
- Open schedule settings or optimization wizard
- Navigate to Constraints section
- Toggle hard constraints on/off (with caution)
- Configure soft constraint priorities
- 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
- 1. Schedule Selection
- 2. Constraints
- 3. Parameters
- 4. Pinned Assignments
- 5. Review & Generate
Choose what to optimize
- Select the schedule to generate
- Give the scenario a name
- Add description (optional)
Use descriptive names like "Term 1 - Minimize gaps" or "Science stream - Lab priority"
Configure rules
Hard constraints (clash prevention):
- ✅ Prevent teacher clashes
- ✅ Prevent room clashes
- ✅ Prevent student clashes
Hard constraints (availability):
- ✅ Check teacher availability
- ✅ Enforce room capacity
- ✅ Enforce teacher load limits
Soft constraints (optimization):
- ✅ Minimize gaps
- ✅ Balance loads
- ✅ Respect preferences
Tune the solver
| Parameter | Default | Range | Description |
|---|---|---|---|
| Max solve time | 300s | 30-3600s | Time limit |
| Workers | 4 | 1-16 | Parallel threads |
| Allow double periods | Yes | - | Group subjects |
| Early stop | No | - | Stop on first feasible |
Objective weights: Adjust importance of each optimization goal (0-1 scale)
Lock specific slots (optional)
Pin assignments that must not change:
- Required subject-time combinations
- Pre-booked rooms
- Teacher preferences
The solver will work around pinned assignments.
Start optimization
- Review all settings
- Estimate solving time
- Click Generate
- Monitor job progress
Job status tracking
| Status | Icon | Description |
|---|---|---|
| Pending | ⏳ | Created, waiting to start |
| Queued | 📋 | In queue for processing |
| Running | 🔄 | Solver actively working |
| Succeeded | ✅ | Completed successfully |
| Failed | ❌ | Encountered errors |
| Cancelled | 🚫 | Cancelled by user |
| Timeout | ⏰ | Exceeded time limit |
Solver result types
| Result | Description | Action |
|---|---|---|
| Optimal | Mathematically best solution | ✅ Deploy |
| Feasible | Valid but may not be optimal | ✅ Review and deploy |
| Infeasible | No valid solution possible | 🔧 Relax constraints |
| Unbounded | No finite solution | 🔧 Add constraints |
| Unknown | Solver couldn't determine | 🔄 Retry with more time |
Working with solutions
After generation completes:
- View solutions — Multiple solutions may be generated
- Compare solutions — Side-by-side metrics comparison
- Preview in grid — See the timetable visually
- Review quality metrics:
- Total assignments
- Conflict count
- Gap statistics
- Teacher load balance
- Room utilization
- Commit solution — Apply to the schedule
Solution comparison metrics
| Metric | Better when | Description |
|---|---|---|
| Total conflicts | Lower | Number of rule violations |
| Teacher gaps | Lower | Free periods between classes |
| Class gaps | Lower | Free periods in class schedule |
| Room moves | Lower | Class room changes per day |
| Teacher balance | Higher | Even load distribution score |
| Double periods | Depends | Count of consecutive periods |
| Utilization % | Higher | Room usage percentage |
Part 10: Schedule publication
Once validated and approved, publish the schedule to make it active.
Publication workflow
- Validate — Run conflict check
- Review — Address any warnings
- Approve — Get necessary approvals
- Publish — Activate the schedule
- Notify — Inform stakeholders
Publishing a schedule
- Open the approved schedule
- Click Publish
- Add publish notes (optional)
- Confirm effective date
- 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:
- Create new version — Clone and edit
- Emergency override — With admin approval
- Temporary adjustment — For specific dates
Part 11: Statistics and analytics
Schedule statistics
| Metric | Description |
|---|---|
| Total schedules | All schedules in system |
| Active schedules | Currently in use |
| Draft schedules | Work in progress |
| Published schedules | Made available |
| By type breakdown | Master, grade, stream, class |
| By status breakdown | Draft, active, archived |
Teacher load statistics
| Metric | Description |
|---|---|
| Periods per week | Teaching periods |
| Instructional minutes | Total teaching time |
| Periods per day | Daily breakdown |
| Subject distribution | Subjects taught |
| Class distribution | Classes assigned |
Room utilization statistics
| Metric | Description |
|---|---|
| Total slots | Available period-room combinations |
| Booked slots | Assigned slots |
| Utilization % | Booked / Total × 100 |
| Peak days | Highest utilization days |
| Peak periods | Busiest time slots |
Part 12: Rotation schedules
For schools using rotating timetables (A/B weeks, Day 1-6 cycles, etc.).
Rotation cycle types
| Type | Description | Example |
|---|---|---|
| None | Same schedule every day | Monday always the same |
| Weekly | Different each week | Week A / Week B |
| Two-week | Alternating pattern | 10-day cycle |
| Custom | User-defined cycle | Day 1 through Day 8 |
Setting up rotation
- Choose rotation cycle in template or schedule
- Set cycle length (number of days)
- Define periods for each rotation day
- 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
| Practice | Recommendation |
|---|---|
| Start simple | Begin with standard template, customize later |
| Standard durations | Use consistent period lengths |
| Adequate breaks | Include morning, lunch, afternoon breaks |
| Buffer time | Add transition minutes between periods |
| Naming convention | Use clear, descriptive names |
Schedule creation
| Practice | Recommendation |
|---|---|
| Use templates | Don't start from scratch |
| Plan hierarchy | Master → Grade → Class |
| Version control | Keep drafts, don't delete |
| Early validation | Check conflicts frequently |
| Stakeholder review | Get teacher input |
Optimization
| Practice | Recommendation |
|---|---|
| Pin critical assignments | Lock what must not change |
| Start with defaults | Use default constraints first |
| Allow adequate time | Don't set timeout too low |
| Compare solutions | Don't accept first result blindly |
| Iterate | Run multiple scenarios |
Conflict resolution
| Practice | Recommendation |
|---|---|
| Address errors first | Fix blocking issues |
| Document exceptions | Note why warnings are accepted |
| Verify resolution | Re-validate after changes |
| Prevent recurrence | Update constraints if needed |
Part 14: Permissions reference
Scheduling permissions
| Permission | Description | Typical roles |
|---|---|---|
scheduling.view | View schedules | All staff |
scheduling.create | Create schedules | Coordinator, Admin |
scheduling.edit | Modify schedules | Coordinator, Admin |
scheduling.delete | Delete schedules | Admin only |
scheduling.publish | Publish schedules | Coordinator, Admin |
scheduling.approve | Approve schedules | Director, Admin |
Template permissions
| Permission | Description | Typical roles |
|---|---|---|
templates.view | View templates | Coordinator, Admin |
templates.create | Create templates | Coordinator, Admin |
templates.edit | Modify templates | Coordinator, Admin |
templates.delete | Delete templates | Admin only |
Optimization permissions
| Permission | Description | Typical roles |
|---|---|---|
optimization.view | View jobs and solutions | Coordinator, Admin |
optimization.generate | Run optimization | Coordinator, Admin |
optimization.commit | Commit solutions | Coordinator, Admin |
optimization.cancel | Cancel running jobs | Coordinator, Admin |
Part 15: Troubleshooting
Common issues
- Persistent Conflicts
- Optimization Fails
- Slow Performance
- Changes Not Showing
Conflicts won't resolve
Possible causes:
- Insufficient rooms for class sizes
- Not enough teachers for required subjects
- Overlapping scope schedules
Solutions:
- Review room capacities and class sizes
- Check teacher availability and loads
- Verify schedule scope priorities
- Consider adding resources (rooms, teachers)
Solver returns infeasible
Possible causes:
- Over-constrained problem
- Insufficient time slots
- Too many pinned assignments
Solutions:
- Relax some soft constraints
- Remove non-essential pinned assignments
- Add more periods or operating days
- Reduce hard constraint strictness
Grid loads slowly
Possible causes:
- Large number of periods
- Many concurrent users
- Complex schedule structure
Solutions:
- Use filters to reduce data
- Avoid loading multiple views simultaneously
- Clear browser cache
- Try during off-peak hours
Updates not reflected
Possible causes:
- Browser caching
- Concurrent edits
- Save not completed
Solutions:
- Refresh the page
- Check save confirmation
- Verify you're on correct schedule
- Check for concurrent edit warnings
Getting help
- Check validation messages — The system explains what's wrong
- Review conflict details — Click conflicts for resolution suggestions
- Consult audit log — See who changed what and when
- 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.