name Add Task
type note(New Task) template
action Task Template
class dataview-button
Available Tasks
table Completed, Priority, Project, defer-date as "Defer Date", due-date as "Due Date", recur-length as "Recur Length", defer-date + recur-length as "Next Date"
from #tasks
where defer-date < date(now) and completed != 1
sort doDate asc
Upcoming Tasks
table Completed, Priority, Project, defer-date as "Defer Date", due-date as "Due Date", recur-length as "Recur Length", defer-date + recur-length as "Next Date"
from #tasks
where defer-date > date(now) and completed != 1
sort doDate asc
Completed Tasks
table Completed, Priority, Project, defer-date as "Defer Date", due-date as "Due Date", recur-length as "Recur Length", defer-date + recur-length as "Next Date"
from #tasks
where completed = 1
sort doDate asc
name Add Project
type note(New Project) template
action Project Template
class dataview-button
table Status, length(tasks) as Total, sum(tasks.completed) as Completed, sum(tasks.completed) / (length(tasks)) * 100 + "%" as Progress, tasks[0] as "Next", file.mtime as Modified
from #projects
sort file.mtime asc
Although after the dataview auto update for preview feature addition the sorting isn’t working as well. I believe the plugin author is working on it.
WOW, so I am managing work projects VERY SIMILARLY to your approach!
I adapted mine from a GitHub project, was it yours?
In my daily work I manage my team and we work with multiple other teams and individuals internally and externally and have to bounce between them quite a bit, so I almost have to keep a pseudo-CRM in the process along with project & action tracking.
In my approach:
core tags: #project/project-name#meeting#sigact (explained below) #action#person and #team
your #task becomes #action in my system to avoid confusion with the term task as a checkbox item and to match “action item” terminology
everything revolves around the day with the calendar & daily notes & templater plugins
each note averages about 4 templated dataviews (plugin author is working on allowing us to dynamically include queries so we can further standardize and reduce template-built queries)
daily notes, meetings, and “significant actions” are all in a single Timeline folder
everything in timeline folder is prefixed with the day in a standard format:
daily note: 21.04.Apr.23.Fri
meeting: 21.04.Apr.23.Fri (M) Some title here
sigact: 21.04.Apr.23.Fri (S) Some thing I want to specifically note
ex: copy in text of important email I sent/received, note on decision that was made, etc
#action has a from: metadata field that is populated with a link e.g. from: [[Team - Foo]] or from: [[21.04.Apr.23.Fri Some meeting I had]]
meeting notes, team notes, person notes etc have dataviews showing actions related to them via the from field
actions and projects have optional due dates and defer dates, and daily notes run dataview queries almost exactly as you do to show overdue, upcoming due, etc.
I also have Keyboard Maestro shortcuts e.g. Cmd M prompts for a meeting title then it fully automates Obsidian to create a new meeting in the timeline with the appropriate date prefix and template applied and open on my screen ready to enter notes.
There’s more but its crazy effective. It may not be as polished and slick and effective as a dedicated piece of software but it is 80%+ effective AND MASSIVELY CUSTOMIZABLE.
It’s not for ultra-fine-grained task management (i.e. not for grocery lists, chore lists, etc) but it merges my strategy notes with my operational planning and tactical execution notes all in a “single pane of glass” app.
What I DON’T have currently are:
buttons for new project/action/etc
next action designations
I was planning to experiment with adding these but you’ve already done that so I’m totally stealing those.
Thanks for sharing! If you got it from github, it wasn’t me! I’d love to see some screenshots of how your process works (no pressure though I know it’s a lot of work lol). I love getting new ideas for how I can tweak things! I’m really excited about managing tasks, projects, goals and beyond in Obsidian because plaintext! Future proofed! No proprietary format or lock in!
Thank you! There are a few reasons that I use inline fields vs yaml.
A link in yaml doesn’t show as a backlink.
If you rename a page you have linked in yaml the link doesn’t auto update like it will in the page.
yaml doesn’t allow for linking something like [[@person]] and this is how all of my people pages are titled.
I like to write inline as I find it much more natural and can give me more context.
Fields inline seem to be much more forgiving as far as syntax goes vs yaml. You can use normal lists, format with markdown, etc. yaml seems fragile to me. Hope that helps!
You mention: “these all roll up to Goals, Aspirations, Pillars, etc”. I am curious, could you explain a bit more about what that means? Is this similar to the Notion PPV framework of August Bradley? (I saw PPV was mentioned in the screenshots in the Knowledge Management post so I thought that might have been a source of inspiration for your system?)
Yes, August Bradley’s PPV is a big inspiration for my system!
What I mean when I say rolls up is that all of the smaller pieces belong to a larger piece above them. So all of my tasks belong to a Project or a Habit/Routine. All of my Projects or Habits belong to a Goal, all of my Goals belong to an Aspiration. All of my Aspirations belong to a Pillar.
These are all connected via metadata and backlinks and each has their own page with a dataview table so I can see everything at once (similar to the Projects page).
Yes!! Love hearing these reasons. YAML felt so fragile and inline felt so much better, but those were just feelings. Seeing how you articulated it, it is now very clear in my mind. Thanks for sharing your work and explanations!
Somehow progress in projects view is not working for me. I see that this value is calculated from tasks which is field in project template but I am wondering how it is populated?
Thanks @arminta & @davecan for all your posts and this one in particular. I’m looking to rip and replace Notion as my task manager + meeting notes store and this gives me so many ideas and motivation. I started looking at OmniFocus, but it just doesn’t give me the customization (metadata) that I’d like and now I have a fantastic solution.
I’m curious if you have more than one Obsidian vault, similar to @davecan, one for task / project management and another for PKM / Zettlekasten?
They are given a normal name capturing that action. E.g. Tell Bob about blah as a fine-grained one or Develop strategy for foo for a broader one.
All actions go in an Actions folder. All projects go in a Projects folder. Project notes are typically converted into folders using the Folder Notes plugin.
Thanks to Keyboard Maestro I can press Ctrl-A to create an action, Ctrl-S to create a significant action note, Ctrl-M to create a meeting note. KM prompts me for a title and then creates the note, names it appropriately, applies the template, etc. Just takes about 3 seconds.
Thanks for the detailed insights!
From above I see that you use tags for all your projects, does this mean that if you were to rename a project you’d have to rename it in 2 places"
One downside is it means a query for #project also returns these so I have to filter out where file.tags also contains #action.
The meeting note & person notes & project notes all have queries that find where this.file.link is referenced in actions along with their status/reason. In the project notes it also has a filtered query showing only actions for that project tag (injected to the dataview query via Templater when the note is created from the template). Person templates show me what actions I owe to that person, what I’ve delegated to them, what I’m waiting on from them, etc.
Hi, really great use of obsidian together with dataview. You inspired me for my own task and project management within obsidian. But I have one question regarding your project template and the project overview table.
Do you fill out the tasks:: field manually or how does the length() and sum() functions are working there? It looks like you would query a dataview query? That would be awesome, but I can’t get it to work.