Natural Language → Todo.txt

Type a task the way you'd say it and get a clean todo.txt line: priority, +projects, @contexts and a due date, parsed deterministically in your browser.

Try:
todo.txt

Plain English in, todo.txt out

Type a task the way you'd say it out loud and this tool rewrites it as a single todo.txt line — the plain-text task format you can keep in any editor, sync with Dropbox, and open in dozens of apps. It reads the priority, the +project, the @context and the deadline straight out of your sentence, so you never have to remember the syntax.

Everything runs locally in your browser. There is no LLM, no account and no upload — the same plain sentence always produces the same line, because the parsing is deterministic.

Worked example

Input:

Call the plumber urgent tomorrow +house @phone

With the reference date set to 2026-07-28, the output is:

(A) call the plumber +house @phone due:2026-07-29

Paste several lines to convert a whole brain-dump at once — one todo.txt line comes back per input line.

What it recognises

FAQ

What is the todo.txt format?

todo.txt is a simple, future-proof convention for one task per line in a plain text file. A line can carry a priority in parentheses at the start ((A) is highest), an optional creation date, the task text, +project and @context tags, and key:value pairs such as due:2026-08-01. Because it's just text, it works in any editor and in a wide range of task apps and command-line tools.

How are relative dates like "tomorrow" or "next Friday" resolved?

They're measured from the reference date field, which defaults to today. So with the reference date on a Tuesday, "next Friday" resolves to that week's Friday and "in 3 days" adds three days. Set the reference date explicitly to get reproducible output regardless of when you run the tool — handy for tests and for backdating a brain-dump.

Can I convert a whole list at once?

Yes. Put one task per line in the task box and each non-blank line becomes its own todo.txt line. Leading bullets, checkboxes (- [ ]) and numbering are stripped automatically, so you can paste a Markdown checklist or a numbered list straight in.

What if my task has no date or no priority?

Nothing is invented. A line only gains a due: date when it actually contains a recognised date phrase, and a priority only when a priority cue is present. A plain "buy milk" stays "buy milk" (optionally with a creation date and any default project/context you set).

How do I turn off date or priority detection?

Uncheck Detect due date to keep date words in the title and add no due: key, or uncheck Detect priority to leave the title verbatim with no leading (A). This is useful when a task legitimately mentions a day name or the word "important" that you don't want interpreted.

Limits & notes

Developer & Automation Access

Run it from the terminal

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

gizza tool natural-language-task "Call the plumber urgent tomorrow +house @phone"

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/natural-language-task/?text=Call%20the%20plumber%20urgent%20tomorrow%20%2Bhouse%20%40phone&reference_date=today&add_creation_date=true&detect_priority=true&detect_due=true&project=house&context=phone

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