I'm notorious for fiddling with notion templates to customize them to my needs.
I have a 3200+ character formula to calculate the next date for recurring tasks.
But the thing I'm most proud of is:
This is based off Thomas Frank's free Ultimate Tasks template, but you can easily create this for your task list with a few extra properties and an additional filter, like the incredible Ultimate Brain template.
Why Task Sequences
If you suffer from executive dysfunction or task initiation, you know the problem. Washing your clothes isn't just "throw it in the washer". The full task sequence looks something like this:
- Collect dirty clothes
- Check gym bag for dirty clothes
- Put washer on
- Take clothes from the washer
- Hang clothes / put them into the dryer
- Collect from dryer
- Fold clothes / Iron if you're that type of person
- Put clothes away
And this goes for most things in life, down to taking a shower (Get new clothes, check for towel, put clothes away, turn own shower, dry floor from spillage, wipe down glass, etc) You get the drill.
How am I functional?
I barely am, but this helps.
Task Sequences for Everyone
Even if your life doesn't have to be granular, you may benefit from implementing sequences for big tasks:
- Grocery Shopping
- Batch Cooking
This leaves out most of the small steps like writing a shopping list and putting the groceries away, which I would sprinkle in. But it acknowledges that you can't meal prep if you don't have groceries.
Task Sequences for Creators
For the creators here, a task sequence might be:
- Planning Video
- Research Video
- Write Script
- Review Script
- Edit Script
- Film Setup
- Take Thumbnail
- Transfer Data
- Review Edit
- Add Youtube metadata
Or something similar.
The problem is that if I put 8 tasks on my to-do list and 7 are irrelevant, I teach myself to stop looking and I get overwhelmed and even worse, I lose track of some.
I need this to be a string rather than a hierarchy.
Find a way to implement sequences and hide the tasks that don't need to be done yet.
Hiding tasks follows a simple logic:
If any preceding tasks aren't done, hide the task.
That means tasks need to have a relation between each other, this modification is fairly mild, so let me walk you through it.
Here's the step-by-step:
Task sequences are implemented as a Relation in Ultimate Tasks, where one is the "Task before" and one is the "Task after" field for the sequence. Then we have a nice relationship between tasks.
When you set up this relationship with the database itself, it gives you a choice between one-way or two-way relationships. This needs to be two-way.
The Roll-Ups for Hiding Logic
Then I have 2 roll-ups,
- "Before done" pulls the Task in relation "Task before" with "Done".
- "Before due" pulls the Task in relation "Task before" with "Due".
We need two roll-ups to make recurring tasks work.
In case you don't have recurring tasks set up yet, here you go! It's free and fairly easy!
The Hiding Logic
The idea of a sequence is that any task should be hidden where the preceding task is either not done yet, or the preceding task has a due date after this task regardless of the status of the task.
The logic behind the "Before Done" is fairly easy. If all tasks before are checked off, it's time for "this task".
The logic behind the "Before Due" is a bit more involved if you haven't worked with recurring tasks yet. Recurring tasks get pushed to the next due date each night automatically and the "Done" checkbox is unchecked. That means a task in a sequence would be hidden every night, if we only check if the task before in a sequence is checked or not. However, if we check the Due date of the task before, we can show this task, if the due date of this task is earlier than it's preceding task.
Then "Hide" can be a formula for a checkbox (similar to the Cold task logic) that doesn't show a task, if the task before in a sequence isn't done and has a due date on the same date as this task.
if(empty(prop("Task Before")), false, if(prop("Before Done") > 0, false, if(prop("Due") < prop("Before Due"), false, true)))
If you're not using recurring tasks, this simplifies to just checking if the task before is done.
Now that we have a checkbox from the logic we applied to hide a task, we can simply add a filter the "Hide Sequence" isn't checked.
In the end, I created a few checks whether to hide a task, like "Cold" and "Hide Sequence" and combined all into one "Hide" checkbox that is checked if any of the other boxes are checked.
That way I can reduce my filters to just check if the "Hide" property is checked and additionally, I can implement more hiding logic, without having to fiddle with my Database views.
I implemented a task sequence to split up my tasks to make my task list work with my brain.
The final Schema in Notion Should be
[Task Before] -- relation --> [Task After] [Task After] -- relation --> [Task Before] [Before Done] -- roll-up --> [Task Before] - [Done] - [Count Checked] [Before Due] -- roll-up --> [Task Before] - [Due] - [Lastest Date] [Hide Sequence] -- formula --> if(empty(prop("Task Before")), false, if(prop("Before Done") > 0, false, if(prop("Due") < prop("Before Due"), false, true))) Optional: [Hide] -- formula --> prop("Hide Sequence") or prop("Cold")
Break up your task in the smallest possible element to make gradual but eventual progress and reduce the cognitive load!
I highly recommend using recurring tasks with this, as you only have to prepare elaborate task sequences once and have them recurr, but even without it's good to plan out big projects.
Hope that helps someone else!