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
- 1Completing a task with a recur_rule reads the previous row, computes nextOccurrence, and inserts a fresh task.
- 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.
- 3Monthly advances from the 1st then clamps, so a Jan-31 anchor cannot overflow into March and lands on Feb 28.
- 4A recurrence rule only means something with a due date to advance from — it is dropped otherwise.
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.'
- Missed occurrences stacking up as guilt
- Month-end recurrence overflowing into the wrong month
- Future phantom rows filling the calendar
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 →