Tasks and to-dos
Tasks and to-dos
Tasks in Lettuce are plain Markdown checkboxes. There’s no separate task database — a to-do is just a - [ ] line in a note, so it lives next to its context, syncs with the file, and stays readable everywhere. Even the vault-wide Tasks rollup and your Today note are just notes: ordinary Markdown files whose live tasks blocks gather your checkboxes for you. Nothing to maintain, nothing locked in an app-only view.
Interactive checkboxes
Write a checkbox anywhere in a note:
- [ ] Draft the launch announcement
- [x] Book the venue
In the reading view the checkbox is clickable. Ticking it writes straight back to the source line — - [ ] becomes - [x] (and back) in the file on disk. Nothing to save; the note is the source of truth.
tasks blocks
A fenced ```tasks block aggregates open checkboxes from across the vault into one live list. Drop one in any note:
```tasks
status: open
from: #project
due: before tomorrow
sort: due
group: note
limit: 20
```
The block renders as a list of matching tasks, each a live checkbox you can tick. Supported filters:
status:—open,done, orall.tag:— only tasks carrying a#contexttag (e.g.tag: #urgent).from:— restrict the source: a#note-tag(tasks in notes with that tag) or afolder/path.due:—before/after/ona date, ortoday,tomorrow,none,any.sort:—due,text, orpath; prefix with-for descending (e.g.sort: -due).group: note— group results under their source note.limit: N— cap the number of results.
query blocks
For listing notes rather than tasks, a fenced ```query block renders a dataview-style live list — notes matching a filter, shown inline in the reader. Useful for “all notes tagged #project modified this week” alongside your task lists.
Your Tasks note
Tasks (Overviews/Tasks.md) is a maintained note that rolls up every open to-do across the vault into one live list — grouped by the note each task lives in, soonest due first. It’s created the first time you open it, and it’s just a note: tick a checkbox to write through to its source line, link to it, or tweak its tasks block to filter differently.
Mac: the Tasks button in the toolbar, or File ▸ Open Tasks (⌥⌘T).
iPhone (preview): the checklist button in Notes. (The iPhone app is in preview — not yet on the App Store.)
Your Today note
Today is your daily note (Daily/<date>.md). Opened fresh, it transcludes the day’s calendar agenda (when calendar sync is set up) above a live rollup of what’s due today or overdue, with room to write below — one note for the day, not a throwaway screen.
Mac: the Today button in the toolbar, or File ▸ Open Today’s Note (⌥⌘D).
iPhone (preview): the sun button in Notes.
Quick add
Capture a task without opening a note — it’s a mode of Quick Capture. Flip Capture to Task and it appends a - [ ] line (optionally with a 📅 <date>) to today’s note, creating it from the daily template if needed — so a stray to-do never interrupts your flow, and it rolls up in both the Today and Tasks notes. Leave Capture on Note and the same jot lands in your Inbox instead.
Mac: ⌃⌘C for Capture, or ⌃⌘T to open it straight in Task mode.
iPhone (preview): the tray button in Notes → switch to Task.
Due dates
A task carries its due date inline, either as an emoji marker or a key:
- [ ] Send the contract 📅 2026-07-01
- [ ] Renew domain due: 2026-07-15
That date is what the tasks blocks filter and sort on — due: before tomorrow surfaces overdue-and-today in your Today note, while the Tasks note simply sorts everything soonest-first.
Related
Core concepts/11 Calendar and meetings — the agenda your Today note transcludes
Core concepts/05 Tags —
#contexttags for filtering tasksRecipes/09 Weekly review — a GTD-style review built on tasks and frontmatter