A normal calendar reminder is good at answering one question: what date did I originally choose?
That is not always the question a recurring maintenance task needs to answer.
Imagine an HVAC filter that should be changed every 90 days. The reminder fires on June 1, but life gets in the way and the filter is actually changed on June 18. If the next reminder stays anchored to the old calendar date, it arrives on August 30—only 73 days after the real change.
After a few late completions, the schedule no longer describes the physical task. It describes an idealized calendar that never happened.
A completion-relative model
For many household jobs, the useful rule is simple:
nextDue = completedAt + interval
The recurrence begins when the work is completed, not when it was planned.
In pseudocode:
function completeTask(task, completedAt) {
task.history.push(completedAt)
task.nextDue = addInterval(completedAt, task.interval)
task.status = "scheduled"
}
If the user does not complete the task, it should remain overdue. Silently advancing an incomplete task makes the interface look tidy while losing the most important bit of truth: the work still needs doing.
Why this small distinction matters
1. The schedule stops drifting away from reality
Filters, descaling, cleaning, inspections, and similar jobs are tied to the last time they were performed. A completion-relative schedule mirrors that relationship.
2. Overdue becomes meaningful
An overdue item is not an error state to clear automatically. It is an open loop. Keeping it visible until completion is often more honest and more useful than rolling it into the next period.
3. The history becomes evidence
Storing the actual completion date gives the user a simple record:
- when the filter was changed
- when the smoke-alarm test was performed
- when a machine was cleaned
- how often a job really happens
That is more valuable than a collection of dismissed notifications.
Calendar-relative recurrence still has a place
Completion-relative scheduling is not correct for everything.
Tasks tied to a fixed season or compliance date should stay calendar-relative. “Test before winter,” “renew by December 31,” or “inspect on the first Monday of each month” describe calendar rules, not elapsed-time rules.
A practical reminder system can therefore model two recurrence types:
- Calendar-relative: the next date follows a calendar rule.
- Completion-relative: the next date follows the actual completion time.
For a focused product, supporting only the second model can also be a deliberate choice—as long as the interface says clearly what it does.
Product choices around the scheduling rule
The formula is the easy part. The surrounding behavior is where a reminder app becomes trustworthy.
Do not auto-complete. A notification delivery is not proof that the work happened.
Make completion fast. If recording the work takes several screens, people will dismiss the notification and forget to update the task.
Show the next date immediately. After completion, the user should see the newly calculated due date and understand what changed.
Keep editing possible. People make mistakes. A wrong interval or completion date should be correctable.
Avoid pretending to diagnose the home. A reminder can help someone remember a task without claiming to know the correct maintenance interval for every appliance, climate, warranty, or household. The user should choose an interval based on their own manual or professional guidance.
The Android app I built around this idea
I am an indie developer, and I built Maintenance as a small Android app for this exact workflow. You add a recurring household job, mark it done when it is actually done, and the next due date resets from that completion.
It is intentionally narrower than a home-management platform. It does not diagnose equipment, choose maintenance intervals for you, or replace manuals and professionals. The goal is simply to make recurring jobs harder to lose track of.
If this is a problem you have, I would genuinely value a few real-world testers. The app is free on Google Play:
There is also a short explanation of the workflow here:
I am especially interested in whether completion-relative scheduling feels natural without explanation, and which recurring home task you would add first. No call or signup interview required—comments or a short message are more than enough.
Top comments (0)