To Do Aggregator

Great piece of dev. This tool has been hugely useful to my workflow.

At the moment I use obsidian in two contexts. One for my own knowledge structure and secondly as a logging system for work. The structure I use can be thought of as a bullet journal. Each new note is a meeting with a separate series of notes for useful information or a rolling front page.

A hugely helpful feature would be a todo aggregator. Each meeting might have todo’s inside it. Keeping track of these todo’s is particularly difficult. An aggregator plugin showing all open or closed todo’s with a link to the originating note would aid a huge amount.


Agree! This is one of the key things I’d like to get out of making tasks a first-class citizen in Obsidian:

edit: cleaning up Discourse formatting


Would tagging work for you?

#todo Stay at home
#todo Stay alert
#todo Get eyes tested

You can then see all tagged todo actions in the tags panel regardless of where they appear.

Similarly I am using #issue #query #research etc.

Love this idea as well! I believe Roam allows for aggregating TODOs simply by making the syntax for a TODO include a link to the “TODO” page (i.e. {{[[TODO]]}}). I believe using tagging could work in obsidian, I think it may feel clunky to remember to add the tag to the checkbox: - [ ] #todo A task to remember.

I think there might be inspiration to take from orgmode’s agenda (, with due dates and multiple “in-progress” states… but this may be out of scope for obsidian’s core. Could it be written as a plugin?


Maybe the scope of the “aggregator” could be extended to function like “inclusion macros” or even “smart folders” (that work on a search pattern (e.g. all notes that have the #todo tag but not the #completed tag)
But this depends on a single note being a “task”.

This would also enable to generate a table of contents of nested notes in folders.

This will definitely be a first-class citizen in Obsidian.

I’ve been toying around with some prototypes for how the interactions could work for an agenda view.

The simplest solution is to just collect all the lines with the task checkbox (i.e. - [ ] or - [x] ) from across the vault into a single view that allows a user to see and toggle its state (alternately, each entry in this list could link back to the original page, no strict need for projectional editing in the agenda view).

This could be further improved with date/times associated with a task. I’ve found success deriving a list of “associated dates” for each task from:

  • The note’s title (if the parent note is a daily note) or the line’s version history (if in a git repo, or some other versioned vault)
    • This provides an implied “task created” date
  • Any parsed date or time object in the contents of the task item itself (related: Keyboard shortcuts to enter current date/time)

When the agenda view has this information, the UI can not filter on completed status, creation date, and “associated” date. For example, if I create a task in a daily note:

- [ ] Prepare for big meeting on [[2020-06-05]]

I can filter my agenda by “all dates <= today” or “the next 7 days” and see this item. (edit: possibly related to Filter notes, e.g. by date and has tags?)