✅ Overdue Task Processing
Automations for handling Tasks: - Overdue/Forgotten task scanning - Task sorting within a note - Copying #tags/@mentions from one task to another - Mark all tasks in note open/completed - Automatically opening URLs of task lines
Overdue Task Processing plugin
Formerly known as "Task Automations"
About
The Task Automation plugin brings NotePlan task management to the next level. Invoke the plugin from anywhere in the open note using CMD-J
(or typing slash in the Editor) and choosing one of the commands mentioned below.
Automations for handling Tasks:
Major Task Automation functions
- Find and change overdue tasks (and change their status/reschedule them to a date in the future)
- Find (undated and potentially forgotten) tasks in a previous daily note or buried in a project note
Overdue Tasks: Overview
In NotePlan, you can create tasks in any document and tag them with a >date
, e.g.
* Do something on New Year's Day >2023-01-01
The >date
in a task line is a due date (some people call it a "do date")
If you open up your daily note (Calendar Note) on that particular day, you will see a reference to that task in your "References" section at the top of the Daily Note. But once that day is gone, you'll not see any references to that item again. @EduardMe designed the product this way, stating:
Tasks do not automatically "roll over" in NotePlan, and this is intentional. The added bit of manual work forces you to reconsider each open point and prevents building up a massive list of tasks. If you remember to do that work every day and check those items, then bully for you. :) But for the rest of us, we need a little help making sure things don't get lost in the abyss of days gone by. That's where the following commands can be helpful.
Overdue Tasks: Commands
Command /Review overdue tasks (by Task)
Find all overdue tasks (tasks which have a >date of yesterday or earlier), and will ask you how you want to deal with that task. By default, the task will stay where it is but the new date you choose will be appended to it (so it will show up in that day's references). However, if you are on the desktop app, you also have the option of holding down the CMD key when you choose the new date/week, and the task in question will be moved to the daily or weekly note chosen.
NOTE: If you want to edit a task and also reschedule it, hold down the OPT key (on Mac only) when making your selection (e.g. edit or set a new date) and the task will be updated per your choice and you will then get another pop-up to take further action (e.g. edit task or convert to another type or whatever) X-Callback link to call this command:
noteplan://x-callback-url/runPlugin?pluginID=dwertheimer.TaskAutomations&command=Review%20overdue%20tasks%20%28by%20Task%29
NOTE: This and the following command both will scan daily notes and also weekly notes for tasks that are overdue. Monthly, Quarterly, and Yearly notes are not currently processed.
Command /Review Overdue Tasks as of <Date>
This is a more general-purpose version of the previous command. The aforementioned command assumes you are invoking the command at the start of the day and you want to scan backwards for tasks dated yesterday and prior. On the other hand, if you want to search for tasks that will be overdue as of some day in the future, use the command: /Review Overdue Tasks as of <Date>
, and you can select a date. The plugin will then look backwards from that future date looking for open tasks that will be overdue at that point in time (including tasks which were dated for today but not yet complete). This is especially useful for people who want to review tasks at night and prepare for tomorrow. But this can also run for other future dates (e.g. you could run it Friday night to plan for Monday).
X-Callback link to call this command:
noteplan://x-callback-url/runPlugin?pluginID=dwertheimer.TaskAutomations&command=Review%20Overdue%20Tasks%20as%20of%20%3CDate%3E
(runs the default command, where you can choose a date), ornoteplan://x-callback-url/runPlugin?pluginID=dwertheimer.TaskAutomations&command=Review%20Overdue%20Tasks%20as%20of%20%3CDate%3E&arg0=tomorrow
to run specifically for tomorrow.
Command /Review overdue tasks (in Active Note)
Same as above, but limited to the foreground note in the Editor
Command /Review overdue tasks in <Choose Folder>
In this version, you will be prompted for a folder in which to search for overdue tasks
Command /Review/Reschedule Tasks Scheduled for this week
Review tasks either on this week's note or tagged for this week
Reviewing Overdue Tasks in a Separate Window (not currently enabled)
You can also review tasks in a separate popup window using the command:
/Process Overdue Items in Separate Window
This will pop up a window that shows Overdue (and optionally LeftOpen and Today's tasks). LeftOpen tasks are open tasks in notes in the last 30 days that are still open but not scheduled. By default, the plugin will search for LeftOpen and Today's tasks, but you can turn that off in the plugin settings with the setting: Review Forgotten Tasks After Overdue
Filtering Tasks in the Window
You can filter tasks in the window through the dropdown menu in the upper-right corner. Initially, there are no tasks in the 'Processed' category, but after you change the status or schedule an item in the list, it will be moved to 'Processed'
Process Overdue Items In Separate Window via X-Callback
This command can be run via xcallback/URL link and when you call it that way, you can control what the default filter is on the page:
X-Callback: Show Overdue Items
noteplan://x-callback-url/runPlugin?pluginID=dwertheimer.TaskAutomations&command=Process%20Overdue%20Items%20in%20Separate%20Window&arg0=Overdue
NOTE: LeftOpen and Today items are listed only if you have them selected for review in the plugin settings.
X-Callback: Show Forgotten/Left Open Items
noteplan://x-callback-url/runPlugin?pluginID=dwertheimer.TaskAutomations&command=Process%20Overdue%20Items%20in%20Separate%20Window&arg0=LeftOpen
X-Callback: Show Today Items
noteplan://x-callback-url/runPlugin?pluginID=dwertheimer.TaskAutomations&command=Process%20Overdue%20Items%20in%20Separate%20Window&arg0=Today
Follow-up Tasks
You can select (or just be on the same line as) a task or multiple tasks and mark them done, while at the same time creating a follow-up or related task underneath the selected task or in a future calendar/weekly note. In either of the commands below, the follow-up task will look like:
- #FollowUp test1 original task >2022-11-04
or
- #FollowUp test2 [[* [x] test1 ^l1xagv^onk7l6]] >2022-11-05
The format can be set in preferences (the preamble -- #FollowUp
by default) and whether to use wikilinks or URLs
Command /Mark done and create follow-up underneath
Select a task or tasks and this command will mark it/them done/complete and create a follow-up task with a link to the original in the form of:
Command /Mark done and create follow-up in future note
Plugin Settings
The plugin has a variety of settings you can access through the plugin settings panel in NotePlan Preferences
Future Features / Todo List
- (optionally) Leave tasks with dates in place until they are overdue? [use getOverdueTasks()]
Acknowledgements
Thanks to @docjulien, @george65, @john1, @jgclark, @stacey, @clayrussell, @qualitativeasing for all the ideas and help with use-cases which make this plugin what it is.
Deprecated Features
>Date+ tags
Date+ tags have been obviated by the new overdue task scanner. So at some point, these commands will probably go away. Sometimes you want to set a >date at which you want something to become a
>today
task rather than tagging ittoday
right now. To do this, create a todo and tag it with some date in the future and put a "+" at the end of the date (e.g. >2025-01-01+). This task will show up in your references section on that date, and if you run the command:/Update >date+ (Date-Plus) tags in Notes
each day, you will convert those tasks from that day forward as>today
(with user input along the way).
To run the command to convert dates today or prior, run the /Update >date+ (Date-Plus) tags in Notes
command
However, easiest way to make sure this happens frequently is to put this command within your Daily Note template as a runPlugin
template, e.g.:
To run with user verification/input:
<% await DataStore.invokePluginCommandByName("Update >date+ (Date-Plus) tags in Notes","dwertheimer.TaskAutomations",[]) -%>
To run silently:
<% await DataStore.invokePluginCommandByName("Update >date+ (Date-Plus) tags in Notes","dwertheimer.TaskAutomations",["silent"]) -%>