Generate Schedule

Generate the exam timetable for courses, invigilators, positions, and seating arrangement.

7.1 Overview

After applying constraints in the previous chapter, you can now generate the exam schedule. The generation process follows a specific order:

  1. Exclude and Include — Control which sections and slots are available for generation.
  2. Generate Courses — Generate the exam course timetable.
  3. Analyze & Edit Courses — Review and adjust the generated course timetable.
Note: You must follow this order. Courses must be generated first before invigilators can be assigned, and so on.

7.2 Exclude and Include

The Exclude and Include functions allow you to control which sections (course groups) and time slots (timetable positions) are available during timetable generation. The recommended workflow is:

  1. Exclude all sections — Temporarily exclude all course sections from generation.
  2. Include preferred sections — Add back only the largest or most important sections to generate first.
  3. Exclude all slots — Temporarily exclude all time slots from the timetable.
  4. Include preferred slots — Add back only the first week's slots to fill them with important exams first.
Note: If a section is excluded, it will not be scheduled during generation. If all slots are excluded, no courses can be generated until slots are included again.

7.2.1 Exclude All Section

This function allows you to exclude all sections at once from the timetable generation. Once excluded, none of them will be scheduled. You can then use the Include function to add back only the sections you need.

Alternative 1: Exclude at Constraint Tree

You can exclude all sections from the Constraint Tree. There are 3 simple steps to do so.

Step 1: Go to Constraints Tree.

Step 2: Right click on the first folder of All Courses.

Step 3: Click Exclude Section to exclude all sections under Constraints Tree.

Right click on the first folder of All Courses and click Exclude Section
Figure 7.2.1: First alternative on Exclude All Section at Constraint Tree

Alternative 2: Exclude at Timetable Menu

You can exclude all sections from the Timetable menu. There are 3 simple steps to do so.

Step 1: Go to Timetable menu.

Step 2: Click on Include/Exclude Sections.

Step 3: Click Exclude All Sections.

Timetable menu showing Include/Exclude Sections with Exclude All Sections option
Figure 7.2.2: Second alternative on Exclude All Section at Timetable Menu

7.2.2 Include First Week Sections

After excluding all sections, the first step is to include only the sections you want to generate first. Since we have organized the courses into a FIRST WEEK folder in the Constraints Tree (see Section 6.2), we can now include those sections to be generated first.

Step 1: Go to the Constraints Tree and locate the FIRST WEEK folder.

Step 2: Right-click on the FIRST WEEK folder and select Include Section. This will include all sections inside the FIRST WEEK folder for generation.

Right-click FIRST WEEK folder and select Include Section
Figure 7.2.3: Include First Week Sections

Step 3: Verify the included sections by checking the Course Status panel. Choose to view Included Sections from the dropdown to confirm that only the first week courses are included.

Course Status showing First Week Included Sections
Figure 7.2.4: Course Status — First Week Included Sections
Note: By including the first week sections first, you ensure that the most important or largest exams are scheduled in the first week before filling the remaining slots.

7.2.3 Include Section at Custom Section Actions

This is an alternative method to include sections. You may use this instead of or in addition to including by folder (Section 7.2.2).

You may also include sections using Custom Section Actions, which allows you to filter and include sections based on specific criteria such as class size. There are 4 simple steps to include section at Custom Section Actions.

Step 1: Go to Timetable menu and select Custom Section Action.

Timetable menu showing location of Custom Section Actions
Figure 7.2.5: Location of Custom Section Actions

Step 2: Custom Section Actions window will appear. Fill in the details as follows:

  • Tick Include/Exclude box and then tick Include on the right side. This tells the system to include back only the sections that match your criteria, instead of including everything at once.
  • Under Criteria, tick Class Size and Combine all section of a course. This allows you to filter sections based on the total number of students. For example, if the largest combined capacity is 172, you can set Class Size more than 100 but lesser than 200 to include the largest courses first.
Custom Section Actions window with Include/Exclude and Class Size criteria
Figure 7.2.6: Custom Section Actions

Step 3: Click Ok once done.

Step 4: A confirmation popup will appear. Click Yes.

Confirmation popup asking to perform custom actions
Figure 7.2.7: Confirmation Popup

Once you have included the preferred sections, you may view the Included Sections at Course Status. Choose to view Included Sections from the dropdown.

Course Status window showing list of Included Sections
Figure 7.2.8: Location of Course Status — Included Sections

7.2.4 Exclude All Slots

If you have already completed all constraint settings, you may skip the Exclude/Include Slots steps (7.2.4 and 7.2.5) and proceed directly to generation.

To Exclude All Slots, there are 3 simple steps to do so.

Step 1: Go to Timetable Output.

Step 2: Right click anywhere in Timetable Output and select Exclude Slot.

Step 3: Click Exclude All. This will exclude all the slots in the Timetable Output.

Steps on Excluding All Slots in Timetable Output
Figure 7.2.9: Steps on Excluding All Slots

As you can see, the excluded slots will be shown in black.

Excluded Slots shown in black in Timetable Output
Figure 7.2.10: Excluded Slots in Timetable Output
Note: You need to exclude all slots before you include preferred slots.

In Timetable Output, you may also be able to exclude other things such as:

  1. Exclude in the Slot: Exclude only a single slot.
  2. Exclude all in the Room: Exclude all the slots in the room chosen.
  3. Exclude all in the Time Slot: Exclude all slots in the time slot chosen.
  4. Exclude all in the Day: Exclude all slots in the day chosen.

7.2.5 Include Preferred Slot

You may include your preferred slot to generate course. For example, you want to generate preferred courses into the first week of examination. There are 4 simple steps to do so.

Step 1: Go to Timetable Output.

Step 2: Choose the preferred day to include. For example, we choose Monday.

Step 3: Right click anywhere in Timetable Output and select Include Slot.

Step 4: Click Include all in the Day. This will include all the slots in the selected day.

Steps to Include Preferred Slot in Timetable Output
Figure 7.2.11: Include Preferred Slot

You may do the same steps on the next preferred days. It is recommended to include the first week first so that the first week will be filled with important or big examinations first.

7.3 Generate Courses

Once all constraints and generate options have been set, you can generate the course timetable. There are two ways to generate courses.

7.3.1 Generate Included Courses

This will only generate courses that have been included during the Exclude and Include step. Excluded courses will not be generated. Make sure all your constraints and generate options have been properly configured before proceeding.

There are two ways to start the generation.

Alternative 1: Click on Generate Schedule Icon

Step 1: Look for the Generate Schedule icon Generate Schedule icon on the toolbar and click on it.

Location of the Generate Schedule icon on the toolbar
Figure 7.3.1: Location of Generate Schedule icon on the toolbar

Alternative 2: From Timetable Menu

Step 1: Go to Timetable menu and select Generate Timetable.

Timetable menu showing Generate Timetable option
Figure 7.3.2: Generate Timetable from Timetable menu

Generate Schedule Window

After clicking either option, the Generate Schedule window will appear. You need to configure two settings before generating.

Generate Schedule window showing Generate Quality and Generate Order options
Figure 7.3.3: Generate Schedule window

Generate Quality:

This controls how thoroughly the system optimizes the schedule. Higher quality takes more time but produces a better result.

  • Fast (Less Optimize) — Generates the schedule quickly with less optimization. Good for quick testing to check if your constraints work correctly before running a full generation.
  • Average (Recommended) — A balanced option that provides good optimization within a reasonable time. This is the recommended setting for most cases.
  • Intensive (Higher Optimization but Slower) — Spends significantly more time to produce a highly optimized schedule. Use this for the final generation when you want the best possible result. This may take considerably longer depending on the number of courses and constraints.
  • Custom — Allows you to set a custom optimization level from 1 to 200. A higher number means more optimization but takes longer to generate.

Generate Order:

This controls how sections are prioritized during the generation process.

  • Depth First (Apply Priority Scheduling) — Generates sections based on the priority order you have set in the constraints. Sections with higher priority will be scheduled first.
  • Depth First (Ignore Priority) — Generates sections in depth-first order but ignores any priority settings. All sections are treated equally.
  • High Priority Sections Only — Only generates sections that have been marked as high priority in the Constraints Tree. Other sections will be skipped. This is useful when you want to regenerate only specific important sections without affecting the rest of the schedule.

Step 2: Select your preferred Generate Quality and Generate Order, then click OK to start the auto generation.

Note: For most cases, it is recommended to use Average quality with Depth First (Apply Priority Scheduling) to get a well-optimized schedule that respects your priority settings.

Same Day Ratio

After the generation is complete, a Same Day Ratio popup will appear. This shows the ratio and percentage of students who have exams on the same day.

Same Day Ratio popup showing ratio and percentage
Figure 7.3.4: Same Day Ratio popup after generation

The same day ratio indicates how many students have more than one exam scheduled on the same day. A lower percentage is better. For example, 133 : 1950 or 7% means 133 out of 1950 students have at least two exams on the same day.

Note: If the same day ratio is too high, you can try regenerating with different settings or adjusting your constraints to reduce clashes.

View Generated Courses at Timetable Output

Step 3: After the generation is complete, you can view the generated courses at the Timetable Output panel. This shows all the courses that have been scheduled into their assigned time slots and rooms.

Timetable Output showing generated courses in the schedule
Figure 7.3.5: Generated courses displayed at Timetable Output

Lock Courses

Step 4: After reviewing the generated timetable, you should lock the courses to prevent them from being moved or changed when generating the remaining courses. To lock, right click on the timetable and select Lock CourseLock all in Timetable.

Right click menu showing Lock Course option and locked sections in grey
Figure 7.3.6: Lock courses in the timetable

Locked sections are shown in grey colour on the timetable. This indicates that these sections are fixed and will not be affected by subsequent generation.

Note: It is important to lock the included courses before proceeding to generate all other courses. This ensures the included courses remain in their assigned time slots.
Note: You can generate as many times as you want. Each time you regenerate, the results may vary as the system tries different combinations. If you are not satisfied with the result, feel free to regenerate until you get a satisfactory schedule.

7.3.2 Generate All Courses

Now you may generate all other courses into the Timetable Output. This includes the courses that were previously excluded. There are 3 simple steps to do so.

Step 1: You need to Include All Sections first. Go to Timetable menu → Include/Exclude SectionsInclude All Sections. This will include all previously excluded sections so they can be generated.

Timetable menu showing Include/Exclude Sections submenu with Include All Sections option
Figure 7.3.7: Location of Include All Sections

Step 2: Once you are done with Include All Sections, you might want to include more slots after that. You may include the second week's slot now. Refer to Include Preferred Slot (Section 7.2.4) for how to include additional slots.

Note: It is important to put 0 first in Clashing Section at Generate Option for Course. This means no clashing is allowed initially, ensuring that no two exams are scheduled at the same time for the same student.

Step 3: You may now generate the schedule as usual. Refer to Generate Included Courses above for the generation steps.

Once the schedule is generated, you might encounter some sections not being assigned into any slot. This can happen when there are not enough available time slots or rooms to accommodate all sections.

To check which sections are not assigned, look at the Course Status panel. Select Not Assigned from the dropdown to view the list of unassigned sections.

Timetable Output with Course Status panel showing Not Assigned sections
Figure 7.3.8: Not Assigned sections at Course Status in Constraint Tree

Optional Steps to Resolve Unassigned Sections

There are 2 optional steps you may do to ensure all sections are slotted in.

Optional Step 1: You may now include the slot day by day and keep on generating the schedule until all sections are slotted in. This means you gradually open up more time slots and regenerate each time until every section has a place.

Optional Step 2: If you have already included all slots in the Timetable Output and some sections are still not assigned, you may change the Clashing Section value to -1 at Course's Generate Option. Setting it to -1 means the system will allow clashing — students may have more than one exam scheduled on the same day.

Warning: Setting Clashing Section to -1 should only be used as a last resort when all other options have been exhausted. This allows students to have multiple exams on the same day, which may cause scheduling conflicts. Always try adding more slots or adjusting constraints first before using this option.
Note: Once all sections are already slotted in, make sure to lock them in Timetable Output. Right click → Lock CourseLock all in Timetable to secure all scheduled courses before proceeding to generate invigilators.

7.4 Analyze & Edit Courses

After generating courses, review and verify the results before proceeding to invigilator assignment. You can analyze the generated timetable and make manual adjustments if needed.

7.4.1 Analysis

Review the generated course timetable at the following locations:

Timetable Output

You may analyze the timetable output to check if the exam courses have been placed into the right slot. Verify that the courses have been placed into the correct:

  • Day
  • Week
  • Room
  • Time Slot
Timetable Output Analyzation
Figure 7.4.1: Timetable Output Analyzation

Slot

You may also analyze the generated courses by clicking on each Slot. This allows you to verify the details of each slot, including:

  • Courses assigned to the slot
  • Day and Time
  • Venue
  • Occupied and Free Capacity
  • Exam Duration

You can also hide empty slots to focus only on slots that have courses assigned to them.

Slot Analyzation showing course details per slot
Figure 7.4.2: Slot Analyzation

From the Slot panel, you can access Print Preview and Design Print List to customize and print the slot details.

Location of Print Preview and Design Print List buttons
Figure 7.4.3: Location of Print Preview and Design Print List

To design, click on Design Print List icon Design Print List icon. Refer to the diagram below for the explanation.

Design Print List window with field selection
Figure 7.4.4: Design Print List
>Move ONE Field to the right
>>Move All Fields to the right
<Move ONE Field to the left
<<Move All Fields to the left

Click the Print Preview icon Print Preview button. Print Preview Option window will appear.

Print Options window
Figure 7.4.5: Print Preview Option
  • You may choose to Print By Slot, Print Slot List, Print Special Exam List or Print Student by Slot.
  • If you choose to Print By Slot, you may choose the Font Size and choose to Include Course Name, Invigilator or Invigilator Position.
  • If you choose to Print Student By Slot, you may choose the Slot Selection and Optional Fields to include in the Print Preview.

Once done, click Preview. Preview button

Course List

You may analyze the Course List to know if the exam courses has been placed into the right slot.

Course List Analyzation
Figure 7.4.6: Course List Analyzation

To edit, you may refer to the 7.4.2 Editing Courses.

Student List

In Student List, you may analyze student based on your preference option. Refer to the diagram below.

Options to choose in Student List
Figure 7.4.7: Options to choose in Student List

Course-Student List

In Course-Student List, you may analyze Course-Student List to know if the exam courses has been placed into the right slot.

Course-Student List Analyzation
Figure 7.4.8: Course-Student List Analyzation

To edit, you may refer to the 7.4.2 Editing Courses.

7.4.2 Editing Courses

Remove Course from Slot

Upon Analysis, unsatisfied slot assignment can be removed by using the Remove Section Slot Assignment function at the Right-Click Function. Here are a few locations to remove section in the slot which is:

  • Timetable Output
  • Tree Structure
  • Course List

Note that, if the section is locked, please unlock first before remove in the slot.

To unlock, right click on the slot you want to unlock and select Unlock CourseUnlock course in Slot.

Unlock Course in the Slot
Figure 7.4.9: Unlock Course in the Slot

The unlocked course will be shown in white on the Timetable Output.

Unlock Course
Figure 7.4.10: Unlock Course

1. Remove from Timetable Output

Right click on the slot that you want the course to be removed and select Remove CourseRemove in the Slot.

Remove Course at Timetable Output
Figure 7.4.11: Remove Course at Timetable Output

A confirmation popup message will appear. Click Yes to proceed with the removal.

Popup Message to confirm Remove Course
Figure 7.4.12: Popup Message to confirm Remove Course

The course will be removed from the slot and the timetable will be updated accordingly.

Course Removed
Figure 7.4.13: Course Removed

2. Remove Course at Tree Structure

Right click on the section and select Remove Section Slot Assignment.

Remove Course at Tree Structure
Figure 7.4.14: Remove Course at Tree Structure

Note that, if you remove the section on the folder instead of the section itself, the entire sections under the folder will be removed from the slot as well.

A confirmation popup message will appear. Click Yes to confirm the removal.

Popup Message to confirm Remove Section
Figure 7.4.15: Popup Message to confirm Remove Section

The removed courses will appear under the Course Status window with a Not Assigned status.

Removed Course List
Figure 7.4.16: Removed Course List

3. Remove Course at Course List

Right click on the section under the course and select Remove Slot AssignmentSelected Section.

Remove Course at Course List
Figure 7.4.17: Remove Course at Course List

Note that, if you choose All Section in Selected Course, all sections under the course will be removed from the slot.

Locate & Highlight Course

Once you have removed the course from the slot, you may view them at the Course Status under Not Assigned.

Course Status showing removed courses as Not Assigned
Figure 7.4.18: Course Status

Before we allocate the section into the slot, we need to locate the section at tree so that we will be able to highlight same time and clashing section.

To Locate, right click the section under Course Status and click Locate SectionAt Tree.

Locate Section at Tree
Figure 7.4.19: Locate Section at Tree

This will bring you to Constraints Tree.

Section Location at Constraints Tree
Figure 7.4.20: Section Location at Constraints Tree

Note that, it is recommended to highlight the folder at Constraints Tree so you will be able to know same time and clashing section.

To highlight, right click on the folder and select HighlightHighlight Same time and Clashing Sections.

Highlight Same Time and Clashing Sections
Figure 7.4.21: Highlight Same Time and Clashing Sections

Once clicked, you will be able to see the highlight right away at the Constraints Tree and also Timetable Output.

Highlight at Constraints Tree
Figure 7.4.22: Highlight at Constraints Tree
Highlight at Timetable Output
Figure 7.4.23: Highlight at Timetable Output
  • Same Time Section — sections that are scheduled at the same time slot.
  • Clashing Section — sections that have student conflicts with the selected course.

The purpose of highlighting is to identify free slots when you want to manually allocate a course. Slots with no color indicate that the slot is available and the course can be safely placed there without any time or student conflicts.

Manually Allocate Course into the Slot

To allocate course into the slot, you may want to select a slot with no clashing section.

When you found one, you can simply double click the slot and insert the course. Refer to the diagram below.

Steps on Allocate Course into the Slot
Figure 7.4.24: Steps on Allocate Course into the Slot
Course Section has been moved to the right
Figure 7.4.25: Course Section has been moved to the right

ADDITIONAL NOTE: You may also slot the section into the existing slot as long as there is no clashing section. This steps usually used to ensure all venues for examination are being filled perfectly.

The slot might have insufficient space and the section will be split into different room. A popup will appear and click Yes if you want to proceed.

Manual Add Alert popup
Figure 7.4.26: Steps on Allocate Course into the Existing Slot

If you click Yes, another popup will appear asking for the split section to be slotted in room according to the previous Room Priority or a new one.

Room Priority for Split Section
Figure 7.4.27: Room Priority for Split Section
IMPORTANT NOTE: Before you proceed with the invigilator, make sure to double check your timetable output to ensure no error in next stage.