I am a simple user of obsidian and not a plugin developer but I would like to see that the core method of working with tasks is to be improved on instead of developing a standard for so many plugins.
To say it frankly and with respect to plugin developers … I think most task related plugins are not needed when the core task system would be improved on.
Some point to improve on the core task options:
Loose the need for "- [ ]"
Why does it need to be in a list? Feels very unnaturally when I am writing a text and add a task somewhere in the middle (on a separate row).
I understand we need some kind of syntax to define a task but a list should not be needed.
Things you would like to track about a tasks are:
- the fact that it is a task
- the status of task (todo, doing, now, later, waiting, cancelled, wait on client, wait on co-worker, anything you want). This status should be dynamic.
- date related values (created, started, due, scheduled, cancelled, done, also many more possiblities). Also be dynamic.
- are there more things to be tracked about a task … ? Not in my use case, but please add…
I think the assumption can be made that a task is always only on 1 row (although it can be on multiple lines in the editor). That seems reasonable to me.
With that in mind you could use the following syntax to work with the points mentioned above.
- If you specify that a task always has/needs a status (see point 2. below) that status is then the task defining syntax.
- The different statuses could be realised by using the status prefixed with a “//” (other modifier keys can be used ofcourse).
For example //todo or //waiting. The entire row without the // ‘fields’ would be the description of the task.
- Same goes for date-related values only you combine the type of date with the actual date. Like for example //due//2022-03-21 or //done//2022-03-20. This needs to be added in the same row as the // to be applied to that task.
An example task would be something like so:
//doing Create the yearly report for [[John Doe]] //due//2022-03-20 to include the new formatting rules [[Cindy James]] will send to me //wait-on-coworker.
This is a task I am working on (//doing), for which there is a due date (//due//2022-03-20) and I am also waiting on a co-worker to give me some needed information to finish this task (//wait-on-coworker).
When the // fields could be shown in a different formatting by CSS that would be great also.
It is most easy to agree about a common date format but the the one used in daily notes settings could also be used. I do not know enough about the issue’s with different date formats.
together with changes to the default ```query possibilities so it recognises the “//” field for the use for tasks I think you then have a working task management that would eliminate the need for separate plugins.
You could make it all fancy from there on by adding the possibility to add a GUI that reads the lines with tasks (// fields) and create a GUI based on the fields used (like the tasks plugin does). And you could even make some settings to define the modifier key (in my example the “//” or define the different states and date values you want to use in the GUI.
I hope my explanation is clear. I am not a fan of plugins in general and I think a solid task management system should be included in Obsidian without depending on plugins. The current is IMHO not mature enough. Plugin can be created on top of a good task system.
But I like to know … what more would you need then statuses and date values … ? I know there is always more … but really?
This post has become a bit longer than I expected so I you made it to here. Thanks for reading … ![:+1: :+1:](https://forum.obsidian.md/images/emoji/apple/+1.png?v=12)
Regards, Jeroen