All help topics

Timetable

Teacher Substitutions

Manage daily teacher substitutions when teachers are absent, on vacation, or unavailable. Create substitution records that assign replacement teachers to specific periods, track substitution history, and communicate assignments to staff.

Start from the left sidebar navigation menu:

  1. Look for the "Timetable" menu item in the left sidebar
  2. Click to expand and find "Substitutions" submenu item
  3. Click on "Substitutions" to navigate to this page
  4. The page will load and display: header with title and description, quick stats cards, action buttons, and substitutions list grouped by date

Overview

The Substitutions page helps you manage temporary teacher coverage when regular teachers are unavailable. You can view statistics on total and active substitutions, create new substitution records through a guided wizard, see substitutions organized by date in an accordion view, email substitution lists to staff for any given day, edit existing substitution details, delete substitutions that are no longer needed, and load more historical substitutions as needed. Each substitution record tracks the date, period, class, subject, original teacher, substitute teacher, and reason for the absence.

When you assign cover, the system only offers teachers who are genuinely free for that period — ranked best-first with the strongest match at the front — and it re-checks availability at save time so a substitute can never be double-booked. Visiting teachers are not offered for substitution (school policy). See How Substitute Suggestions Are Chosen below.

Tasks

Read - View Substitution Statistics

Navigation: Start from sidebar -> Click "Timetable" -> Click "Substitutions" -> Page loads

Display Format: Three stats cards at the top:

  • Total Loaded (Calendar icon): Number of substitutions currently loaded in the view
  • Active (Clock icon, amber color): Number of substitutions with "ACTIVE" status
  • Review needed (Alert-circle icon, orange color): Number of substitutions with "INVALIDATED" status — these need attention because the underlying published period was changed via Edit Mode (see Timetable by Class → Edit Timetable). The card has a subtle orange accent when the count is non-zero.

Example: "When you open the page, stats show 'Total Loaded: 15', 'Active: 8', and 'Review needed: 2', meaning 15 substitutions are displayed, 8 are currently active, and 2 were invalidated because their underlying period was edited and now need re-verification."

Read - Understand Substitution Statuses

A substitution can be in one of four states:

  • ACTIVE: The substitution is in effect. A substitute is assigned (or pending assignment) and the cover applies on the substitution date.
  • COMPLETED: The substitution date has passed and the cover was carried out as planned. Historical record only.
  • CANCELLED: The admin manually cancelled the substitution (e.g., the original teacher returned earlier than expected, or the cover was no longer needed).
  • INVALIDATED: Auto-flagged by the system when the underlying published period was changed via Edit Mode. The note field on the substitution record carries a breadcrumb (e.g., "[Auto-invalidated 2026-04-26 14:32 UTC] Underlying published period was changed during a timetable edit. Please review and reassign if a substitute is still needed."). To resolve: open the substitution, decide whether the cover is still needed against the new period assignment, and either re-create it or leave it invalidated.

Why it matters: Past substitutions are immutable historical record — they capture what actually happened on a given date and never change. Future-dated active substitutions, however, depend on the published timetable to make sense. If you swap a period that already has a sub assigned for next week, the system can't know whether your intent is "the new teacher should still get covered" or "the old assignment is moot now" — so it flags it for your review rather than guessing.

Read - View Substitutions by Date

Navigation: Start from sidebar -> Click "Substitutions" -> View accordion list

Display Format: Substitutions grouped by date in collapsible accordions:

  • Date Header: Shows "Today", "Tomorrow", "Yesterday", or formatted date (e.g., "Mon, Feb 3")
  • Count Badge: Shows "X substitution(s)" for that date
  • Email Button: Mail icon button to email that day's substitutions
  • Expand/Collapse: Click header to expand and see the table

Expanded Content: Table with columns:

  • Period: Period name and time (e.g., "Period 1" with "8:00 AM - 8:45 AM")
  • Class: Grade name and section (e.g., "Grade 9 - A")
  • Subject: Subject name
  • Original: Name of the absent teacher
  • Substitute: Name of the replacement teacher (or "Not assigned" if none)
  • Reason: Badge showing reason (Absent, Vacation, Emergency, Personal)
  • Actions: Edit and Delete buttons

Default Open: Today and Tomorrow accordions are expanded by default.

Example: "Open the page to see 'Today' expanded with a table showing Period 1 Math for Grade 9A, originally taught by Mr. Smith, now covered by Ms. Johnson due to 'Absent'."

Read - View Reason Badges

Navigation: In the substitutions table -> View Reason column

Badge Colors:

  • Absent: Red badge (bg-red-50, text-red-600)
  • Vacation: Blue badge (bg-blue-50, text-blue-700)
  • Emergency: Amber badge (bg-amber-50, text-amber-700)
  • Personal: Default gray badge

Example: "A substitution with reason 'ABSENT' shows a red badge saying 'Absent', while 'VACATION' shows a blue badge saying 'Vacation'."

Create - Add New Substitution (Wizard)

Navigation: Start from sidebar -> Click "Substitutions" -> Click "Create Substitution"

Steps:

Step 1: Select Date

  1. Click Create: Click the blue "Create Substitution" button (has Plus icon)
  2. Dialog Opens: Wizard dialog appears titled "Create Substitution"
  3. Select Date: Click the date button to open calendar
  4. Choose Date: Click on the date when substitution is needed
  5. Calendar Closes: Selected date displays on the button

Step 2: Search and Select Teacher 6. Type Teacher Name: In the "Search Teacher" field, type the absent teacher's name 7. View Results: Matching teachers appear below 8. Select Teacher: Click on the teacher's name to select them 9. View Confirmation: Selected teacher's name displays with "Change" button

Step 3: View Periods and Select Substitutes 10. View Periods: Every period the absent teacher covers that day appears as a row — including any periods they co-teach, so a co-teacher's absence never leaves a shared period uncovered 11. Each Row Shows: Period name, time, subject, and grade 12. Suggested Substitutes: Each period lists the teachers who are provably free for it, shown as pills ranked best-first (subject expert → teaches that grade → lightest current load), capped at the top 10. Subject experts are tinted blue, and each pill shows that teacher's period count for the day (green = light, amber = busy, red = heavy). Hover a pill to see why it's suggested 13. Select Substitute: Click a teacher's pill to select them for that period 14. Selection Indicator: The selected teacher turns green with a checkmark

Step 4: Confirm and Save 15. Click Continue: After selecting substitutes, click "Continue" button 16. Review Summary: Confirmation screen shows all selections 17. Select Reason: Choose from dropdown: Teacher Absent, Teacher on Vacation, Emergency, Personal Leave 18. Add Notes: Optionally add notes in the text field 19. Click Confirm: Click "Confirm Substitutions" button 20. Processing: Button shows "Creating..." 21. Result: Dialog closes, success message appears, list refreshes

Required: Date, absent teacher, at least one period with substitute selected Reason Options: ABSENT, VACATION, EMERGENCY, PERSONAL Success Message: Substitutions are created and appear in the list

Example: "To cover Mr. Smith's absence on Monday: Click Create, select Monday's date, search 'Smith', select him, see his 4 periods, click 'Ms. Johnson' for Period 1, click 'Mr. Adams' for Period 2, continue, select 'Teacher Absent' as reason, and confirm."

Create - Select Multiple Substitutes

Navigation: Inside Create Substitution wizard -> Step 3

Steps:

  1. View All Periods: See all absent teacher's periods displayed as columns
  2. Period 1: Click on an available teacher to assign them
  3. Period 2: Click on a different (or same) teacher
  4. Period 3: Continue selecting for each period
  5. Counter Updates: Footer shows "X period(s) selected"
  6. Continue: Click Continue when done selecting

Note: You can select different teachers for different periods, or the same teacher for multiple periods if they're available.

Example: "Mr. Smith has 4 periods. Assign Ms. Johnson to Periods 1 and 2, Mr. Adams to Period 3, and Ms. Brown to Period 4. Footer shows '4 period(s) selected'."

Read - How Substitute Suggestions Are Chosen

Navigation: Inside Create Substitution wizard -> Step 3 -> Suggested substitutes per period

Only genuinely-free teachers are offered. A teacher appears for a period only when they are provably available for it. For that exact time of day, the system confirms the teacher:

  • Has no published class at that wall-clock time — even on a different bell schedule. Schools that run two schedules (for example a main schedule and an Early-Years schedule) often share the same clock times under different period numbers; a teacher busy at 10:00 on one schedule is correctly treated as busy at 10:00 on the other, so they are not offered.
  • Is not already substituting another period that overlaps that time, on any schedule.
  • Is a regular teacher — visiting teachers are never offered as substitutes (see Rules & Constraints).

Suggestions are ranked best-first. The free teachers are ordered by how well they fit, so the strongest cover is at the front:

  1. Subject expertise — a teacher who already teaches this subject ranks highest (their pill is tinted blue).
  2. Grade familiarity — among otherwise-equal teachers, one who teaches this grade (or a nearby grade level) ranks next.
  3. Lightest load — remaining ties break toward the teacher with the fewest periods already covering that day.

Why each teacher is suggested is on the pill. Each suggestion shows the teacher's first name and their period count for the day (green = light, amber = busy, red = heavy). A blue pill marks a subject expert. Hover any pill for the full name and the match reasons ("Subject expert", "Teaches this grade").

Capped at the ten best. At most 10 substitutes are offered per period. The top few show immediately; click the "N+" chip to expand the rest.

"No teachers available" appears when nobody is genuinely free for that period — the system offers no one rather than surfacing a teacher who would clash.

Example: "For Period 1, three teachers are free: Ms. Johnson (blue — she teaches this subject) leads, then Mr. Adams, then Ms. Brown. For Period 2 only Ms. Johnson is free, because everyone else has a class at that time — including a teacher who is busy on the other schedule at the same clock time."

Update - Edit Substitution

Navigation: Start from sidebar -> Click "Substitutions" -> Find substitution -> Click Edit

Steps:

  1. Expand Date: Click on the date accordion containing the substitution
  2. Find Row: Locate the substitution in the table
  3. Click Edit: Click the Edit button (pencil icon) in the Actions column
  4. Dialog Opens: Edit dialog appears with current values
  5. Modify Fields: Change substitute teacher, reason, or notes as needed
  6. Save: Click Save/Update button
  7. Result: Changes are saved, list refreshes

Example: "To change the substitute for Period 1 from Ms. Johnson to Mr. Adams: Find the substitution, click Edit, select Mr. Adams from the dropdown, and save."

Delete - Remove Substitution

Navigation: Start from sidebar -> Click "Substitutions" -> Find substitution -> Click Delete

Steps:

  1. Expand Date: Click on the date accordion
  2. Find Row: Locate the substitution to delete
  3. Click Delete: Click the Delete button (trash icon) in the Actions column
  4. Confirm Dialog: Browser confirmation asks "Are you sure you want to delete this substitution?"
  5. Confirm: Click OK/Yes to proceed
  6. Result: Substitution is removed from the list

Warning: Deletion is permanent and cannot be undone.

Example: "To remove an outdated substitution: Find it in the table, click Delete, confirm when prompted. The row disappears from the list."

Update - Refresh Substitutions List

Navigation: Start from sidebar -> Click "Substitutions" -> Click "Refresh"

Steps:

  1. Click Refresh: Click the "Refresh" button (has RefreshCw icon)
  2. Loading State: Icon spins while fetching
  3. Result: List updates with latest substitutions from database

Use Case: Use after another administrator makes changes, or to ensure you have current data.

Example: "Click Refresh to reload the substitution list after a colleague added new entries."

Update - Load More Substitutions

Navigation: Start from sidebar -> Click "Substitutions" -> Scroll to bottom -> Click "Load more"

Steps:

  1. Scroll Down: Navigate to bottom of substitutions list
  2. See Load More: If more data exists, "Load more" button appears
  3. Click Button: Click "Load more" (has ChevronDown icon)
  4. Loading State: Button shows "Loading..."
  5. Result: Additional substitutions load and appear in the list

Pagination: Substitutions load in batches. Load more to see older entries.

Example: "Initially see 20 substitutions. Click 'Load more' to fetch the next 20 older entries."

Update - Email Day's Substitutions

Navigation: Start from sidebar -> Click "Substitutions" -> Find date -> Click Email button

Steps:

  1. Find Date Row: Locate the date accordion you want to email
  2. Click Email: Click the Mail icon button in the accordion header
  3. PNG Downloads: A PNG image of the substitution table downloads automatically
  4. Email Opens: Default email client opens with pre-filled content:
    • Subject: "Substitution Schedule for [Date]"
    • Body: Greeting, date, numbered list of substitutions, closing
  5. Attach PNG: Attach the downloaded PNG to the email
  6. Send: Add recipients and send

Email Format:

Good Morning,

Here is a quick look at the substitution schedule for Monday, February 3, 2025.
Please report to the classes where you have been assigned as a substitute teacher.

1. Period 1 (8:00 AM - 8:45 AM) - Grade 9 A - Math: Mr. Smith -> Ms. Johnson
2. Period 2 (8:50 AM - 9:35 AM) - Grade 10 B - Science: Mr. Smith -> Mr. Adams

Thank you for your cooperation.

Best regards,
[School Name]

Example: "To notify staff about today's substitutions: Click the email button on Today's row, wait for PNG download, compose email with recipients, attach the PNG, and send."

Create - Assign Cover from the Mobile App

Navigation: TimeIt360 mobile app (signed in with an admin code) -> Subs tab

Admins can assign and save substitutions from their phone as well as from this page. The mobile Subs tab works like the wizard above, condensed into one screen, and it uses the same rules: only genuinely free teachers are suggested (ranked best-first, subject experts tinted blue, visiting teachers never offered), and availability is re-checked when you save, so a substitute can't be double-booked.

Steps:

  1. Pick the Date: Tap a day in the strip of the next 14 days (starting today — past dates aren't offered)
  2. Pick the Absent Teacher: Search and tap their name
  3. Pick a Reason: Absent (default), Vacation, Emergency, or Personal — applied to every period you save in that batch (the mobile app has no notes field)
  4. Tap a Substitute Pill: Under each of the teacher's periods, tap one suggested teacher (tap again to unselect)
  5. Save: Tap Save in the bar at the bottom. Each selected period is saved as its own substitution; the app reports Saved, Partly saved, or Could not save, listing any period that failed and why

Below the picker, Arranged for [date] lists every substitution already saved for that date — whether it was created on the web or on a phone. Tap the trash icon and confirm to remove one. Substitutions saved on the phone appear on this page like any other, and ones created here can be seen and removed on the phone.

Who can use it: Only admin codes can assign or remove substitutions on mobile. Teacher codes get a read-only Subs tab showing the periods they are covering and the periods of theirs that are being covered. Student/parent codes have no Subs tab; their timetable shows covers directly. See Mobile Companion App for issuing admin codes and the full mobile walkthrough.

Example: "Principal Mehta, away from her desk, opens the app with her admin code, taps tomorrow, searches 'Smith', taps Ms. Johnson for Period 1 and Mr. Adams for Period 2, and taps Save. Both covers now appear on the web Substitutions page."

Read - Substitution Notifications on Teachers' Phones

When a substitution that has a substitute assigned is saved — whether from this page's wizard or from an admin's phone — TimeIt360 sends a push notification to the teachers involved, provided they have the mobile app installed, are signed in with their own teacher code, and allowed notifications:

  • The covering teacher receives "New substitution assigned", naming the subject, class, period, date, and the teacher they are covering for.
  • The absent teacher receives "Your class will be covered", naming who will cover which period on which date.

What to know:

  • Notifications go to teacher codes only; admin and student/parent codes aren't notified.
  • Removing or editing a substitution does not send a notification, and the app does not send reminders before class.
  • Notifications are a convenience on top of the save: if one can't be delivered, the substitution is still saved. The email button above remains the way to send a whole day's list to staff.

Buttons & Controls

  • Create Substitution (Blue Primary Button with Plus Icon): Opens the 4-step wizard to create new substitutions. Located at top of page.
  • Refresh (Secondary Button with RefreshCw Icon): Reloads substitution data from database. Icon spins during loading.
  • Email Button (Ghost Button with Mail Icon): Opens email with that day's substitutions. Located in each date accordion header.
  • Accordion Header (Clickable): Expands/collapses the date section. Shows date label and count.
  • Edit Button (Icon Button with Pencil): Opens edit dialog for that substitution. Located in Actions column.
  • Delete Button (Icon Button with Trash): Deletes the substitution after confirmation. Located in Actions column.
  • Load More (Ghost Button with ChevronDown): Fetches additional older substitutions. Located at bottom when more data exists.
  • Date Picker Button (in Wizard): Opens calendar to select substitution date.
  • Teacher Search Input (in Wizard): Filters teachers by name as you type.
  • Teacher Selection Cards (in Wizard): Clickable cards to select absent teacher or substitute.
  • Reason Dropdown (in Wizard): Selects absence reason (Absent, Vacation, Emergency, Personal).
  • Continue Button (in Wizard): Proceeds from period selection to confirmation.
  • Back Button (in Wizard): Returns to previous wizard step.
  • Confirm Substitutions Button (in Wizard): Saves all substitutions. Shows "Creating..." while processing.

Visual Elements

  • Stats Cards: Two cards at top showing Total Loaded and Active counts with icons.
  • Date Accordion: Collapsible section for each date with header showing date label and count badge.
  • Count Badge: Gray badge showing "X substitution(s)" in accordion header.
  • Reason Badges: Colored badges indicating absence reason:
    • Red (Absent)
    • Blue (Vacation)
    • Amber (Emergency)
    • Gray (Personal)
  • Substitution Table: Table with Period, Class, Subject, Original, Substitute, Reason, Actions columns.
  • Period Column: Shows period name (bold) with time range below (smaller text).
  • "Not assigned" Text: Gray italic text when no substitute is assigned yet.
  • Wizard Dialog: Modal with icon header, step content, and footer with action buttons.
  • Calendar Picker: Pop-up calendar for selecting dates, shows month navigation.
  • Teacher Selection Cards: Cards that turn blue when selected with name display.
  • Period Rows (in Wizard): Each of the absent teacher's periods shown as a row (time, subject, grade) with its ranked substitute pills alongside.
  • Selected Teacher Indicator: Green background with UserCheck icon when substitute is selected.
  • Loading Spinner: Animated spinner shown during data fetching.
  • Empty State: Message "No Substitutions" with Calendar icon when no data exists.
  • Progress Counter: "X period(s) selected" text in wizard footer.

Form Fields Reference

In Create Wizard:

  • Substitution Date: Date picker, required, cannot be in the past. Format: "Monday, February 3, 2025"
  • Search Teacher: Text input, filters teacher list as you type. Placeholder: "Type teacher name..."
  • Teacher Selection: Click to select, shows visual highlight when selected
  • Substitute Selection: Click available teachers under each period to assign
  • Reason Dropdown: Select list with options:
    • Teacher Absent
    • Teacher on Vacation
    • Emergency
    • Personal Leave
  • Notes: Optional text field for additional information. Placeholder: "Add notes..."

Search Field:

  • Type: Text input
  • Purpose: Filters absent teachers by name
  • Example: Type "Smith" to find "John Smith", "Sarah Smith", etc.

Alerts & Errors

  • "No Substitutions": Empty state message when no substitutions exist. Shows Calendar icon.
  • "Click 'Create Substitution' to add one": Guidance in empty state.
  • "Loading substitutions...": Text with spinner during initial load.
  • "Loading...": Button text during Load More operation.
  • "Creating...": Button text while saving new substitutions.
  • "Are you sure you want to delete this substitution?": Browser confirmation for deletion.
  • "No periods found for this teacher on this day": Warning in wizard if teacher has no classes.
  • "No teachers available": Text shown for a period when no substitutes are genuinely free for that slot.
  • "Could not save. One or more substitutes may no longer be available — reopen and re-check.": Shown when a chosen substitute stopped being free between selection and save (for example, assigned in another tab). The save is rejected and nothing is written — reopen the wizard and pick again.
  • Error Alert: Red alert showing error message if data fetch fails.

Rules & Constraints

  • Date Must Be Today or Future: Cannot create substitutions for past dates

    • What's Valid: Today, tomorrow, next week, any future date
    • What's Invalid: Yesterday, last week
    • Calendar Restriction: Past dates are disabled in the date picker
  • Teacher Must Have Classes on Selected Day: Can only substitute for periods where the teacher is scheduled

    • What Happens: If teacher has no classes on selected date, wizard shows "No periods found"
    • Example: Selecting Saturday for a teacher who only works weekdays shows no periods
  • Substitute Must Be Genuinely Free: Can only assign teachers with no conflict at that time — and the check is by wall-clock time, so a teacher busy on another bell schedule at the same clock time (or already substituting an overlapping period) counts as unavailable

    • What's Valid: Teachers with no published class and no existing substitution at that time, on any schedule
    • What's Invalid: Teachers already teaching, or already substituting, an overlapping slot — on any schedule
    • Display: Only genuinely-free teachers appear in the suggestions
    • Re-checked on save: Availability is verified again the moment you confirm. If a chosen substitute stopped being free between selecting and saving (for example, another admin assigned them in a second tab), the save is rejected and nothing is written — so a double-booking can't slip through
  • Visiting Teachers Are Never Offered as Substitutes: By school policy, visiting (part-time) teachers are excluded from substitute suggestions entirely — they never appear in the list, and the system refuses to assign one even if it is reached another way

    • Why: Substitution cover is reserved for regular staff; a visiting teacher's limited availability makes them unsuitable for stand-in cover
    • What Changed: Previously a visiting teacher who happened to be free could be offered and assigned; now they are never suggested for a substitution
    • Scope: This applies only to substitutions — visiting teachers are still scheduled normally in the generated timetable
  • At Least One Period Required: Must select at least one substitute to create substitution

    • What Happens: Continue button may be disabled without selection
    • Example: Selecting 0 periods won't allow proceeding to confirmation
  • Reason Is Required: Must select an absence reason before confirming

    • Options: ABSENT, VACATION, EMERGENCY, PERSONAL
    • Default: No default selected - must choose one
  • Deletion Is Permanent: Deleted substitutions cannot be recovered

    • Warning: Browser confirmation before deletion
    • No Undo: No way to restore deleted substitutions
  • Substitutions Are Day-Specific: Each substitution is for one specific date

    • Not Recurring: Must create separate entries for each day
    • Example: Teacher absent Monday and Tuesday needs 2 separate substitution records
  • One Substitute Per Period: Each period can only have one substitute assigned

    • What Happens: Selecting a new substitute replaces the previous selection
    • Example: If you click Ms. Johnson then Mr. Adams for Period 1, only Mr. Adams is selected

Tips & Notes

  • Check Date First: Always verify you've selected the correct date before searching for teachers.
  • Today/Tomorrow Auto-Expand: The accordion for Today and Tomorrow are expanded by default for quick access.
  • Email Feature Saves Time: Use the email button to quickly notify all staff about a day's substitutions.
  • Phones Get a Heads-Up Too: Teachers with the mobile app are notified automatically when they are assigned as a substitute or when their class is covered — see Substitution Notifications on Teachers' Phones above.
  • Cover From Anywhere: An admin with the mobile app can assign covers from their phone when away from a computer — see Assign Cover from the Mobile App above.
  • PNG Attachment: The email feature downloads a PNG image that can be attached for visual reference.
  • Multiple Substitutes OK: You can assign different substitutes for different periods of the same absent teacher.
  • Suggestions Are Ranked, Not Alphabetical: The first teacher offered for a period is the best fit — subject expert first, then grade familiarity, then lightest load — so you can usually take the leading suggestion with confidence.
  • Co-Taught Periods Are Covered Too: If the absent teacher shares any periods with a co-teacher, those periods appear in the list as well, so a co-teacher's absence no longer leaves a shared class without cover.
  • Visiting Teachers Won't Appear: Substitute suggestions include regular staff only — visiting teachers are excluded by policy, so don't look for them in the list.
  • You Can't Double-Book a Substitute: Availability is checked by wall-clock time (across every schedule) and re-checked again when you confirm, so the system won't let you place one teacher in two overlapping periods.
  • Refresh After Changes: If working with multiple administrators, use Refresh to see others' changes.
  • Load More for History: Use Load More to access older substitution records for reporting.
  • Reason Tracking: Selecting accurate reasons helps with attendance tracking and reporting.
  • Notes for Details: Use the optional notes field to add context like "Doctor's appointment" or "Family emergency".
  • Edit vs Delete: If the substitute changed, use Edit. If the absence was cancelled, use Delete.
  • Date Labels Help: "Today", "Tomorrow", "Yesterday" labels make it easy to find recent substitutions.
  • Active Count: The "Active" stat shows how many substitutions are currently in effect (not cancelled or completed).
  • Search Is Fast: The teacher search filters as you type - no need to click a search button.
  • Calendar Navigation: Use the calendar's month arrows to navigate to future dates for planned absences.