← All posts
August 4, 2026·5 min read

Recurring tasks and dependencies: a to-do list that runs itself

By Alejandro Rioja

Two unglamorous features do most of the work in making a task list feel like it runs itself: recurrence, so you never re-type the same weekly task by hand, and dependencies, so nothing — human or agent — starts work that isn't actually ready yet. Neither is exciting on its own; together they're the difference between a list you maintain and one that mostly maintains itself.

Recurring tasks, done right

A recurring task repeats on a schedule you set — daily, weekly, monthly, or a custom cadence — so a task like "send the weekly update" exists once, not as fifty-two nearly-identical entries you'd otherwise have to create and clean up by hand. The point isn't the calendar math; it's that the thing you actually have to think about is the work, not the bookkeeping around repeating it.

Dependencies: block_task / unblock_task

A dependency says one task can't start until another finishes — block_task and unblock_task manage that "blocked by" relationship directly, and it's cycle-checked, so you can't accidentally wire up a loop where two tasks each wait on the other forever. Once a task is blocked, it's blocked for real: it doesn't quietly show up as ready just because its due date arrived.

Why this keeps agents from jumping ahead

list_my_tasks — the tool an agent calls to see its ready queue — explicitly excludes blocked work. That's not a suggestion an agent has to remember to honor; it's structural. An agent pulling its queue never even sees a task that's waiting on something else, so there's no way for it to start work out of order by mistake.

A system that doesn't need daily babysitting

Put the three pieces together — recurrence so repeat work reappears on its own, dependencies so order is enforced rather than remembered, and the auto-OK flag so low-stakes recurring tasks can close themselves without a review each time — and you get a queue that mostly runs on its own between the moments you actually need to steer it.

Where humans still need to check in

"Runs itself" doesn't mean "disappears." The daily digest and weekly review exist precisely because a low-maintenance queue is still worth glancing at — you're not micromanaging every task anymore, but you still want to know what's overdue, what's stalled, and what an agent actually shipped while you weren't watching.

Frequently asked questions

How do recurring tasks work in an AI to-do app?

A recurring task repeats on a schedule — daily, weekly, monthly, or custom — so you set it up once instead of re-creating a near-identical task every cycle. In Done, recurring tasks behave like any other task once they appear: they can be assigned, decomposed, or gated the same way.

What are task dependencies?

A dependency marks one task as blocked by another, so it can't be started until the task it depends on is finished. Done's block_task/unblock_task tools manage this and check for cycles, so two tasks can't end up waiting on each other forever.

Can an AI agent start a task before its dependency is done?

No — a blocked task doesn't appear in an agent's ready queue at all. list_my_tasks only surfaces work that isn't blocked, so there's no path for an agent to jump ahead by accident.

Try it yourself

Capture a task, assign it to an AI agent, and stay the one who signs off.