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
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 | Book | Standard teaching period | [x] Yes |
| Assembly | Group | School-wide or grade assembly | [ ] No |
| Homeroom | Cap | Advisory or registration | [ ] No |
| Break | Break | Short break between classes | [ ] No |
| Lunch | Lunch | Lunch break | [ ] No |
| Study Hall | Notes | Supervised 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:
- 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 |
|---|---|
| [x] Has name | Template name is required |
| [x] Has operating days | At least one day selected |
| [x] Has days defined | Day structure for each operating day |
| [x] Has periods | At least one period per day |
| [x] All periods valid | No time conflicts within a day |
| [x] 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 | School | Whole school | School-wide master schedule |
| Grade Level | Grade | Grade/year | Schedule for all classes in a grade |
| Stream | Stream | Academic stream | Schedule for a specific stream |
| Class Division | Class | Single class | Schedule for one class section |
| Teacher | Teacher | Individual teacher | Teacher's personal timetable |
Schedule lifecycle
+---------+ +-----------+ +----------+ +----------+
| DRAFT | ---> | IN REVIEW | ---> | APPROVED | ---> | ACTIVE |
+---------+ +-----------+ +----------+ +----------+
| |
| |
v v
+---------+ +----------+
|ARCHIVED | <------------------------------------- |COMPLETED |
+---------+ +----------+
| Status | Description | Can edit? |
|---|---|---|
draft | Being created/edited | [x] 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 | [x] Yes |
| Day of week | Which day | [x] Yes |
| Subject class | What subject | [x] 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 | Leave | Annual leave, vacation |
| Personal | Personal | Personal day off |
| Medical | Medical | Sick leave, medical appointment |
| Training | Training | Professional development |
| Meeting | 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 | Error | Must resolve before publishing |
| Warning | Warning | Review recommended |
| Info | 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 | [x] On | No teacher double-booking |
| Prevent room clash | [x] On | No room double-booking |
| Prevent student clash | [x] On | No student overlap |
| Check availability | [x] On | Respect unavailability |
| Enforce room capacity | [x] On | Class size ≤ room capacity |
| Enforce teacher load | [x] On | Respect max teaching hours |
| Max consecutive periods | 4 | Maximum without break |
Soft constraints (preferred)
| Constraint | Default | Description |
|---|---|---|
| Minimize gaps | [x] On | Reduce free periods |
| Balance teacher loads | [x] On | Even distribution of hours |
| Balance class loads | [x] On | Even distribution of subjects |
| Optimize double periods | [x] On | Group where beneficial |
| Spread subjects | [x] On | Distribute across week |
| Respect preferences | [x] On | Honor teacher preferences |
| Prefer rooms | [ ] Off | Use preferred rooms |
| Prefer times | [x] 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 | | | | | |
| +---------+ +---------+ +---------+ +---------+ |
| | | | | |
| 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
- 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 | Queued | In queue for processing |
| Running | Running | Solver actively working |
| Succeeded | [x] | Completed successfully |
| Failed | [ ] | Encountered errors |
| Cancelled | Cancelled | Cancelled by user |
| Timeout | ⏰ | Exceeded time limit |
Solver result types
| Result | Description | Action |
|---|---|---|
| Optimal | Mathematically best solution | [x] Deploy |
| Feasible | Valid but may not be optimal | [x] Review and deploy |
| Infeasible | No valid solution possible | Action: Relax constraints |
| Unbounded | No finite solution | Action: Add constraints |
| Unknown | Solver couldn't determine | Action: 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:
[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.