Recurring Tasks in Notion

Updated 14-Sep-2023

Notion Recurring Tasks

As of early 2021, Notion does not have recurring tasks. There are several workarounds for this, with various tradeoffs. Which approach to use has to do most with what kind of recurring tasks are being supported: daily habits, weekly or monthly tasks, ongoing tasks such as shopping lists, etc.

Dashboards for Task Management

Everyone has a variety of tasks to perform: some daily, some project-based, some weekly, some monthly, some quarterly, and some annually. There may be a single place to put all tasks, though the visualizing of the tasks would mean creating several different views, including:

  • Checklist of daily tasks
  • Overdue, due, and upcoming tasks (recurring and one time)
  • Views based on type of task (personal, business-related)
  • Tasks organized by project

It may be wisest to work out the dashboard displays first, to see just how the data could repose to fit the desired workflow.

Dashboards should provide an overview as well as allow focus on what is most important, timely, or both. Indications should include:

  • Overdue tasks highlighted
  • Priority of tasks (urgency and importance)
  • Reminders should fire as needed on the most important tasks

Three kinds of tasks: recurring, ongoing, one-time

In organizing tasks, including habits, there appears to be at least three kinds of tasks, with various subtypes:

Recurring tasks

  • Daily recurring tasks (habits)
  • Recurring tasks (weekly, monthly, quarterly, yearly), both project and non-project-based

Ongoing tasks

  • Ongoing tasks, such as sopping lists, that never fully go away, but the description changes

One-time tasks

  • One-time tasks (project-based)
  • One-time tasks (one-off, not project based, such as errands)

Daily recurring tasks (habits) should be in their own table, created ongoing with a template button.

Mechanisms for Recurrence

There are two basic mechanisms for recurrence:

  • Recreating new tasks based on a template (using a create template button)
  • Resetting the due date to a future date, either by
    • selecting the new date manually (with a field that provides a hint), or
    • toggling a checkbox that then sets the date based on last modification date of the task

If one wants to calculate the number of tasks completed either altogether or on-time, via a rollup, then one needs to have either multiple instances of the tasks (one for each day it is due), or one needs to have separate log entries for each instance the task is complete.

Recreating new tasks based on a template

This is the method used by Marie Poulin as of 18 November 2021 (it supersedes an earlier method). It includes using an Add Template button, that can automatically create multiple blocks (including pages using a task template). These new tasks are then dragged and dropped into a calendar view.

For tasks that need to be tracked, and that are performed often, such as habit tracking, this works well, as each task that is created (and saved in the Add Template button can be connected with a project, and therefore rollups can be calculated based on a done checkbox (and also, the calendar and task list views can be filtered to not show done tasks). For example: Exercise can be the project and Morning Run can be the tasks.

This works well for habit tracking, though it is better to have one task per day with multiple checkboxes, one for each habit.

Changing the due date on a recurring task

For tasks that do not need tracking, just getting done, with recurrence, then changing the next due date makes sense. There are many folks using Notion who have a variety of methods to calculate the next due date. Generally one needs an initial due date, an interval for recurrence, and a next due date. Just using the next due date as a hint for manually setting that due date, it is enough for having the next due date be based on today + interval. Thomas Frank's tasks and projects template uses just this method.

For changing the next due date automatically, this can be done by calculating based on a last edited field. Unfortunately any editing to the task will update this field, while the checkbox is checked. In addition, the checkbox never unchecks itself, so it has to be treated like a toggle rather than a checkbox. This seems to be more work than actually changing the date or recreating future tasks and dragging them into a calendar.

Our approach is to simply have these tasks, associated with some kind of project, and then have them appear in a task list based on near-term date. A colored status marker can indicate if the task is due, overdue, or not assigned a date.

Ongoing task list and one-off non-project tasks

Next, how should we deal with an ongoing, every changing task, such as a shopping list, or a list of today's tasks. This is best dealt with not as a task but a simple list, with affordances such as checkboxes. It really is that simple and straightforward.