Recurring tasks

Daily, weekday, weekly, fortnightly or monthly — completing one occurrence creates the next with the same reminder offset and the same assignee.

What it is

Recurrence expands one occurrence at a time on completion, not on a cron. The next row carries the same title, notes, assignee, priority, channels, context, detail facts and checklist (reset to undone), with due and reminder advanced by the rule and the reminder keeping its distance from the due date.

Also called: repeating task · every Monday · weekly reminder · recurring to-do

See it
Recurring tasks
Area
Operations
Group
Tasks & reminders
System
Task Hub
Solves
3 named problems
01Completing a task with a recur_rule reads the previous row, computes nextOccurrence, and inserts a fresh task.
02The next occurrence is strictly after BOTH the old due date and now, so completing something three weeks late schedules the next real occurrence, not three stale ones.
03Monthly advances from the 1st then clamps, so a Jan-31 anchor cannot overflow into March and lands on Feb 28.
The Repeat Select in the composer with its explainer line, and a list row carrying the '↻ every week' marker. TaskComposer.tsx / TaskHub.tsx. Sample data — no customer information appears here.
How it works
  1. 1Completing a task with a recur_rule reads the previous row, computes nextOccurrence, and inserts a fresh task.
  2. 2The next occurrence is strictly after BOTH the old due date and now, so completing something three weeks late schedules the next real occurrence, not three stale ones.
  3. 3Monthly advances from the 1st then clamps, so a Jan-31 anchor cannot overflow into March and lands on Feb 28.
  4. 4A recurrence rule only means something with a due date to advance from — it is dropped otherwise.
Why we built it

Migration 176 explains the shape: 'A recurring task is expanded ONE occurrence at a time: completing this one inserts the next. No cron, no rule engine, no phantom future rows clogging the calendar — the calendar shows the occurrence you actually owe.' The strictly-after rule is spelled out in taskRecurrence.ts: 'the next "every Monday" is next Monday, not the three Mondays they already missed stacked on top of it.'

The problem
  • Missed occurrences stacking up as guilt
  • Month-end recurrence overflowing into the wrong month
  • Future phantom rows filling the calendar
Sound familiar?
What you get
A standing routine that never accumulates backlog
The reminder offset survives every occurrence

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →