Why recurring tasks pile up, and what a loop does instead

  • loops
  • recurring tasks

You set up your recurring tasks on a calm Sunday. Clean the bathroom every Monday. Water the plants every Wednesday and Saturday. Wipe the fridge every two weeks. Descale the kettle on the first of the month. Each one is reasonable on its own.

Then you get a cold, or a deadline, or a week away. When you open the app again, nine things are overdue. None of them is urgent and all of them are red. You spend twenty minutes dragging dates around, or you mark the lot as done without doing them, or you stop opening the app.

The app worked exactly as designed. The problem is the design.

A date on every task

Most to-do apps model a recurring task as one task with a repeat rule: every Monday, every 3 days, the 1st of the month. Good apps handle the edge cases well. Todoist, for example, won't leave a pile of copies of the same missed task, and it lets you choose whether the next date counts from the due date or from the day you finished.

The pile-up comes from the other direction. It isn't one task repeated ten times. It's ten different tasks, each with its own date, all falling due during the same bad week. Every rule fires on schedule, and nothing in the list knows that you only had capacity for two of them.

For work that really is tied to a date, that's correct. Rent is due on the 1st whether you were ill or not. The bins go out on collection day or they don't go out.

Most household and maintenance work isn't like that. The bathroom doesn't need cleaning on Monday. It needs cleaning roughly once a week, after the kitchen and before the bedroom, whenever you next have twenty minutes. The date was never a real requirement. You added it because the app needed a date to make the task come back.

Once a date is on the task, a missed date counts as a failure: the task turns red and the overdue counter goes up. Overdue items rank ahead of new ones, so the list reorders itself around what you didn't do.

What a loop keeps instead: the order

A loop in DoLoop is an ordered list of different tasks that you work through in turn. Say you have a Kitchen loop:

  1. Wipe counters and hob
  2. Clean the sink
  3. Wipe the fridge shelves
  4. Mop the floor

Only one task per loop is armed at a time, which means it is that task's turn. When you're ready to start your day you press Fill the todo!, and DoLoop arms the next task of each loop. It never arms anything on its own; filling your list is always your move.

Then you deal with the armed task in one of three ways:

  • Check: it's done. Its counter goes up. The next arming pass brings the next task from this loop.
  • Abort: not this time. The skip is recorded. The next arming pass advances this loop, so the skipped task doesn't block the ones behind it. It returns when the loop wraps.
  • Leave it: it stays armed. Next time you fill the todo, that loop is skipped because its current task is still waiting. You get the same task again, and nothing new is stacked on top of it.

When you reach the end of the list, the loop wraps and starts again at the first task.

The third option is the one that makes the difference. If you miss a week, each loop is still holding one task, the same one it held before. Nothing is overdue, because there was never a date, and when you come back the list is the same length as when you left.

Several loops, one task each

One loop alone would just be a slow checklist. You get the benefit when you run several side by side: Kitchen, Windows, Garden, Paperwork. Each one gives you its next task, which is the one that has waited longest in that loop. Four loops means one task per loop on your list, plus any subtask riding along, however long you were away.

DoLoop doesn't try to be clever about which task you get. There is no ranking and no algorithm guessing what matters. Each loop hands you the task it has not given you for the longest time, and in practice that is usually the one that needs doing.

Some jobs belong to a loop but come round less often. A subtask can ride along with its parent every N times you complete it: change the sheets every second time the bedroom comes up, or deep-clean the oven every fourth kitchen round. You set the ratio once and stop thinking about it.

Dates still exist where they make sense

Loops don't replace dates. DoLoop also has ordinary Schedule tasks for work that has a real date: certain days of the week, every N days, or a cron rule. For each one you decide what happens if you miss it:

  • Reschedule (keep armed): it stays on your list until you deal with it. Good for "renew the car insurance".
  • Drop (auto-abort): it is recorded as skipped and comes back on its next date. Good for "bins out", because the truck won't wait.

So the bins go on a schedule and the rooms go in a loop, and a bad week costs you one missed bin day.

What you can see afterwards

Every task keeps two counters: how many times it was checked and how many times it was aborted. After a month or two you can see which jobs you actually do and which ones you keep skipping. A task you abort every time is worth looking at again: maybe it needs splitting up, or maybe it should come out of the loop.

There are no streaks. A skipped day isn't something you can break, so there is nothing to protect and nothing to feel bad about. The counters describe what happened and don't judge it.

What DoLoop doesn't do

  • No reminders or notifications. Nothing appears until you press Fill the todo!, so DoLoop suits people who open a list each morning anyway.
  • It's a web app. Mobile apps are in testing and not in the app stores yet.
  • It's not an all-in-one planner. There's no calendar view and no habit tracker. You can keep your dated tasks in Todoist or TickTick and put your rotations in DoLoop.
  • Free covers 5 active tasks. Loops themselves don't count toward the limit. Pro removes the limit and adds the API and the MCP server; the pricing page has the details.

Try one loop

Pick the recurring work you push back most often, write its steps down in order, and make it a loop. If you want a starting point, the loop templates have three ready-made ones (a weekly home reset, a monthly admin session and a plant-care round) with setup steps.

Give it a week and you'll know whether "the next one, whenever I get to it" suits you better than "every Tuesday". DoLoop is available in English, French, German, Spanish, Italian and Chinese.

Sources

Todoist Help: introduction to recurring dates (checked 7 November 2026).

← All posts

Stop rebuilding the same to-do list

Set your loops up once and let them come back around.

Sign up