›
›
›
  1. docs
  2. ›
  3. byrcsc/laravel-checklist
1.x
Browse documentationOpenClose

Getting started

  • Introduction
  • Installation and setup
  • Quick start

Core concepts

  • Templates and versions
  • Items and sections
  • Checklist lifecycle
  • Answers and evidence
  • Conditional rules
  • Scoring
  • Recurring schedules
  • Audit history

Operations

  • Author a template
  • Run a checklist
  • Create a schedule
  • Customize notifications
  • Export and report
  • Verify audit history
  • Composing with sibling packages

Reference

  • Configuration
  • Builder API
  • Models and scopes
  • Events and notifications
  • Console commands
  • Enums and contracts
  • Testing
  • Troubleshooting

Getting started

  • Introduction
  • Installation and setup
  • Quick start

Core concepts

  • Templates and versions
  • Items and sections
  • Checklist lifecycle
  • Answers and evidence
  • Conditional rules
  • Scoring
  • Recurring schedules
  • Audit history

Operations

  • Author a template
  • Run a checklist
  • Create a schedule
  • Customize notifications
  • Export and report
  • Verify audit history
  • Composing with sibling packages

Reference

  • Configuration
  • Builder API
  • Models and scopes
  • Events and notifications
  • Console commands
  • Enums and contracts
  • Testing
  • Troubleshooting

byrcsc/laravel-checklist · 1.x

Recurring schedules.

Schedules create at most one due checklist per run and advance in their own timezone.

A schedule turns one template into recurring checklist instances. It is an ordinary Eloquent model that points at the template, not at one frozen version.

Frequencies describe a local recurrence

FrequencySupporting fieldBehavior
Dailynonerepeats each local day
Weeklyday_of_weekrepeats on Carbon weekday 0 to 6
Monthlyday_of_monthrepeats on day 1 to 31
EveryNDaysn_daysrepeats from the previous occurrence

next_due_at is stored in UTC. Calculation moves into the schedule's timezone, keeps its local time of day, and converts the next occurrence back to UTC.

When a weekly or monthly schedule omits its day field, saving derives it from next_due_at. A monthly day that does not exist is clamped to the month's last day, then returns to the requested day in a longer month.

Generation uses the latest published version

When a schedule becomes due, the generator resolves $schedule->template->currentVersion(). Future occurrences therefore use a newly published version while existing checklists remain pinned to their own versions.

A due schedule whose template has no published version is left in place and reported as skipped. Publishing later allows the same occurrence to run.

Missed periods collapse into one checklist

The generator creates at most one catch-up checklist, however many occurrences were missed. It advances next_due_at until it lies after the current time.

For every-N-days schedules, the phase is counted from the due occurrence, not from the time the command happened to run. A delayed command does not shift the future cadence.

Overlap policies control open work

AlwaysCreate creates the next checklist even when a previous one is pending or in progress.

SkipWhileOpen skips creation while the same schedule has open work. The schedule still advances, so skipped occurrences do not build a backlog.

Generation claims each occurrence with a conditional database update. Two command processes cannot create the same occurrence.

Due-soon and overdue are separate transitions

Every checklist with due_at, including one created manually, is eligible. Open work fires ChecklistDueSoon inside the configured lead window and ChecklistOverdue after the due date.

Each transition stamps a column before dispatch and fires once per checklist. A completed or reviewed checklist is excluded. An overdue checklist does not also receive a due-soon event.

What to read next

  • Create a schedule to persist one and register the generator command.
  • Console commands for generator output and scheduling.
  • Customize notifications to route due and overdue messages.
PreviousScoringNextAudit history
View source

On this page

  1. Frequencies describe a local recurrence
  2. Generation uses the latest published version
  3. Missed periods collapse into one checklist
  4. Overlap policies control open work
  5. Due-soon and overdue are separate transitions
  6. What to read next