Recurring Task Expander

Paste a task list with recurrence tags like rec:1w, rec:+2m or rec:mon,thu and get the next concrete dated instances — as plain todo.txt lines, a Markdown checklist, JSON or CSV. Everything runs in your browser; nothing is uploaded.

Try:
Expanded tasks

About this tool

recurring-task-expander turns lightweight recurrence tags into concrete dated task lines. Paste a todo-style list with tags such as rec:1w, rec:+2m, rec:mon,thu or rec:weekdays, choose a start date and count, and the tool emits the next real due:YYYY-MM-DD instances.

The syntax follows common todo.txt recurrence conventions. A plain recurrence such as rec:1w is completion-based: if the task is already overdue, the next series starts from the start date. A strict recurrence such as rec:+1m keeps the original due-date grid and skips past dates, which is what you usually want for rent, invoices and calendar-like obligations.

Lines without a rec: tag pass through unchanged unless you set default_rec. Priorities, projects and contexts stay in the task text; only rec: and the old due: tag are removed before the new due date is appended.

Supported recurrence values

Limits and edge cases

FAQ

What is the difference between `rec:1w` and `rec:+1w`?

rec:1w is completion-based. If the task is overdue, the next generated occurrence starts from the start date. rec:+1w is strict: it keeps the original due: date grid and skips occurrences before start. Use strict recurrence for bills and deadlines that should stay on a fixed calendar rhythm.

Can I generate Monday/Thursday tasks without writing dates myself?

Yes. Use a weekday pattern such as rec:mon,thu. From the chosen start date, the tool walks forward and emits each matching weekday. It also accepts aliases such as weekdays, weekends and daily.

Does this update my task manager automatically?

No. It is a deterministic expander and exporter. Copy the text or Markdown output back into your task list, or use JSON/CSV output in an automation. It does not store tasks, mark anything complete or send reminders.

What happens to projects, contexts and priorities?

They are preserved as ordinary text. For example (A) Pay rent +home @bank due:2026-09-01 rec:+1m becomes (A) Pay rent +home @bank due:2026-09-01, then the next due dates are appended for later instances.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool recurring-task-expander "Pay rent due:2026-09-01 rec:+1m
Water plants rec:1w
Gym rec:mon,thu
Quarterly review due:2026-09-30 rec:+3m"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/recurring-task-expander/?tasks=Pay%20rent%20due%3A2026-09-01%20rec%3A%2B1m%0AWater%20plants%20rec%3A1w%0AGym%20rec%3Amon%2Cthu%0AQuarterly%20review%20due%3A2026-09-30%20rec%3A%2B3m&start=2026-08-08&count=5&default_rec=1w&skip_weekends=true&format=text

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.