# Tasks

> Shortcuts are written for the Mac. On Windows and Linux, use Ctrl where it says Cmd, unless the text names another key.

Tasks are built into Thymer, so there is no separate to-do app or task list to set up. A task is a line in a page, with a checkbox. You write tasks where they come up: in meeting notes, project briefs and Journal pages. Search and the Tasks overview collect them from every page.

Type `* ` or `[ ] ` at the start of a line and it becomes a task. Cmd+L marks it done, Cmd+Shift+L cycles between task, done and plain text. Indent notes and smaller steps under a task; fold them away when you only want to see the task.

*Tasks on a Journal page, some with flags.*

## Task flags

A task's checkbox can carry a flag that says what kind of attention it needs. Pick one under **Set task status** in the task's menu or the @-menu, or Shift-click the checkbox to step through them. You can also type a flag's marker and a space at the start of a line, such as `[!]` for an important task. Each flag has its own color, so flagged tasks stand out on a page.

| Flag | Use it for | Type | Find it with |
| --- | --- | --- | --- |
| In progress | Started and still open | `[>]` | `@inprogress` |
| Blocked | Waiting on someone or something | `[\|]` | `@waiting` |
| Cost/Money related | Expenses, invoices, anything billable | `[$]` | `@billing` |
| Important/Urgent | What has to happen first | `[!]` | `@important` |
| Question/Discuss | Needs a decision or a conversation | `[?]` | `@discuss` |
| Alert | Something is wrong | `[^]` | `@alert` |
| Starred | Your own marker | `[*]` | `@starred` |
| Done | Finished | `[x]` | `@done` |
| Canceled | Dropped, kept for the record | `[c]` | `@canceled` |

## Due dates

Type `@` in the task and choose a date, or use **Set date** from the task's menu. The date picker understands "tomorrow", "next monday" or "aug 13", and specific times. A date can also be a range: type "aug 13 to aug 15", "next week", "september", "Q1" or "week 30", or click **+ End date** in the date picker. A task with a range becomes overdue only after its last day. Search finds them with `@due`, `@overdue`, `@today`, `@thisweek` and so on.

A due date is a deadline. When you plan to work on it is a separate choice, made in the Journal: a report can be due Friday and scheduled for Tuesday. See [The Journal](the-journal.md).

## Assigning people

Mention someone with `@` and their name, or use **Assign people** from the task's menu. `@me` in search finds everything that mentions you, `@assigned` and `@unassigned` sort the rest. For pages, such as a project, add a property of the User type instead, and call it something like Responsible or Owner; see [Properties](../collections/properties.md).

## The Tasks overview

**Tasks** in the sidebar lists tasks across the whole workspace, each with a link back to the page it lives in. Switch between **Today**, **All** and **Done**, filter to **Me**, **Me or Unassigned**, **Unassigned** or **Anyone**, and group by date, page or person. From here you can assign, set a due date, schedule a task for a day, or mark it done. Save a combination you come back to as a view of its own. The query box takes the same query language as search; see the [Query language reference](../search-and-navigation/query-language-reference.md).

Section headings fold in the Tasks overview too, so a long list stays scannable.

## Search and live queries

Tasks are lines like any other, so search finds them too. The task filters combine with words, tags, people and properties: `@todo #invoice`, `@todo @me @overdue`, or `@Projects.Status="In progress" @todo` for the open tasks in active projects. See [Search](../search-and-navigation/search.md) and the [Query language reference](../search-and-navigation/query-language-reference.md).

Put such a query in a **Live Query** block and any page gets a task list of its own that stays current, such as "Overdue" above `@todo @overdue` on a team page. Tick a task off in the block and it's done on the page where it lives. See [Live queries](../search-and-navigation/live-queries.md).

## Tasks or projects?

Tasks work best for small, concrete steps: something one person does and ticks off, like "Send the invoice" or "Book the venue". Bigger pieces of work, each with many steps, work better as pages in a collection. Make a Projects collection with properties such as Status, Owner and Due date, and plan on a board: every card is a project, and you move it from Planned to Done. Inside each project page, the tasks are its steps.

That gives you two levels. The board shows where each project stands, and the tasks in the project pages, collected in the Tasks overview, show what to do next. A project's Status and its tasks' flags are independent: a project can be In progress while most of its tasks are still open. The [Roadmap example](../collections/roadmap-example.md) sets up such a collection step by step and shows how to run it.
