Using the Tasks Plugin for 3 Most Important Tasks

What I’m trying to do

Using the Tasks plugin, identify the three Most Important Tasks.

A popular task-prioritization strategy is to isolate and prioritize a few (typically 3) “Most Important Tasks” (MIT). E.g., see The Productivity Project or The Personal MBA. Some people have implemented this in Obsidian (e.g., see “3 ≤ Daily Tasks ≤ 9” Techniques). But all the ones I can find involve manual classification, sorting, and taking the top 3. I’m trying to automate the process by:

  1. Using the Tasks Plugin
  2. Developing criteria to rank tasks by importance and urgency
  3. Developing a query (either for Tasks or Dataview) to isolate the currently 3 highest ranking tasks.

I suspect a JavaScript version of the query wouldn’t be too hard to write, but I’m rusty with my JavaScript, and I don’t want to reinvent the wheel.

So, I’m asking for help. Have you already done this or something similar? Do you know of an instance of this? Do you have suggestions for doing it?

Things I have tried

  • I searched the Internet for “Obsidian Most Important Tasks Plugin MIT”
  • I searched the Help forum for the same thing.

Well, here I am two days later, and I’ve come up with this Tasks query:

    not done
    path does not include templates/
    sort by priority
    sort by due
    limit 3


  • Recent versions of the Tasks Plugin calculate an “Urgency” score and by default sorts tasks according to decreasing urgency. I override this in the above, prioritizing first by priority and then, within priority, by due date.

  • Most discussions of using the MIT method, assume a human (maybe/someday AI) method of identifying a few MIT’s. For example, use annual, monthly, and weekly goals and work backwards. First establish your annual goals, then each month, include goals that will contribute to the annual ones; then each week, include goals that will contribute to that month’s goals, being sure at least some are tied to your annual goals. Then, each day, when identifying your MIT’s, make sure at least one contributes to one of that week’s - month’s- year’s goals. The automatic method implemented by the query above does not do this. But I can imagine having separate notes for, say, 2024, January 2024, and then for the week of January 8. The question then is how to link these goals together so that each goal has a label and there’s an easy way to link weekly, monthly, and annual goals. Perhaps each task could be given a score, say from 0 to 4, for how many goals in the chain it contributes to. Then the “quality” of a day’s MIT might reflect its total score; with 3 MIT’s per day, maximum contribution to one’s goals would equal 12. And a minimum score of 1, for a set of MIT’s that contribute to at least one goal.

  • Right now, I have no idea how to program this to trace the path from Annual to Monthly to Weekly goals. JavaScript maybe? Dataview?

Your comments and suggestions are most welcome. :yum:

The question is what is more comfortable way for you to “cascade/link” your goals/tasks.

You want to link them via tag?

This is a flexible in a way that you can put tasks for your goals anywhere, in your journal on a project file, anywhere. Also you can have tasks with multiple tags. The negative is that it might be more tricky to track.
Annual Goal (#goal1)

  • Monthly Goal #goal2
  • Weekly Goal #goal3
  • Daily MIT #goal3

Or you could go for nested tags as well if you wanted:
Annual Goal (#goal1)

  • Monthly Goal #goal1/goal2
  • Weekly Goal #goal1/goal2/goal3
  • Daily MIT #goal1/goal2/goal3

File Path

Also there is the option of “linking” via file path like this:
/somepath/yearlygoals/monthlygoals/weeklygoals/, then you can use query to fetch tasks based on the path. You can also use the file itself, either have nested tasks or use headings to structure it, you can fetch tasks based on a specific heading in a file as well.

Default Tasks queries should be enough

For all of the above to be fetching them in some combination of date limiting, path based or tag based, default tasks plugin gets the job done I believe.

My Setup

Personally I don’t have fixed deadlines (yearly, monthly, etc) and I “assign” tasks from different locations (daily journal for example) so I use tags and each tag loosely corresponds to something important that needs progress. But you can do something similar with file path and/or headings of the file (see tasks quick reference).

My “task queries” file:


happens before tomorrow
not done
tag includes project
group by happens
group by tags


not done
tag includes project
group by tags

Done this Week

done this week
tag includes project
group by done

PS: For the automatic point system I think can get a bit complicated.

I hope I gave you some good ideas. :slight_smile:

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.