# Task Management
In the process of [[projects/journaling|journaling]] I leave tasks for myself.
I use the plugins Tasks and Dataview to help surface the things I want to see.
I also use the Tasks syntax to organize other things (like a list of books I want to read or steps to complete a project).
## Not Done
### Task Summary
I have a note named "Task Summary" in the top level of my vault. It shows me the tasks that aren't done yet. I usually have it pinned in my tab bar.
Here's the main `tasks` block it uses:
```
not done
sort by status.type
sort by filename reverse
group by priority
folder includes diary
tags do not include 3dp
[truncated for brevity]
tags do not include watchlist
```
The `sort by status.type` keeps "in progress" tasks above "not started". The `sort by filename reverse` keeps the newer ones above older ones (because my daily note filenames are prefixed with `YYYYMMDD`).
### Specific Lists
The specific lists are easy to make too. For instance, my Watchlist file uses a block like this:
```
not done
tags include watchlist
tags include television
```
Sometimes a file has both some individual tasks written down as well as a section dedicated for listing all the tasks. I don't want it to include the local tasks in the summary, so I exclude them like this:
```
not done
tags include wishlist
path does not include wishlist
```
### Not Blocked
Then again, sometimes I want a sort of "actionable summary" at the top of a file that has lots of tasks with dependencies. To solve that I list tasks in the same file but not in the same heading:
```
not done
is not blocked
tags include elden-ring
heading regex does not match /^TODO$/
group by priority
```
## Done
I like seeing indications of progress, so in my daily note template I stick a list of all the tasks I did that day. At the time I devised it, there wasn't a way of doing this with a `tasks` code block (that I could figure out), so I use a `dataview` block instead:
```
TASK
FROM -"templates" AND -"health"
WHERE !contains(tags, "#therapy") AND completed AND completion = date("{{date}}")
```
The `date` formatter is set to `YYYYMMDD` but for some reason the code block that shows up in the templated daily note is `YYYY-MM-DD`? It just works! My Tasks plugin is configured to use Dataview formatting, so when a task is complete it looks like this in the markdown:
```md
- [x] write this down [completion:: 2026-01-22]
```
## Past Years
One journaling idea I like is the "5-year journal". You're supposed to write in it every day, but the pages are organized so that when you're writing today's note you also see the notes from the past 5 years on this day.
I don't expect myself to journal every single day, but I think it would be nice to see past years' "posts on this day" if they're available. So I came up with a `dataview` query to do that:
```
LIST rows.file.link
FROM "diary"
FLATTEN date(split(file.name, " ")[0], "yyyyLLdd") AS nameDate
FLATTEN date(split(this.file.name, " ")[0], "yyyyLLdd") AS thisNameDate
WHERE nameDate.month = thisNameDate.month
AND nameDate.day = thisNameDate.day
AND nameDate.year != thisNameDate.year
LIMIT 5
GROUP BY nameDate.year AS year
SORT year DESC, nameDate DESC
```
It looks like this:
> - 2025:
> - 20250101 test
> - 2024:
> - 20240101 one thing
> - 20240101 another thing
> - 20240101 one more thing
> - 2023:
> - 20230101 you get the idea
A few things are going on in this query:
1. I can't rely on `file.cdate` because sometimes Sync does weird things? So I use the note's filename, which records its "canonical" creation date. This is why we do the `date(split(file.name, " ")[0], "yyyyLLdd")` shenanigan.
2. the query selects notes with the same month and day as this note, and excludes notes on the same year (so the query won't list the current note).
3. the query groups the results by year. Sometimes I make multlple notes on the same day, plus sometimes I find it hard to read the yyyyLLdd formatted date in the file link
4. I limit the list to 5 results because I don't need to be inundated with really old things.