Fast, focused plain‑text task management with todo.txt compatibility and a modern, offline‑capable web experience.
Todour keeps the simplicity of todo.txt while adding helpful affordances like quick tags, saved searches,
boards, a calendar, shared projects, and PWA/offline support. Tasks are always stored as plain content and parsed into
structured fields for filtering and views.
+projects, @contexts, and extras like due:, t:, rec:, remind:.+project, @context, @todour-unread for tasks with unread comments, due:, !negation, and || (OR).remind:YYYY-MM-DDTHH:MM.(A) 2025-11-15 Call dentist @phone +personal due:2025-11-20
Buy groceries +home @errands t:+1d
Weekly report +work rec:+1w
Use rec: to create the next instance automatically when you complete a task.
Two forms are supported:
rec:+1w: strict – anchor from existing dates. If the task has due: (or t:), the next one is scheduled by shifting that existing date by the interval (e.g., due 2025‑11‑12 → 2025‑11‑19).rec:1w: rolling – anchor from completion date (today). The next one is scheduled relative to when you complete it (e.g., complete on 2025‑11‑10 → due 2025‑11‑17).
Units: d (days), w (weeks), m (months), y (years), b (business days), p (random 1..N days).
If neither due: nor t: exists, completion will create a new task with a t: threshold derived from the interval.
+work @office
due:2025-12
!+personal
+work || +personal
Separate tokens with spaces for AND (implicit &&). Use || between groups to OR them together.
Prefix any token with ! to negate it. Example: +work !@home || +personal returns work tasks not at home, plus all personal tasks.
(B) Buy milk +home @errands) and click Add Task.+project or @context button to insert it.+work due:2025-12) and press Search.+project with another user.remind:YYYY-MM-DDTHH:MM to get an email reminder.
Todour supports sharing by project tag (the +project part of todo.txt). Sharing is
directional: an owner grants access to a specific +project so recipients can see those tasks
alongside their own. This makes it easy to coordinate around a single tag without merging accounts.
+project tags are shareable (not @context).+project in their Tasks view and searches.+project, create two shares (one in each direction).+release_Q4) to avoid collisions.Owners can opt‑in to email notifications when someone completes a task they shared (Settings → Notifications). Comments do not send emails.
Todour can turn emails into tasks. The exact behavior depends on the import mode set for the sending address. You can configure this in Settings -> Linked email addresses (primary address and each verified linked address have their own mode).
+project, @context, d:/due:, t:, rec:, and remind: are parsed as normal.+garden or d:10/10/2026) are still respected on that created task.| Mode | Best for | Avoid when | Typical result |
|---|---|---|---|
| Route by subject | Mix of quick todo capture and forwarding emails | You always include a subject for quick todos and never use todo tokens | No subject - todo lines. Subject - full email task. |
| Auto-detect | Hands-off behavior with minimal setup | You need fully predictable routing every time | Short todo-like content becomes line tasks; long/forwarded content becomes a full email task. |
| Todo lines only | Structured task capture from email body lines | You regularly forward long emails/newsletters | Each non-empty body line becomes a task; no full-email attachment routing. |
| Full email (always) | Archiving or triaging complete emails in Todour | You want one line in the body to become one task | One task from subject plus attached HTML email body every time. |
1. Quick capture from phone
(no subject)
Buy soil +garden d:10/10/2026
Call plumber @home
Result: two tasks are created. +garden is recognized, and d: is normalized to due:.
2. Forwarded email you want to keep
Subject: Fwd: Vendor quote for patio
Body: (full email content)
Result: one task titled from the subject, with the original email attached for reading later.
3. Subject present with Todour tags
Subject: I sent it with this text
Body: To be used before +garden d:10/10/2026
Result (Route by subject mode): because a subject exists, Todour creates one full-email task and attaches the body.
To apply tags in this mode, put them in the subject line (for example Subject: To be used before +garden d:10/10/2026).
from:you@example.com to created tasks for that address.If an email does not import as expected, check the sending address verification, import mode for that address, and whether email ingest is enabled.
Bubble up automatically resurfaces tasks that have been sitting untouched for too long. When a task matches your
chosen query and hasn't been touched for a while, Todour gives it a label (default +🫧) and raises
it to a chosen priority (default (B)), so it rises back to the top of your list. To avoid flooding
your list, only one task bubbles up per frequency interval (the one that has been untouched the longest).
Configure it under Settings -> Bubble Up:
+project, @context, due:, ! negation, ||).+tag added to bubbled tasks (default +🫧).B).A task is considered "touched" whenever you edit it, complete or skip it, or add/edit a comment. Only tasks that haven't been touched within the minimum age are candidates. Bubbling itself does not count as a touch, so it won't reset the inactivity timer. When several tasks qualify at once, only the most-stale one bubbles; the rest wait their turn and are picked up on later runs as the frequency interval elapses.
Bubbling never lowers priority: if a task is already at a higher priority than the configured one (for
example (A) when configured as B), its priority is left alone, though the label is still
added if missing.
Why todo.txt? It’s portable, future‑proof, and easy to edit anywhere. The app adds conveniences without locking you in.
(A) highest priority+project tag@context tagdue:YYYY-MM-DDt:YYYY-MM-DD thresholdrec:+1w strict recurringrec:1w rolling recurringremind:YYYY-MM-DDTHH:MM