Timetable Builder

Guided setup with multi-subject faculty assignment, mapping, auto-generation, and real-time fixes.

Browser-only storage: Use Export JSON to save your current timetable setup and Import JSON later to continue editing. Nothing is uploaded to the server.

Step 1: Add Classes

Create each class-section first. These become the timetable targets the engine will schedule.

Example: Grade 7, BSc CS, Inter 1st Year
Example: A, B, Morning
How many teaching slots exist each day
Used to match classroom capacity

Step 2: Add Classrooms

Add rooms, labs, and hall spaces. The generator uses these to avoid room conflicts and capacity problems.

Example: Room 204, Physics Lab, Seminar Hall
Choose where theory or lab sessions can happen
Maximum students the room can hold

Step 3: Configure Working Days / Cycle

Some schools use weekdays like Monday to Sunday, while some colleges run custom cycles like Day 1, Day 2, Day 3. You can keep the default, rename days, disable unused days, and drag them to reorder.

Step 4: Add Subjects

Set the teaching limits for each subject. These constraints guide generation quality and stop overload.

Example: Mathematics, English, Physics
Keep theory and lab subjects separate here
Core subjects prefer morning slots, soft subjects prefer afternoon slots
The class must get at least this many periods per week
The engine will never schedule beyond this
Avoids too many repetitions of one subject in the same day
Used for labs, default 3 continuous periods

Step 5: Constraints and Break Rules

Set shared scheduling constraints before faculty allocation. Break periods block teaching slots, and labs can reserve continuous blocks automatically.

Click one or more periods. Example: choose Period 4 when break comes after 3rd period.
If a lab subject does not define its own block size, this many continuous periods will be reserved.
Helps prevent the same teacher from being overloaded with too many back-to-back classes.
These are applied automatically during scheduling.
Greedy is the default fast mode. Optimization mode runs multiple browser-only constraint search passes to improve fit across classes, faculty, room usage, and timing preferences.
Higher values try more combinations in the browser and may produce a better timetable, but take a little longer.

Step 6: Add Faculty and Select Subjects

Instead of typing subject names manually, click multiple subject chips below to assign expertise to the faculty member. This reduces input mistakes.

Example: Mr. Rao, Ms. Priya
Use the slot board below to mark unavailable periods by click or click-drag.
Visual selection enabled below
Daily load limit for the faculty member
Click one or more subjects to assign them to this faculty member.
Click individual slots or drag across them to block times for this faculty member.
Create a faculty profile here. You can later edit the same faculty member and keep their subject expertise and blocked slots.
No unavailable slots selected.

Step 7: Mapping, Generate, and Review

Map each class-subject to a faculty member and optionally a preferred room. Then generate automatically for one or many classes while keeping faculty clashes blocked across all selected classes.

Pick the class this mapping belongs to
Pick the subject for that class
Only matching faculty are shown. This becomes the main teacher for the subject.
Optional fixed room, useful for labs
Classes0
Classrooms0
Subjects0
Faculty0
Mappings0
Choose the class-section to preview after generation
All classes are selected by default. You can narrow the batch if needed. The same faculty member will not be assigned to another selected class at the same time.

Generated Timetable

Select a class and generate to see the timetable.

Generation Readiness

The right side tells you exactly what is missing for each selected class before generation.

Real-Time Problem Solver

The engine checks issues after generation and gives a direct fix suggestion so the user knows what to do next.