Tasks and to-dos

~4 min read

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:

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.

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.

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.

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.