Timetable
The Timetable feature provides comprehensive schedule management for classes and teachers, including AI-powered automatic generation. This guide covers viewing, navigating, and understanding class schedules, teacher schedules, auto-generation, and handling conflicts.
Overview
The Timetable system enables you to:
- View class schedules in weekly or daily format
- Track teacher schedules across all assigned classes
- Auto-generate timetables using an intelligent scheduling algorithm
- Review and edit allocations from generated timetables before publishing
- Identify conflicts when teachers or rooms are double-booked
- Navigate schedules by date with an interactive calendar
- View period details including subject, teacher, and timing
Accessing Timetable
- Navigate to SIS (Student Information System) in the sidebar
- Click on Timetable
- You’ll see four main tabs:
- Class Schedule - View schedules by class
- Teacher Schedule - View schedules by teacher
- Auto Generate - Generate and manage timetable versions
- Conflicts - View scheduling conflicts
Note: Access is controlled by permissions under the
sis.timeTablesmodule.
Page Header
The timetable header displays:
| Element | Description |
|---|---|
| Title | ”Timetable” with module icon |
| Conflict Count | Number of scheduling conflicts (if any) |
| Create Schedule | Button to configure timetable settings |
| Import | Import schedules from external source |
| Export | Export current schedules |
Tip: The conflict count in the header provides a quick alert about scheduling issues that need attention.
![Timetable Header - Screenshot placeholder showing the header with conflict count]
Class Schedule Tab
The Class Schedule tab shows the weekly or daily schedule for a selected class.
Selecting a Class
- Use the Class dropdown at the top
- Search or scroll to find the desired class
- Select the class to view its schedule
The first class is automatically selected when you load the page.
Schedule Navigator
Use the schedule navigator to control the view:
View Toggle
- Weekly - See the entire week at a glance (default)
- Daily - Focus on a single day
Date Navigation
- ← Previous - Go to previous week/day
- Today - Jump to current date
- Next → - Go to next week/day
Current Range Display
- Shows the date range being viewed
- Weekly: “Dec 2 - Dec 8, 2025”
- Daily: “Monday, Dec 2, 2025”
![Schedule Navigator - Screenshot placeholder showing the navigation controls]
Understanding the Calendar View
Weekly View
The weekly calendar displays:
- Days across the top - Monday through Sunday
- Time slots down the side - From first to last period
- Period blocks - Color-coded by type
Daily View
The daily calendar shows:
- Full day timeline - All periods for the selected date
- Detailed period information - More space for details
- Easier scrolling - Navigate through the day
Period Types and Colors
Periods are color-coded by their type:
| Type | Color | Description |
|---|---|---|
| Curricular | 🔵 Blue | Regular academic classes |
| Break | 🟢 Green | Short breaks between periods |
| Lunch Break | 🟠 Orange | Lunch time |
| Assembly | 🟣 Purple | Morning assembly or gatherings |
| Co-curricular | 🔴 Red | Sports, arts, clubs |
| Preparation | 🟡 Yellow | Study/preparation periods |
| Extra-curricular | 🩷 Pink | After-school activities |
Period Information
Each period block displays:
- Subject name - The class being taught
- Teacher name - Assigned teacher
- Time range - Start and end time
- Room (if assigned) - Location
Clicking on a Period
Click any period to open the Period Detail Dialog:
| Field | Description |
|---|---|
| Period Name | Name/title of the period |
| Subject | Subject being taught |
| Teacher | Assigned faculty member |
| Time | Start time - End time |
| Day | Day of the week |
| Type | Period type (curricular, break, etc.) |
| Status | Active, inactive, or cancelled |
| Room | Assigned classroom (if any) |
| Class | The class this period belongs to |
![Period Detail Dialog - Screenshot placeholder showing period details]
Refresh Data
Click the Refresh button (↻) to reload the schedule with latest data.
Teacher Schedule Tab
The Teacher Schedule tab shows the weekly or daily schedule for a selected teacher.
Selecting a Teacher
- Use the Teacher dropdown at the top
- Search by teacher name
- Select to view their schedule
The first teacher is automatically selected when you load the tab.
Schedule Display
The teacher schedule shows:
- All classes the teacher is assigned to
- Color-coded periods by type
- Class information displayed in each period block
Teacher Schedule Benefits
| Use Case | Benefit |
|---|---|
| Workload review | See total teaching hours at a glance |
| Free period identification | Find available slots for meetings |
| Substitution planning | Identify teacher availability |
| Resource allocation | Ensure balanced workload distribution |
Viewing Teacher Details
The selected teacher’s information is displayed:
- Name - Full name
- Designation - Position/role
- Department - Assigned department
![Teacher Schedule - Screenshot placeholder showing a teacher’s weekly schedule]
Auto Generate Tab
The Auto Generate tab provides an intelligent scheduling engine that automatically creates optimized timetables based on your configured constraints, staff availability, and room capacities.
Accessing Auto Generate
- Navigate to Timetable → Auto Generate tab
- You’ll see a list of previous generation jobs (if any)
- Click New Generation to start the process
This navigates to the dedicated generation page at
/sis/timetable/generate.
Generation Jobs List
The Auto Generate tab displays all past and current generation jobs:
| Column | Description |
|---|---|
| Version | Sequential version number (v1, v2, v3…) |
| Status | Current state — Pending, Processing, Completed, or Failed |
| Started | When the generation was initiated |
| Error | Reason for failure (if applicable) |
| Actions | ”View Details” to inspect allocations |
Job Statuses
| Status | Badge | Description |
|---|---|---|
| Pending | 🔘 Grey | Job is queued and waiting to start |
| Processing | 🔵 Blue | Algorithm is actively generating the timetable |
| Completed | 🟢 Green | Generation finished successfully |
| Failed | 🔴 Red | Generation encountered an error |
Generating a Timetable
Pre-generation Checks
Before starting a generation, the system runs automated pre-flight checks:
| Check | What it Validates |
|---|---|
| Subject Assignments | All class records have subjects configured |
| Staff Availability | Staff members are assigned to required subjects |
| Room Allocations | Rooms are assigned where required |
| Period Configurations | Period timings and breaks are configured for all standards |
Each check shows one of three states:
- ✅ OK — Configuration is complete
- ⚠️ Warning — Some items may be missing (generation can proceed)
- ❌ Error — Critical configuration is missing (generation cannot proceed)
Tip: Resolve all errors and as many warnings as possible before generating for the best results.
Starting Generation
- Review the pre-flight checks
- Click Start Generation
- The system uses the current academic year configured for your institute automatically
- You’ll be redirected to the job status page
Note: No academic year selection is needed — the server automatically resolves the current academic year from your institute configuration.
Real-Time Progress Tracking
Once generation starts, you’ll see a real-time progress view:
- Live indicator — A green “Live” badge shows when connected via real-time events (SSE)
- Progress bar — Shows percentage completion (0–100%)
- Status badge — Updates in real-time as the job progresses
- Automatic refresh — The page updates automatically without manual intervention
The system uses Server-Sent Events (SSE) to deliver real-time progress updates. If SSE is unavailable, it automatically falls back to periodic polling.
The generation process typically takes 1–5 minutes depending on the number of classes, subjects, and constraints.
Generation Algorithm
The auto-generation engine considers:
- Subject-class assignments — Which subjects are taught in which classes
- Staff qualifications — Which teachers can teach which subjects
- Room capacities — Available rooms and their constraints
- Period structure — Configured period timings, breaks, and lunch periods
- Constraint satisfaction — Minimizes conflicts while maximizing coverage
- Working days — Respects the configured school working days
Reviewing Generated Timetables
Version Selector
After generation completes, you can browse different versions:
- Use the version dropdown to switch between generated versions
- Each version shows its status and academic year
- The most recent version is selected by default
Allocation Grid
The generated timetable is displayed in an interactive grid:
Grid Structure
- Rows — One per period (P1, P2, P3…) with time slots
- Columns — One per active school day (Monday–Friday by default)
- Cells — Individual allocation blocks
View Modes
- By Class — Select a class to view its complete weekly schedule
- By Staff — Select a teacher to view all their teaching assignments
Stats Bar
- Total periods count
- Conflict count (highlighted in red)
- Locked allocations count (highlighted in blue)
Allocation Cell Colors
| State | Color | Description |
|---|---|---|
| Scheduled | 🟢 Emerald | Normal period — no issues |
| Break | 🟡 Amber | Short break between periods |
| Lunch | 🟠 Yellow | Lunch break period |
| Conflict | 🔴 Red | Scheduling conflict detected |
| Locked | 🔵 Blue | Allocation has been locked |
Cell Information
Each allocation cell displays:
- Subject name — The subject being taught
- Teacher name (class view) — Who is teaching
- Class name (staff view) — Which class the teacher is assigned to
- Room — Assigned classroom
- Conflict/Locked badges — Visual indicators for special states
Editing Allocations
Click any allocation cell to open the Edit Allocation Sheet:
| Field | Description |
|---|---|
| Day | Day of the week (read-only context) |
| Period | Period number (read-only context) |
| Time | Start time – End time (read-only context) |
| Class Record | Change the assigned class |
| Subject | Change the assigned subject |
| Staff | Change the assigned teacher |
| Room | Change the assigned room |
| Lock | Lock/unlock to prevent future changes |
Important: When you update an allocation, the system automatically detects new conflicts and flags them.
Locking Allocations
Lock allocations to preserve them during future regeneration:
- Click on an allocation cell
- In the Edit Sheet, click Lock / Unlock
- Locked allocations show a 🔒 badge and blue highlight
Locked allocations are preserved if you regenerate — they won’t be changed by the algorithm.
Publishing and Rolling Back
Accepting a Version
Once you’re satisfied with a generated timetable:
- Click Accept & Publish
- The system queues a merge job to apply allocations to the active timetable configuration
- You’ll receive a confirmation toast
- You’re redirected back to the main timetable page
What happens: The generated allocations are merged into your live timetable configuration. This replaces the current schedule with the generated one.
Regenerating
If a generated version isn’t satisfactory, you can regenerate directly from the version page:
- Lock any allocations you want to keep (they will be preserved by the algorithm)
- Click Regenerate
- A new version is created, respecting all locked allocations while re-optimizing the rest
- You’ll be redirected to the new version’s progress page
Tip: Lock the allocations that look correct before regenerating. The algorithm treats locked slots as fixed constraints and only reassigns unlocked ones.
You can also start a fresh generation from the Auto Generate tab by clicking New Generation. Each generation creates a new version number, and previous versions remain accessible for comparison.
Conflicts Tab
The Conflicts tab identifies and displays scheduling issues that need resolution.
What is a Conflict?
A conflict occurs when:
- Teacher double-booking - Same teacher assigned to multiple classes at the same time
- Room double-booking - Same room assigned to multiple classes
- Overlapping periods - Periods that overlap incorrectly
Conflict Display
Each conflict card shows:
| Field | Description |
|---|---|
| Conflict Icon | ⚠️ Warning indicator |
| Date/Day | When the conflict occurs |
| Time | Time slot with overlap |
| Teacher | Teacher involved in conflict |
| Subject | Subject(s) affected |
| Class | Class(es) involved |
| Severity | High, Medium, or Low |
Severity Levels
| Severity | Color | Description |
|---|---|---|
| High | 🔴 Red | Curricular period conflicts - critical |
| Medium | 🟡 Yellow | Co-curricular/extra-curricular conflicts |
| Low | 🔵 Blue | Break or preparation period overlaps |
Conflict Message
Each conflict includes a descriptive message explaining the issue:
“Mr. John Smith has overlapping periods for Class 10-A - Mathematics”
Resolving Conflicts
To resolve a conflict:
- Identify the issue from the conflict details
- Navigate to Settings → SIS Configuration → Timetable
- Edit the conflicting periods by:
- Changing the teacher assignment
- Adjusting the time slot
- Moving to a different room
- Return to Conflicts tab to verify resolution
Tip: The conflict count in the header updates automatically when issues are resolved.
![Conflicts Tab - Screenshot placeholder showing conflict cards]
No Conflicts State
When there are no conflicts, you’ll see:
- ✅ “No conflicts found in the current timetable”
- This indicates a healthy, well-organized schedule
Calendar Features
Interactive Calendar View
The timetable uses an interactive calendar with:
Navigation
- Click and drag to scroll through time slots
- Click on empty slots (future feature for direct editing)
- Click on periods to view details
Responsive Design
- Desktop - Full weekly view with all details
- Tablet - Condensed view with scrolling
- Mobile - Daily view optimized for smaller screens
Time Format
Times are displayed in 12-hour format:
9:00 AM,12:30 PM,3:45 PM- Duration shown as start - end times
Week Start
The calendar week starts on Monday and ends on Sunday.
Best Practices
For Administrators
-
Check conflicts regularly
- Review conflicts tab weekly
- Resolve high-severity conflicts immediately
- Document recurring conflict patterns
-
Balance teacher workloads
- Use teacher schedule view to assess distribution
- Ensure equitable teaching hours
- Plan for preparation time
-
Plan ahead
- Create schedules before term starts
- Account for holidays and events
- Build in flexibility for changes
For Teachers
-
Review your schedule weekly
- Check for any changes
- Note preparation periods
- Plan lessons according to schedule
-
Report conflicts immediately
- If you notice double-bookings
- Contact administration promptly
- Suggest resolution options
For Class Teachers
-
Verify class schedules
- Ensure all subjects are covered
- Check teacher assignments are correct
- Note any gaps in the schedule
-
Communicate changes
- Inform students of schedule updates
- Coordinate with subject teachers
- Update parents if significant changes occur
Importing and Exporting
Import (Coming Soon)
The import feature will allow you to:
- Upload schedules from spreadsheets
- Bulk create periods
- Import from other systems
Export (Coming Soon)
The export feature will allow you to:
- Download schedules as PDF
- Export to spreadsheet format
- Share printable timetables
Configuration
Accessing Timetable Settings
- Click “Create Schedule” in the header, OR
- Navigate to Settings → SIS Configuration → Timetable tab
Configuration Options
In timetable settings you can:
- Define period structure (start/end times)
- Set break durations
- Configure working days
- Assign subjects to classes
- Assign teachers to subjects
- Set room assignments
See SIS Configuration for detailed setup instructions.
Troubleshooting
Common Issues
Problem: Schedule not loading
- Solution:
- Check internet connection
- Ensure a class/teacher is selected
- Click Refresh button
- Verify academic year is configured
Problem: Blank calendar view
- Solution:
- No periods may be configured for this class
- Check timetable configuration in settings
- Verify the date range has scheduled periods
Problem: Teacher showing no periods
- Solution:
- Teacher may not be assigned to any classes
- Check teacher-subject assignments in settings
- Verify teacher employment is active
Problem: Conflicts not resolving
- Solution:
- Ensure all overlapping periods are edited
- Refresh the conflicts tab
- Check that changes were saved properly
Problem: Auto-generation not starting
- Solution:
- Ensure your institute has a current academic year configured
- Check that class records, subjects, and staff are properly set up
- Review pre-flight checks for any errors or warnings
- Verify you have
sis.timeTables.createpermission
Problem: Generation stuck at 0% or not progressing
- Solution:
- Check for the green “Live” badge indicating SSE connection
- Wait up to 30 seconds for the connection to establish
- Refresh the page — the system will reconnect automatically
- If the issue persists, the job may have failed silently — check the jobs list
Problem: Too many conflicts after generation
- Solution:
- Review your period configuration for overlapping time slots
- Ensure sufficient staff are assigned to cover all subjects
- Check room availability matches the number of concurrent classes
- Consider locking well-placed allocations and regenerating
Error Messages
| Error | Cause | Solution |
|---|---|---|
| ”Failed to load schedule” | API error | Check connection, retry |
| ”No class records found” | Missing configuration | Set up classes first |
| ”No staff available” | No teachers configured | Add staff in HRMS |
| ”Schedule data unavailable” | Date range issue | Try different dates |
| ”Failed to start generation” | Missing configuration | Review pre-flight checks |
| ”Generation Failed” | Algorithm error | Check error message, fix config, retry |
Permissions Reference
| Permission | Action Allowed |
|---|---|
sis.timeTables.view | View timetable schedules |
sis.timeTables.create | Create new periods |
sis.timeTables.update | Edit existing periods |
sis.timeTables.delete | Delete periods |
sis.timeTables.export | Export schedules |
sis.timeTables.import | Import schedules |
Contact your administrator to request permission changes.
Related Documentation
- SIS Overview - Student Information System features
- SIS Configuration - Configure timetable settings
- Classes - Class and section management
- HRMS Staff - Teacher and staff management
Quick Reference
Tab Overview
| Tab | Purpose | Key Feature |
|---|---|---|
| Class Schedule | View by class | Weekly/daily toggle |
| Teacher Schedule | View by teacher | Workload overview |
| Auto Generate | AI-powered scheduling | Version management |
| Conflicts | View issues | Severity indicators |
Period Types
| Type | Color | Code |
|---|---|---|
| Curricular | 🔵 Blue | Regular classes |
| Break | 🟢 Green | Short breaks |
| Lunch Break | 🟠 Orange | Lunch time |
| Assembly | 🟣 Purple | Gatherings |
| Co-curricular | 🔴 Red | Activities |
| Preparation | 🟡 Yellow | Study time |
| Extra-curricular | 🩷 Pink | After-school |
Auto Generation Workflow
| Step | Action | What Happens |
|---|---|---|
| 1 | Open Auto Generate tab | View past jobs |
| 2 | Click “New Generation” | Navigate to generation page |
| 3 | Review pre-flight checks | Verify configuration |
| 4 | Click “Start Generation” | Algorithm begins processing |
| 5 | Monitor progress | Real-time updates via SSE |
| 6 | Review allocations | Use grid to inspect results |
| 7 | Edit conflicts | Fix any flagged issues |
| 8 | Lock good allocations | Preserve for future runs |
| 9 | Accept & Publish | Apply to live timetable |
Navigation Shortcuts
| Action | How To |
|---|---|
| View class schedule | Select class from dropdown |
| View teacher schedule | Switch to Teacher Schedule tab |
| Auto-generate timetable | Switch to Auto Generate tab → New Generation |
| Check conflicts | Switch to Conflicts tab |
| Change week | Use ← / → navigation arrows |
| Go to today | Click “Today” button |
| Switch view | Toggle Weekly/Daily |
| Edit allocation | Click any cell in the generated grid |
| Lock allocation | Edit sheet → Lock button |
| Switch grid view | By Class / By Staff toggle |
Quick Links
Last updated: 28 February 2026
