Guide
How to create a school timetable automatically
To create a school timetable automatically, prepare the weekly grid, classes, subjects, teachers, availability, rooms, and rules, then let Schedull generate a draft timetable. Review the result, fix overloaded inputs if needed, and use manual editing for final school-specific decisions.
Last updated: April 28, 2026 ยท Reviewed by the Schedull product team
What an automatic timetable generator needs
Automatic generation is only as good as the planning data behind it. These inputs decide whether Schedull has enough room to place every lesson.
| Input | Why it matters |
|---|---|
| Teaching grid | Defines the days and modules where lessons can be placed. |
| Classes and subjects | Defines what each group must study and how many weekly sessions are required. |
| Teacher assignments | Prevents shared teachers from being placed in two classes at the same time. |
| Availability and rooms | Blocks impossible slots and protects specialist spaces such as labs or gyms. |
| Rules and preferences | Separates true requirements from ideal patterns the timetable should follow when possible. |
Preparation checklist
Before opening the generator, confirm the project data is realistic.
- Every class has enough weekly modules for its subjects.
- Each teacher's unavailable slots are entered as real blockers.
- Part-time teachers have enough possible slots for their assigned subjects.
- Special rooms are required only when the lesson truly needs them.
- Ideal timing patterns are preferences, not mandatory rules.
- Fixed sessions are pinned only when they cannot move.
Key concepts
| Term | Meaning |
|---|---|
| Project | The workspace for one timetable setup. It contains schedules, classes, teachers, subjects, rules, and generated results. |
| Schedule | The days and time slots available for lessons. A project can use one shared schedule or class-specific schedules. |
| Class | A student group, usually a course and group combination, that receives subjects during the week. |
| Subject | A lesson type assigned to a class, with a weekly number of modules and an optional teacher. |
| Teacher | A staff member who can be assigned to one or more subjects and given availability or workload rules. |
| Hard rules | Requirements the timetable must respect, such as unavailable slots or sessions that cannot overlap. |
| Soft preferences | Preferred patterns that improve the timetable when possible, without blocking generation if they cannot all be met. |
| Generation | The automated step that builds class and teacher timetables from schedules, subjects, teachers, rooms, and rules. |
| Manual editing | The final adjustment stage where you can move, swap, or save timetable entries after generation. |
Step-by-step guide
-
Create the project
Start a project for the school year, campus, or planning cycle. Use a clear name so staff can identify it later.
-
Configure the school schedule
Set teaching days, modules per day, and time ranges. Use a shared schedule unless some classes need their own daily structure.
-
Add classes, subjects, and weekly loads
Create each class, add its subjects, and enter how many sessions each subject needs per week. Check totals before generation.
-
Assign teachers, rooms, and availability
Connect teachers to subjects, add specialist rooms where needed, and enter unavailable slots for teachers, classes, or rooms.
-
Add rules and preferences
Use hard rules for real requirements and soft preferences for helpful patterns such as spacing lessons across the week.
-
Run generation and review issues
Start generation from the timetable area. If no result is found, review overloaded classes, limited teacher availability, and strict rules.
-
Edit, export, or share the timetable
Use manual editing for final swaps, save the accepted version, and export or publish the timetable when it is ready.
Example planning scenario
A secondary school with five teaching days, six modules per day, shared language teachers, and one lab should enter the weekly grid first, then classes and subjects, then teacher assignments, then lab requirements. Teacher unavailability and lab access should be hard rules; preferred morning lessons should usually be preferences.
Why automatic generation may fail
A no-result message usually means the project has less scheduling space than the requirements need.
| Reason | How to fix it |
|---|---|
| Class load exceeds available modules | Reduce subject counts, add modules, or move that class to a correct schedule. |
| Teacher availability is too narrow | Check whether the teacher can realistically cover every assigned subject within available slots. |
| Too many mandatory rules | Convert nice-to-have rules into preferences and reserve mandatory rules for true impossibilities. |
| Special rooms are over-constrained | Only require a lab, gym, or workshop for lessons that cannot happen elsewhere. |
| Fixed sessions leave no room for the rest | Pin only immovable sessions, then let Schedull place the flexible sessions. |
Review, manual edit, and export
After generation, review the timetable by class, teacher, and room. Use manual editing for final human decisions, then save the version you accept. Export or publish only after checking that every class receives its required subjects and every teacher's timetable is workable.
Useful next pages
These pages cover deeper setup guidance, teacher availability, rules, support, plans, and trial access.
FAQ
Can Schedull generate a timetable automatically?
Yes. After you add schedules, classes, subjects, teachers, rooms, and rules, Schedull generates a timetable and shows progress while it works.
How are teacher conflicts handled?
Teacher assignments and availability are considered during generation, so a teacher should not be placed in two lessons at the same time.
What should I do if generation finds no timetable?
Check weekly loads, teacher availability, room requirements, fixed sessions, and mandatory rules. Loosen preferences and run generation again.
Can I edit the timetable after automatic generation?
Yes. Use the manual editor to move, swap, remove, or save sessions after generation, then keep the version that matches your school requirements.