New Tasks Plugin

New Plugin Tasks

I created an initial version of another tasks management plugin.
The approach is different from existing plugins.
Check the GitHub repository for details.

As always with these new things: it may do unintended damage to your vault. It is modifying your files (marking tasks as done). Make sure you have a backup.

Overview

  • Track tasks across your entire vault through - [ ] checklist items
  • Optionally, only track tasks with an identifier like - [ ] #task
  • Supports due dates, recurring tasks, and done dates
  • List tasks anywhere with a ```tasks block
  • Mark tasks as done (or undone) in the file editor, file preview, or in the rendered ```tasks block.
  • Filter tasks in the ```tasks block by due date, done date, status, and more

Screenshots


Track and list tasks in a note


Track tasks in another note


Example of different Tasks queries to list tasks from the vault. You can mark them done in the preview on the right and the original source file will update.

Current State

The plugin is in a very early stage, pretty much “minimum viable product”.
I used it myself daily for a few weeks now. And it works. But I am sure there are hidden bugs :sweat_smile: I will continue using it as my daily driver.

Ideally, please use the GitHub issue tracker to report bugs or ask for features. Though I will obviously check this thread as well :yum:

I don’t have much time to maintain the plugin. Any help would be much appreciated. However, since I am a daily user myself, at least the features currently listed in the GitHub issue tracker are likely to come soonish™, as I want them myself.

17 Likes

I released a minor update that you probably want: Obsidian Tasks 0.2.0

Changes

Cache now also updates on create, rename, delete

The cache wasn’t update when a file was created, renamed, or deleted.
Tasks would then list double (as the original and the one from the
renamed file, for example).

The cache now subscribes to further vault events in order to stay in
sync with the vault.

Task blocks now list all tasks by default

When including tasks via a ```tasks block, the results now shall all
tasks by default, regardless of their indentation.

There is now a new query option exclude sub-items to re-enable the
original behavior.

Before, the result list would only show top-level tasks, which was
confusing.

@schemar Thanks, I developed a python-based method of harvesting tasks out of Markdown files. It uses Taskpaper @due(YYYY-MM-DD) tags. This plugin may force a rewrite in my workflow and bring it completely into Obsidian, which is turning into a vortex for content.

1 Like

By the way: if you use the calendar plugin, you can create an agenda in your daily note template like so:

## Tasks
### Overdue
```tasks
not done
due before {{date:YYYY-MM-DD}}
```

### Due today
```tasks
not done
due on {{date:YYYY-MM-DD}}
```

### Due in the next two weeks
```tasks
not done
due after {{date:YYYY-MM-DD}}
due before {{date+14d:YYYY-MM-DD}}
```

### No due date
```tasks
not done
no due date
```

### Done today
```tasks
done on {{date:YYYY-MM-DD}}
```

You need a recent version of the calendar plugin so that it can render the +14d correctly.

1 Like

Wow! That looks very promising! However there seems to be a bug still.
I installed the plugin from github, pasted your agenda template into a note, and on another page I worte the following todo:

- TODO take out the trash

This todo was displayed in every single part of the agenda, i.e. Overdue, Due today, etc., even under Done today.

Any idea? Thanks!

Edit: Could it be that the system date format is important?

To use the template, you have to use the calendar plugin and create the daily note by clicking on the date in the calendar. The calendar plugin must be an up-to-date version in order to support +14d.

If you don’t use the calendar plugin, for now you have to hard code the dates (set due on 2021-04-14 etc. in all code blocks).

I plan to add relative dates in the future (e.g. due on today or due before in 14 days), but that isn’t implemented at the moment.

Does that fix your issue?

1 Like

Thanks, @schemar! I had already created a daily note via the Calendar template, and pasted your agenda code. That didn’t work. Then I read again that you wrote: “you can create an agenda in your daily note template”. So I deleted my daily note, pasted your code into the daily template, and now it works! Great. Thank you!

2 Likes

This is a very useful plugin. This will save me a significant amount of time, as there are multiple TODO’s across many areas of my vault. I’ve been testing it and everything works seemless so far. Really easy to set up - thank you for this!

@schemar
QQ - If I want to eliminate all tasks without a due date and I want a task due in the next 30 days how would I write it. What I have tried so far is not working.

Thanks

Thanks @Cajun, happy to hear that.

To your question: I am not sure I understand you correctly.
Do you want to list all tasks, that:

  • do have a due date AND
  • are due within the next 30 days?

If so, you would need to use the following and update it by hand every day:

```tasks
due before 2021-05-16
```

There is an enhancement planned where you could write the following, however it isn’t implemented yet and won’t work as of now:

```tasks
due before in 30 days
```

Thank you for your reply. Sorry, I wasn’t clear earlier. My goal is to be able to look ahead 30 days and view only tasks that have a due date. I don’t want to see any tasks that do not have a due date. I have tried your suggestions and it still includes tasks without a due date.

I will continue to work on this. I really like the plugin and all the potential I think it offers! Nice job!

If you filter by due before, it should only show tasks with a due date. Can you post your ```tasks block?

This is the task block:

3 ticks before
tasks due before 2021-04-30


3 ticks after
It pulls in the 4 tasks that have due dates and 9 others that do not have due dates.

Apologies, I’m not able to add the code.

Hm, this looks weirdly formatted. Could you add a screenshot of the tasks block and a screenshot of the result? Maybe then I could identify it.

Really useful plugin!

Is there any chance to add the following functionality?

  • search by #tag of the task? (i.e. #prio1, #prio2, #work, #personal, …)
  • schedule tasks on days (start dates)

That would be awesome :pray:t3: Thank you!

3 Likes

Here is a screenshot of both.

@schemar Figured it out and it’s working as expected! Really like the plug-in thanks for all your hard work.

Glad to hear it. For reference: one needs to put the filter queries on separate lines, one per line.

1 Like

Hey there, thank you for the suggestions :slight_smile:
I added them to the GitHub issue tracker. Please note that I have very limited time and the issue list is long. Progress depends on priorities.

I removed all Todo Plugins so far (or deactivated them at least). With the latest release the performance is much better and it works really smooth. Many thanks for this big enhancement and looking forward to further improvements. :slight_smile: :pray:

1 Like

How awesome is this plugin ! It completely replaced the hodgepodge of task management plug-ins I previously had. It allows me to manage my project tasks, schedule, keep track and review them easily. Thank you so much for your work, it is really appreciated !

3 Likes