Scheduling is where each section's weekly timetable is built for the active Term. You can place classes one by one, copy, move and swap them by dragging, or let the system fill everything automatically. Every change is checked for teacher, room and section conflicts before it is saved. Open it from Sidebar → @gi('calendar3') Scheduling.

@gi('magic', '#111827') Auto-Generate Schedule 1
Fills empty required-subject slots for First Semester with zero conflicts. Existing entries are never touched.
@gi('eraser', '#dc3545') Remove Schedules @gi('magic', '#ffffff') Generate Schedule
Subject Coverage @gi('check-circle-fill', '#16a34a') All covered   Specialized Rooms @gi('check-circle-fill', '#16a34a') Sufficient   Grid Capacity @gi('check-circle-fill', '#16a34a') All schedulable
GRADE & SECTION SELECTOR 2
Grade 11 8 Grade 12 8
Rizal Mabini Bonifacio Luna
Scheduling Panel 3 Entries 14
Schedule Status Incomplete
SUBJECTS 4
Effective Comm. Complete
4:00 / 4:00
General Math Incomplete
3:00 / 4:00
General Sci. Exceeded
3:30 / 3:00
Weekly Timetable Grid 5 Morning
School Year
2026-2027
Term
First Semester
Grade Level
Grade 11
Shift Type
Morning
Section
Rizal
@include('user-guide.partials._timetable')
  • 1 Auto-Generate panel with the readiness checks (see Auto-Generate Schedule).
  • 2 Grade & Section Selector: pick the section to work on.
  • 3 Scheduling Panel: changes with what you are doing (overview, or the step-by-step New Entry form).
  • 4 Subjects list with each subject's scheduled hours and status.
  • 5 Weekly Timetable Grid of the selected section, with its School Year, Term, Grade Level, Shift Type and Section.
  • On smaller screens the panel moves above the timetable, and the timetable can be scrolled sideways.

    1. Click a Grade Level button (for example Grade 11) to show its sections. The number next to it is how many active sections it has.
    2. Click a section. Its timetable and subjects load immediately, without reloading the page, and the section stays highlighted.

    The colored dots show each section's progress, and are refreshed after every change:

    @gi('circle-fill', '#dc3545') Red dotThe section has no schedule entries yet (Unscheduled).
    @gi('circle-fill', '#ffc107') Yellow dotThe section has entries but is Incomplete: at least one subject has not reached its Hours per Week.
    No dotThe section is Complete.
    Dot on a Grade LevelRed if any of its sections is unscheduled, otherwise yellow if any is incomplete.

    Only active sections of the active School Year are listed.

    Rows are the time slots of the section's Shift Type, with their Start, End and Duration; columns are Monday to Friday. Yellow rows are breaks and never accept classes.

    An entry's assigned hours come from its duration: 60 minutes = 1:00 hour, 30 minutes = 0:30. Hours are written as hours:minutes throughout this page.

    The quickest way to add a class is to click an empty cell. The Scheduling Panel turns into a New Entry form that walks you through four steps; its header shows the day, time and free minutes of the cell.

    New Entry
    Monday • 9:45 AM - 10:45 AM • 60m free
    1234
    SUBJECTS
    General Mathematics Incomplete
    GENMATH · 3:00 / 4:00
    General Science Exceeded
    GENSCI · 3:30 / 3:00
    ACTIVITIES teacher optional
    Flag Ceremony
    FLAG
    1234
    @gi('book') General Mathematics
    TEACHER
    Maria Santos
    18 h assigned
    Jose Reyes Conflict
    21 h assigned · has a class in this slot
    1234
    @gi('book') General Mathematics@gi('person') Maria Santos
    DURATION
    60 min
    30m 45m Full 60m
    +1:00   4:00 / 4:00   Completes the week
    Continue
    1234
    @gi('book') General Mathematics@gi('person') Maria Santos@gi('clock') 60m
    ROOM
    Room 101
    Section default
    Science Lab Booked
    Save without a room
    1. Click an empty cell (Available or + Add) in the timetable.
    2. Subject. Pick a subject. Each one shows its code, scheduled / required hours and status. Only subjects of the section's Track, Grade Level and active Term are listed, plus the Activities.
    3. Teacher. Pick a teacher. Only teachers assigned to the subject are listed; a teacher who already has a class at this day and time is marked Conflict and cannot be chosen. Each teacher shows their current assigned hours.
    4. Duration. Type the minutes or click a quick pick (30m, 45m, 60m, 90m or Full, the whole free time). The preview shows the hours added and whether the subject will still have hours left, Completes the week, or Exceeds by some time. Click Continue.
    5. Room. Pick a room. The section's default room is listed first; rooms already used at this time are marked Booked. Or click Save without a room.

    The entry is saved the moment a room is picked. The cell fills in, the subject hours, status dots and panel refresh, and a green toast confirms it. The panel then returns to its overview.

    The step labels (Subject, Teacher, Duration, Room) at the top of the panel show where you are. Use the @gi('arrow-left') back arrow beside them to return to the previous step, or the @gi('x-lg') button on the first step to discard the new entry.

    Once a subject has a teacher in a section, every other entry of that subject in the same section must use the same teacher. If you pick someone else, the system replies "This subject is already taught by … in this section. Use the same teacher."

    The Subjects list in the panel offers a second way to schedule, handy for placing the same subject in several slots:

    1. Click a subject in the panel's Subjects list to expand it.
    2. Choose the Teacher (if the subject already has a teacher in this section, that teacher is used automatically). For subjects that need a special room, also choose a laboratory or workshop Room. Only teachers with at least one open slot in this section are offered, with the number of open slots.
    3. A token labeled Subject + Teacher appears. Either:
      • click the token to highlight every free cell where it fits (green dashed outline), then click a highlighted cell; or
      • drag the token onto a highlighted cell.

    The duration is chosen automatically: the hours the subject still needs, up to the free time in the cell. Press Esc to drop the selection.

    Editing an entry

    1. Hover the occupied cell and click @gi('pencil-square') Edit.
    2. In Edit Schedule Entry, change the Day of Week, Time Slot, Subject, Duration (minutes), Teacher or Room. The Section and Shift Type are shown for reference, and the Assigned Hour is recalculated from the duration.
    3. Click Update Schedule Entry. All conflict and hour checks run again before saving.

    Deleting an entry

    1. Hover the occupied cell and click @gi('trash') Delete.
    2. The window shows the day, time and subject. For an activity without a teacher that also exists in other sections at the same day and time, you can tick those sections to delete it there too.
    3. Click Delete Entry, or Cancel.

    The cell empties and the hours, status and dots update immediately.

    Occupied cells can be dragged with the mouse. Two different gestures keep moving and copying separate:

    ActionHowResult
    @gi('arrows-move') MoveDouble-click the cell (it turns blue), then drag it onto an empty cell.The entry moves to the new day and time; the old cell empties.
    @gi('arrow-left-right') SwapDouble-click the cell, then drag it onto another occupied cell.The two entries exchange places (subject, hours, teacher and room). Both positions are checked first.
    @gi('files') Copy (fill)Press and drag a cell directly (no double-click) across empty cells in the same row (other days) or the same column (other time slots), then release.The entry is copied into every empty cell crossed. The original stays.
    TimeMondayTuesdayWednesdayThursdayFriday
    9:45 AM60 min
    General Mathematics1 hr · Room 101 · M. Santos
    @gi('files', '#15803d') copy
    @gi('files', '#15803d') copy
    Effective Comm.1 hr · Room 101
    Available
    @gi('arrow-right', '#6b7280') Drag from Monday to Wednesday: Tuesday and Wednesday receive copies. Thursday is occupied, so it is skipped.

    Dragging needs a mouse. On phones and tablets, use Edit to change an entry's day or time slot instead.

    Every save, edit, move, swap and copy is checked. Blocking problems stop the change and show a red message; warnings ask you to review and decide.

    CheckWhat happens
    @gi('person-x', '#dc3545') Teacher conflictBlocked. The teacher already teaches another section at the same day and time: "The selected teacher already has a class with … in this slot." In the New Entry form such teachers are marked Conflict.
    @gi('door-closed', '#dc3545') Room conflictBlocked. The room is used by another section at the same day and time: "The selected room is already booked by … in this slot." In the form such rooms are marked Booked.
    @gi('grid-3x3', '#dc3545') Section overlapBlocked. The class does not fit in the time left in the cell: "This slot only has N minute(s) remaining …"
    @gi('person-badge', '#dc3545') Teacher not qualifiedBlocked. Only teachers assigned to the subject can be used: "The selected teacher is not assigned to this subject."
    @gi('cup-hot', '#dc3545') Break or wrong shiftBlocked. Breaks cannot hold classes, and slots must belong to the section's shift.
    @gi('hourglass-split', '#d97706') Exceeded subject hoursWarning. The change would push the subject past its Hours per Week: "This would bring … to X / Y hours, exceeding the required weekly hours." Choose Cancel or Continue Anyway; if you continue, the subject is marked Exceeded.

    A section may have the same subject more than once on the same day; this is allowed without any warning.

    Activities such as Flag Ceremony are added the same way as subjects, but with a shorter flow: pick the activity, optionally a teacher of the section's Grade Level who is free at that time (or Continue without a teacher), then the duration, and click Save Activity. Activities count toward no subject hours.

    After you add an activity, the system offers to add it to other sections that are still free at the same day and time. The window Add activity to other sections? lists them by Grade Level; keep Select all sections ticked or choose specific ones, then click Add to N sections. Close the window to skip.

    The Subjects list in the panel works as the section's hour tracker. For each required subject it shows the subject and its teacher, the scheduled / required hours, a progress bar and the status:

    CompleteScheduled hours equal the Hours per Week.
    IncompleteFewer hours than required are scheduled. The New Entry form shows how much is left.
    ExceededMore hours than required are scheduled. Delete or shorten an entry to correct it.

    Above the list, Schedule Status shows the whole section: Unscheduled (no entries), Incomplete, or Complete once every required subject reaches its hours. A legend explains the dot and cell colors, and the Entries badge counts the section's entries. Everything updates after each change.

    Auto-generate fills the empty required-subject hours of the sections you choose, with zero teacher or room conflicts, spreading the load across qualified teachers. Existing entries are never changed.

    @gi('magic', '#111827') Generate Schedule ×
    Year Levels
    Grade 11   Grade 12
    Select all
    Bonifacio Unscheduled
    Mabini Incomplete
    Rizal Complete
    Mabini
    Grade 11 · TechPro
    General Mathematics Teacher available
    Statistics No teacher
    Effective Comm. Complete
    2 section(s) selected
    Cancel Generate
    1. Click @gi('magic') Generate Schedule at the top of the Scheduling page.
    2. Tick one or more Year Levels. Their sections are listed with their status.
    3. Tick the sections to fill, or Select all. Click a section to open its detail panel, which shows each subject as Teacher available, No free slot, No teacher or Complete.
    4. If some ticked sections were generated before, a review step asks what to do with each one:
      • Skip — leave the section as it is.
      • Lock & fill remaining — keep its entries and only fill what is missing.
      • Regenerate all — replace its generated entries. Entries added or edited by hand are kept.
    5. Click Generate.

    A summary appears in the Auto-Generate panel: how many entries were placed and how many sections are now Complete. Subject/section pairs that could not be placed (for example because no teacher is assigned or no slot is free) are reported as needing manual attention; fix the cause and generate again, or place them by hand.

    Check the three readiness indicators in the Auto-Generate panel first. Subject Coverage, Specialized Rooms and Grid Capacity should all be green for the best result. Full readiness breakdown opens the Readiness report.

    1. Click @gi('eraser') Remove Schedules.
    2. Tick the Year Levels, then the sections to clear (sections without entries cannot be ticked).
    3. Click Remove Schedules and confirm with Remove.

    This permanently erases every schedule entry of the selected sections, generated or added by hand. It cannot be undone, so create a backup first if you may need the old schedule.