Skip to main content

Task Management with Obsidian

I’ve been experimenting with ways to organize my life with a note-taking app since I learned about August Bradley’s PPV System last December 2021. After fiddling with Obsidian for two months, I think I have finally settled on a simple system.

What is Obsidian?

Obsidian is a Markdown editor that specializes in personal knowledge management. As of writing, it is free for personal use but not open-source. It works cross-platform on Windows, macOS, Linux, iOS and Android.

I love Obsidian for its command palette, customizable hotkeys, vim key bindings and versatile community plugins. Together, these features make the user experience similar to that of Visual Studio Code, the source code editor I use daily as a software engineer.

If you’re new to Obsidian, you can download a copy and get yourself started with the official docs.

Overview of my task management system

I experimented with various workflows and figured I had to make it dead simple for me. So now I’m settled with having only two types of task management notes in my vault:

  1. Action Zone: a single note that shows today’s tasks, overdue tasks, this week’s tasks, and unscheduled tasks
  2. Topics: a dedicated note for each project/topic to keep the related information (documentation, stakeholder contacts, Slack channels, etc.), planned/completed tasks, and meeting/discussion notes.

1. Daily tasks in the “Action Zone” note

My “Action Zone” note was inspired by August Bradley’s Notion Daily “Action Zone” Dashboard Design. I open this note every morning to find out the tasks I scheduled for today.

The same "Action Zone" note in source mode (left) and reading mode (right)

The task lists in the Action Zone note are generated dynamically. The actual tasks live in other topic notes and are collected here with the query language of the Tasks plugin.

The following is one Tasks plugin query in my Action Zone note that collects tasks for today:

## Today's Tasks
not done
due today
sort by description

The query itself should be self-explanatory:

  • not done - tasks that aren’t done
  • due today - tasks that are due today
  • sort by description - sorted by the descriptions of tasks; I only use this sorting option in today’s task lists as this helps sort the tasks by time (I prepend the scheduled time in 24-hour format to the task description)

For more details on how to use the query language of Tasks plugin, please check out the official documentation: Queries - Obsidian Tasks

Next, I review my overdue tasks. These are the tasks I planned to get done yesterday but are still unchecked today.

Query for overdue tasks:

## Overdue Tasks
not done
due before today
sort by due

I would click the pencil icon at the end of each task to open the edit panel and manually change the value of the Due field to today or some other day in the future. I love that I can type today, next sat, or even next month and leave it to the plugin to resolve the date.

Editing a task

It might seem a lot of effort to edit the tasks one by one, but this is natural for me since I have done bullet journaling for more than two years. This process is just like the migration of bullet journaling – it makes me pause and consider each item:

  • Not necessary? Just delete it.
  • Mandatory? Plan for it.
    • Urgent? Schedule it for today.
    • Not urgent? Move it to some other day in the future. Out of sight, out of mind. Just be mindful of what I can do at the moment.

As for “This Week’s Tasks” and “Unscheduled Tasks” sections –- I hate to admit that I don’t look at them. I’m never good at getting ahead of my todo lists, and I rarely finish all I have planned and pick new ones from the future.

## This Week's Tasks
not done
due after today
due before in 1 week
sort by due

## Unscheduled Tasks
not done
no due date
sort by path

When I open the Action Zone note for review every morning, I also check my calendar and see if any meetings are not listed. Then, I would quickly open the related topic note with a hotkey and add the meeting task to the note. (The default hotkey for opening a note is Cmd + O, but I changed it to Cmd + P to make the experience more similar to Visual Studio Code.)

In the next section, I will explain what a topic note is like and how I add tasks to it.

2. Projects and tasks in topic notes

For each task, there’s a hyperlink to the actual topic note where this task resides. Click the link to open that topic note in the same pane, or Cmd + click to open the note in a new pane.

For each task, there's a hyperlink to the actual topic note where this task resides.

I note down three things in each topic note: information of the topic, tasks, and meeting minutes.


This part is free-form: background, documentation, Slack channels, Trello Cards, Jira Epics, etc. Anything related to this topic that I want to note down.

Adding and managing tasks with the Tasks plugin

I create all tasks via the Tasks plugin. This ensures tasks show up on the Action Zone note on the date I specified. In addition, the plugin automatically resolves dates from human-readable strings, e.g. today, tomorrow, next month, which saves me from doing the math or struggling with date picker widgets.

You need to open the command palette with Cmd + P, then select and run the command: Tasks: Create or edit task to open the Tasks plugin. I mapped this command to a hotkey Cmd + T to speed it up. This way, I can quickly create a task with my cursor on an empty line or a non-task paragraph or edit a task with my cursor on it, by hitting Cmd + T.

Adding/editing tasks with hotkeys

Recurring tasks

I rely heavily on the Recurring Tasks feature of the Tasks plugin. I create recurring meetings this way:

- [ ] 10:00 weekly sync 🔁 every week on Wednesday 📅 2022-02-09

Or remind me of regular health checks:

- [ ] kids teeth fluoridization 🔁 every 180 days 📅 2021-11-05
- [ ] teeth scaling 🔁 every 180 days 📅 2022-01-27

Note that the next recurring task are not generated until you mark the current task as done. When a recurring task is marked done, the Tasks plugin copies the current task, inserts the copy one line above the current one and sets the due date of this new task to the next occurrence.

- [ ] teeth scaling 🔁 every 180 days 📅 2022-07-27
- [x] teeth scaling 🔁 every 180 days 📅 2022-01-28 ✅ 2022-01-28

Be sure to toggle a task with the Tasks plugin command

There’s one thing I had to get used to when I first used Tasks plugin: you cannot toggle a task done with the native Obsidian approach in source mode. Instead, you must place your cursor on the task and run the Tasks: Toggle task done command from the command palette. Otherwise, the Tasks plugin would not append the completion date or create another recurring task for you. So, to speed it up, I also added a hotkey: Cmd + Shift + Enter for toggling a task done.

My hotkeys setting for the Tasks plugin

Meeting notes

I would create a task for every meeting. This reminds me of the meeting during the day and helps me recall that such a discussion happened on a particular day in the future.

How do I store my notes of meetings, then?

If the discussion is on Slack or Jira, I keep the permalink of the thread:

- [x] Discuss with Amy regarding [ISSUE-123](https://jira.ticket.url) - [Slack]( 📅 2022-03-01 ✅ 2022-03-01

I try to jot down a summary of the discussion whenever I can. I don’t worry if I fail to summarize since I still have the link to refer to the full context.

How about notes taken during video/audio calls?

When I first tried out Obsidian, I created one note for each video/audio call and linked each note back to the topic note. For example, the [[weekly sync 2022-03-23]] in the following task links to another note with the title “weekly sync 2022-03-23”:

- [x] 10:00-11:00 weekly sync [[weekly sync 2022-03-23]] 🔁 every week on Wednesday 📅 2022-03-23 ✅ 2022-03-23

After working like this for two weeks, I was not too fond of the constant note-jumping when reviewing discussions on the same topic. So I decided to merge those notes to the topic note, indented under respective tasks. Having all notes in one file makes it easier to look back.

- [ ] 10:00-11:00 weekly sync 🔁 every week on Wednesday 📅 2022-03-30
  - 123
  - 456
  - 789
- [x] 10:00-11:00 weekly sync 🔁 every week on Wednesday 📅 2022-03-23 ✅ 2022-03-23
  - 1
  - 2
    - 2a
    - 2b
  - 3

Zooming in: the Zoom plugin

The downside of having all notes in one file is distractions. I prefer to take notes on blank files during meetings as it helps me stay focused. I tried starting from a new file and then cutting & pasting notes from the new file to the topic note after each meeting – until the Zoom plugin came to the rescue.

The Zoom plugin enables you to zoom in to a certain level of the document like Workflowy and Roam Research do. There will be a breadcrumb at the top of the note to track where you are. With this plugin, I can zoom in to the current meeting task and filter out other parts of the note without leaving the file.

  • Zoom in: place your cursor on the item to zoom in, then press Cmd + .
  • Zoom out: press Cmd + Shift + . or click the path in breadcrumbs

Wrapping up

That’s it – my task management system in Obsidian.

I love how simple and powerful it is. With only two types of notes, I manage more tasks and record more details in a more organized pattern than I could do with a handwritten journal.

Aside from task management, I also use Obsidian for journaling and knowledge management. I’m still exploring my workflows, though. I will share them once I find ones that work for me.

Also published in: Simple task management workflow (w/o daily notes) - Share & showcase - Obsidian Forum