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.
- Lesson -- The lesson to be taught (optional at creation, can be assigned later).
- Status -- The current state of the schedule.
Schedule Statuses
| Status | Meaning |
|---|---|
| Draft | The schedule is being planned and is not yet finalized. |
| Scheduled | The schedule is set with a teacher assigned. |
| Confirmed | The teacher has confirmed they will teach this session. |
| Needs Substitute | The assigned teacher has requested a substitute. |
| 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. |
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.
Through the Class Detail Page
- Open the class from the Classes list.
- Use the teacher management section to add or change teachers.
- 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
TimelyChurch includes a built-in confirmation workflow to ensure teachers are aware of and have accepted their assignments.
How It Works
- Admin creates a schedule with a teacher assigned.
- Confirmation is requested -- The system sends a notification to the teacher asking them to confirm.
- Teacher responds via the portal:
- Confirm -- The teacher accepts the assignment. The schedule status updates to "Confirmed."
- Decline -- The teacher cannot teach. They provide a reason, and the schedule automatically changes to "Needs Substitute."
Automated Reminders
The system sends automated reminders for unconfirmed schedules:
- 4-day reminder -- Sent 4 days before the scheduled date if the teacher has not yet responded.
- 2-day reminder -- Sent 2 days before the scheduled date if still unconfirmed.
Each reminder is sent only once and is tracked to prevent duplicate notifications.
Confirmation via Email
Teachers can confirm or decline directly from their email notification using a secure, unique confirmation token. This allows teachers to respond without needing to log in to the portal.
Lesson Assignment
Teachers and admins can assign lessons to schedules in several ways:
Admin Assigns a Lesson
- When creating or editing a schedule, select a lesson from the lesson library.
- Only approved lessons are available for selection.
Teacher Selects a Lesson
If the "Teacher Picks Lesson" option is enabled on a schedule:
- The teacher receives a notification that they need to select a lesson.
- They browse the lesson library from the portal.
- 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:
- From the portal, they choose to propose a new lesson for their schedule.
- They fill in the lesson title, description, and scripture reference.
- The proposal is submitted with a "Pending" status.
- 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:
- Teachers can create new lessons directly from the portal.
- If approval is required, the lesson starts as a Draft.
- 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):
- Create a schedule entry for the date.
- Enable the Holiday flag.
- 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:
- Find the schedule entry.
- Click Mark as Taught.
- The status changes to "Completed."
- 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.
- Use the confirmation workflow -- Enable confirmations so you always know which teachers have committed to their assignments.
- 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.