# 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.