Teacher Scheduling

Teacher Scheduling

Teacher scheduling in TimelyChurch connects teachers, classes, and lessons on specific dates. The scheduling system supports teacher assignment, confirmation workflows, lesson selection, prep task management, and holiday handling.


How Scheduling Works

Schedules are created through the Events module (Event Hub) and link to the class system. Each schedule record represents a single class session on a specific date and includes:

  • Class -- Which class is being taught.
  • Date -- The date of the class session.
  • Teacher -- The assigned teacher, if one is locked in yet.
  • Lesson -- The lesson to be taught (optional at creation, can be assigned later).
  • Status -- Whether the session still needs a teacher, is cancelled, is done, or falls on a holiday. Whether the assigned teacher has actually confirmed is a separate signal -- see below.

Schedule Statuses

Status Meaning
Scheduled A session exists for this date, whether or not a teacher has confirmed yet.
Needs Substitute The confirmed teacher can no longer make it and the class is looking for coverage. See Substitute Teacher Requests.
Cancelled The class session has been cancelled.
Completed The class session has been taught (marked as completed).
Holiday The date is a holiday and no class will be held.

Confirmation isn't a schedule status. It rides the same serving invitation every team in your church uses -- see the Teacher Confirmation Workflow below. The class detail page shows each session's teacher with a small "Confirmed" or "Not confirmed yet" note underneath their name.


Assigning Teachers to Classes

At Class Creation

When you create a new class, you can select teachers during the creation process. These teachers are assigned as leaders of the class -- and the first (primary) leader is who gets automatically invited to teach when a session for that class is created.

Through the Class Detail Page

  1. Open the class from the Classes list.
  2. Use the teacher management section to add or change teachers.
  3. Teachers assigned to a class are available as the default teachers when creating schedules for that class.

On Individual Schedules

Teachers can also be assigned directly to individual schedule entries, overriding the class's default teachers. This is useful for one-off assignments or when a regular teacher is unavailable.


Teacher Confirmation Workflow

There's no separate teacher-only confirmation system anymore. A class's teacher is invited, reminded, and confirmed through the same serving engine every team in your church rides for its own positions -- "Teacher" is simply a position on the class, the way "Greeter" or "Sound" is a position on a team.

  1. A class event is created (or a session is added) — the class's primary leader is invited as teacher automatically, or an admin picks a specific teacher from the class detail page.
  2. The teacher gets a personal invitation — on Telegram if linked, by email otherwise — and can confirm or decline in one tap, or from their portal schedule.
  3. Confirm locks them in; Decline (or silence, see below) hands the slot to the replacement flow automatically. That only applies to an invitation nobody has answered yet -- once a teacher HAS confirmed and later needs to back out, that's a different flow: see Substitute Teacher Requests.

Automated Reminders — Now Yours to Tune

Unconfirmed teachers are re-pinged on the days the CLASS group configures under Scheduling settings → Remind unconfirmed people — the default is the classic 4 days and 2 days before the session, and each class can pick its own days (say, 5 and 1). One reminder per day at most.

When a Teacher Doesn't Respond

Enable Move on when someone does not respond on the class group and set a response deadline: an invitation that stays unanswered past the deadline expires and the system invites the next eligible person automatically — declines and silences share the same attempt budget. See Cascade Auto-Fill, Sub Invites, and Fill Requests.

If nobody in rotation picks up the slot before anyone ever confirms, the system opens a substitute request the same way it would for any other team position -- see Substitute Requests. That's a different, earlier-stage mechanism from the one covered in Substitute Teacher Requests below, which is what a teacher uses once they've already confirmed and then need to back out.


Lesson Assignment

Teachers and admins can assign lessons to schedules in several ways:

Admin Assigns a Lesson

  1. When creating or editing a schedule, select a lesson from the lesson library.
  2. Only approved lessons are available for selection.

Teacher Selects a Lesson

If the "Teacher Picks Lesson" option is enabled on a schedule:

  1. The teacher receives a notification that they need to select a lesson.
  2. They browse the lesson library from the portal.
  3. They select a lesson and it is assigned to the schedule.

Teacher Proposes a Lesson

If a teacher wants to teach content that is not yet in the library:

  1. From the portal, they choose to propose a new lesson for their schedule.
  2. They fill in the lesson title, description, and scripture reference.
  3. The proposal is submitted with a "Pending" status.
  4. An admin reviews the proposal and can:
    • Approve -- The lesson is created in the library and assigned to the schedule. The teacher is notified.
    • Reject -- The teacher is notified with the reason for rejection and can submit a revised proposal.

Teacher Creates a Lesson

If "Allow teachers to create lessons" is enabled in Lesson Settings:

  1. Teachers can create new lessons directly from the portal.
  2. If approval is required, the lesson starts as a Draft.
  3. Once approved, it becomes available for scheduling.

Lesson Needed Notifications

When a schedule has a teacher assigned but no lesson selected, the system automatically notifies the teacher that they need to choose a lesson. This notification is triggered when:

  • A new schedule is created with a teacher but no lesson.
  • A teacher is newly assigned to an existing schedule that has no lesson.
  • A lesson is removed from an existing schedule.

Notifications are not sent for past schedules or holidays.


Prep Tasks

Schedules can have associated preparation tasks to help teachers get ready for their class.

What Are Prep Tasks

Prep tasks are to-do items linked to a specific schedule. Examples include:

  • "Print worksheets for the lesson"
  • "Set up classroom with craft supplies"
  • "Prepare snack for 15 kids"

Prep Task Fields

Each task includes:

  • Title -- What needs to be done.
  • Description -- Additional details.
  • Task Type -- The kind of preparation needed.
  • Quantity -- How many of something are needed (if applicable).
  • Assigned To -- Who is responsible for this task.
  • Due Date -- When the task should be completed.
  • Priority -- Low, normal, or high.
  • Estimated Time -- How many minutes the task is expected to take.
  • Status -- Pending, completed, or skipped.

Tracking Prep Tasks

  • The schedule shows a completion percentage for all prep tasks.
  • Overdue tasks are flagged automatically.
  • Tasks marked as needing attention appear in the admin's attention queue.

Holiday Handling

To mark a date as a holiday (no class):

  1. Create a schedule entry for the date.
  2. Enable the Holiday flag.
  3. Optionally enter the holiday name (e.g., "Easter Sunday" or "Christmas Break").

Holiday schedules:

  • Do not require a teacher or lesson.
  • Display the holiday name instead of a status.
  • Are excluded from "needs attention" reports.
  • Do not trigger lesson-needed notifications.

Marking a Session as Taught

After a class session has been completed:

  1. Find the schedule entry.
  2. Click Mark as Taught.
  3. The status changes to "Completed."
  4. Clicking again toggles it back to "Scheduled" if marked by mistake.

When a lesson is marked as taught, the lesson's teach count is incremented and its "last taught at" date is updated.


Schedule Visibility and Materials Access

Public Visibility

Each schedule can control what information is visible to the public. The public_visibility field on the Schedule model accepts one of four values, matching the constants defined on App\Models\Schedule:

UI Label Stored Value Constant Behavior
Global Default null PUBLIC_VISIBILITY_GLOBAL Uses the church-wide visibility setting. This is the default for new schedules.
Public 'public' PUBLIC_VISIBILITY_PUBLIC Lesson details are visible on public-facing pages.
Private 'private' PUBLIC_VISIBILITY_PRIVATE Lesson details are hidden from public view.
Limited 'limited' PUBLIC_VISIBILITY_LIMITED Only basic information (date, class name) is shown; lesson title, description, and attachments are hidden.

Per-field overrides (e.g., "show title but hide description for this one schedule") are stored in the visibility_overrides JSON column and merge with the church-wide defaults when the public page is rendered.

Materials Access

Control how lesson attachments and materials are accessible. The materials_access_mode field (with optional materials_pin) on each schedule maps to these four constants:

UI Label Stored Value Constant
Inherit (Church Default) null MATERIALS_ACCESS_INHERIT
Public 'public' MATERIALS_ACCESS_PUBLIC
PIN Protected 'pin_protected' MATERIALS_ACCESS_PIN_PROTECTED
Hidden 'hidden' MATERIALS_ACCESS_HIDDEN

When PIN Protected is selected, the schedule's materials_pin field is checked first. If it is empty, the church-wide public_materials_pin (set in Public Sharing settings) is used as a fallback. PINs can therefore be configured at two levels: per-schedule or church-wide.

For instructions on enabling and branding the public lesson page (where this PIN protection takes effect), see Public Lesson Sharing.


Tips for Effective Scheduling

  • Schedule in advance -- Set up schedules several weeks ahead so teachers have time to prepare.
  • Trust the confirmation status -- Every teacher invite rides the same Confirm/Decline every serving position uses, so the class detail page always tells you who has actually committed and who hasn't answered yet.
  • Leverage prep tasks -- Add prep tasks to schedules so nothing falls through the cracks.
  • Monitor "Needs Attention" items -- Schedules with no teacher, no lesson, or needing a substitute are flagged automatically.
  • Mark holidays early -- Add holiday entries to the schedule so teachers can plan around breaks.

We use cookies to personalize your experience. By continuing to visit this website you agree to our use of cookies

More