Recurring Tasks

Ultimate Brain comes with out-of-the-box support for recurring tasks. They just work. 😎

When you give a task a Due Date and a Recur Interval, each time you set that task’s Status to Done, Notion will automatically update the Due Date and set the Status back to To Do.

In short, recurring tasks in Ultimate Brain work just like they do in any other task management app. It comes with a built-in automation to process tasks as you finish them, which means there’s no need for a third-party app like Zapier or Pipedream to be in the mix.

Ultimate Brain also has the most powerful recurring tasks formula you’re ever going to see (you can see it here), which means it:

  • Supports advanced intervals like Last Weekday of the Month
  • Supports recurring on specific days of the week, e.g. “Every Mon, Weds, Fri”
  • Intelligently handles overdue tasks

Creating a recurring task in Ultimate Brain is easy. As long as a task has a Due Date and a Recur Interval, it’s a recurring task.

Want to make a task that repeats every day? Give it a Due Date, then set its Recur Interval to 1. You’re done.

Of course, you can get a lot fancier with your intervals if you want. Here’s the complete guide to setting up recurring tasks:

Open up any task after you’ve created it, and you’ll see a Recurring Task Properties section in the property panel. This section shows three properties you can edit:

  • Recur Interval – the number of units to recur by
  • Recur Unit – the unit, e.g. “Day(s)”, “Week(s)”, or “Month(s) on the Last Weekday”
  • Days (Only if Set to 1 Days(s)) – lets you set specific days of the week

Hint: If you don’t see the property panel, hit the ••• button next to the pinned properties under the page title. Alternatively, use the /Ctrl + Shift + \ keyboard shortcut.

Once you’ve added both a Due Date and a Recur Interval, you’ll see a Next Due property show up as well. This is the date on which the task is next due, after the current due date. When Notion automatically processes the task, it’ll use the Next Due date to set the new Due Date.

By default, tasks recur every X days, where X is the number you entered in Recur Interval.

You can change this by setting the Recur Unit property. Here are a few examples:

Recur IntervalRecur UnitInterval
1Day(s)Daily
3Week(s)Every 3 weeks
2Month(s) on the Last WeekdayEvery 2 months on the last weekday of the month

But what if you want a task to only recur on certain days – like Monday, Wednesday, and Friday?

This is where the Days (Only if Set to 1 Day(s)) property comes in. This long-named property lets you choose specific days of the week on which your task will recur. As its name implies, it only works if Recur Interval is 1 and Recur Unit is Day(s).

Ultimate Brain comes with a database automation that will process recurring tasks immediately after their Status is set to Done.

Most views in Ultimate Brain show the Status property as a checkbox, so this means the automation will trigger when you check off a task.

The automation does the following:

  • Sets the Due Date property to the current value of Next Due
  • Sets Status back to To Do

This automation will only trigger for tasks that have a Recur Interval of 1 or greater.

In general, this automation should just work for you. If you do want to edit it, note that you’ll need to be on a paid Notion plan. This is because database automations require a paid plan to be edited or created – though folks on the free plan can use automations that ship with templates.

Ultimate Brain 3.0 also ships with an Advanced Recurring Tasks automation. Much like the one described above, it triggers when a recurring task’s Status is set to Done, and it sets the Status back to To Do while updating the Due date.

Additionally, it enables Task History. When the automation runs, it will create a duplicate of the recurring task, which will inherit the Due date from the recurring task, a Completion Date, and some of the other properties from the recurring task.

You can then apply the Recurring Task w/ History page template to your original recurring task, and you’ll see a list of all instances when you’ve completed that task in the past.

This automation is disabled by default in Ultimate Brain.

To enable it, follow these steps:

  1. Unlock your Tasks database.
  2. Click the ⚡️ icon on any view of the Tasks database to access its Automations.
  3. Click the Recurring Tasks (Simple) automation and make it inactive.
  4. Click the Recurring Tasks (Advanced) automation and make it active.

You can do this process even if you’re on Notion’s free plan. However, keep in mind that actually editing the automations, or creating new ones, requires being on a paid Notion plan.

Here’s a full video tutorial:

Below, you’ll find some additional guidance around customizing the way recurring tasks work. These sections are based on answers we’ve written for customers in our support community.

In the video below, you can see me building the Advanced Recurring Tasks Automation shown above from scratch. You likely won’t need to do this, as the automation comes standard with Ultimate Brain 3.0, but I’ve posted it here for anyone on a legacy template who may want to build it.

One of our customers asked:

“Is it possible to make it if I complete a daily task after midnight it would change it to the same day? I usually stay up pretty late and recurring tasks would skip a day. I don’t like manually setting the next date if after midnight. If there’s a way to delay the Next Due date by 4 hours I’d love that.”

Fortunately, this is possible! It just involves editing the Next Due formula. You’ll need to unlock your Tasks database before you can edit this formula.

If you take a look at the Next Due formula’s code, you’ll find a line like this (you may want to use /Ctrl + F to find it):

timeNow, now(),
Code language: JavaScript (javascript)

This section defines a variable (within lets) that gets the current date and time from the now function.

Therefore, we can change this line to the following:

timeNow,
if(
	now().formatDate("H").toNumber() < 4,
	dateSubtract(now(), 1, "days"),
	now()
),
Code language: JavaScript (javascript)

Now, the value of the timeNow variable is dynamically determined based on the current time of day. If the current time is earlier than 4am, timeNow is one day earlier than the current date. This will cause the Next Due formula to calculate the next due date as if it was still yesterday.

Note: This solution has only been tested with the native database automation that processes recurring tasks directly in Notion. It has not been tested with the older Pipedream script. You’d need to update the Next Due API property in the same manner described above for this to work, and even then it may not work due to how the Notion API handles time values.

Do you have recurring tasks that would have subtasks?

In general, my recommendation is to make those “subtasks” into simple to-do boxes because of a few key limitations in Notion’s automation capabilities, which make combining actual subtasks and recurring tasks difficult.

When building an automation to process a recurring task, we set its Due date to the Next Due date and we change its Status back to “To Do”.

So in order to process related Sub-Tasks, we would also want to change their due dates and update their statuses as well.

But when editing other pages in a database from an automation, we currently cannot filter that set of pages that we’re going to edit by a relation to the page which triggered the automation. This is a major limitation in Notion automations, and it currently blocks many kinds of workflows – this one included.

However, if you absolutely need these recurring tasks and sub-tasks to work together, there is a way to do it. In this video, I explain that key limitation in more detail and provide a workaround:

🤔 Have an UB Question?

Fill out the form below and I’ll answer as soon as I can! ~Thomas

🤔 Have a Question?

Fill out the form below and I’ll answer as soon as I can! ~Thomas