Recurring tasks in Notion

We all have recurring tasks in our lives. Some of us want their task management system to reflect the recurring nature of our tasks. This post is for people who want all of that to take place in their Notion workspace.

🎭 Two types of recurring tasks

It's best to quote Todoist's description of the two types of recurring tasks:

You can create a recurring task that repeats at regular intervals from either the original task date or from the task's completed date.

  • Original date: This is useful for tasks that must be done on specific days, like school reports with exact due dates or paying your rent.
  • Completion date: This is useful for tasks that must be completed at regular intervals, but not necessarily on a specific day, like cleaning the house or working out.

You're probably interested in solving both types in Notion. August Bradley does an excellent job in this video, of showing how to implement original-date recurring tasks using Zapier, and optionally Google Calendar. We will therefore not elaborate further.

In this post we will focus on completion-date recurring tasks. Shoutout to our community member Kevin Vargas for sharing this specific approach with us!

⚡ Automating completion-date recurring tasks

Overview

  1. Create two properties in your Notion Tasks database:
  2. Interval (days) [Number]: we'll use it to save the number of days between occurrences of a task, and leave it empty for non-recurring tasks.
  3. Trigger [Formula]: outputs true/false whether this task is considered done AND has an Interval value set, i.e. it's time to create the next occurrence.
  4. Create a rule in the:gist that monitors the trigger formula and calls a webhook when triggered.
  5. Create a zap with a webhook trigger, that creates a new task with the same title, interval, etc.
  6. Enjoy not having to do this manually anymore.

Create Notion properties: the interval and trigger

I've added a number property called Interval (days) and a formula property called Trigger Recurring with the following formula:

not empty(prop("Interval (days)")) and prop("Done")

Notice how I leave the Interval property empty if I don't want it to recur, and notice how the trigger property is true (checked) only when a task is both done and has an interval.

Create the triggering rule in the:gist

Next, I start creating a new rule in the:gist. It will monitor the trigger property and call a webhook for every page that matches the rule.

I now need to create a zap, to get the webhook URL, so I can send test data to Zapier and use that test data to make sure the zap will do what I intend.

Create the task creation automation in Zapier

I've started creating the zap, using a Webhook's Catch Hook trigger, I'm copying the URL back into the:gist to send test data.

Next I'm using the test data to set up the zap's action and do a test run. Notice I'm copying over some values from the triggering page (that task marked as done) to the new page (the new instance of our recurring task) - properties like Title and Interval.

The coolest part is how we set the When property, by writing "today + 2 days", where the number 2 comes from the Interval value of the triggering page. This is how we're configuring our automation from within Notion. So in future if you want to change the time between instances, all you need to do is edit the Interval value in Notion.

We're ready to test this action and see the results. And... success! Notice how I have a new instance of the "Call my parents" task, set to 2 days after the day I marked the task as done.

Turn everything on and watch it in action

Last two important things to do:

  1. Click Turn on Zap in Zaper
  2. Click Create in the:gist to start monitoring for titles to set

Done.

So why is this cool?

✅ It solves a new kind of recurring task, based on completion date.

✅ Adjusting recurrence rate is easy - just edit the Interval property in Notion.

✅ No cleanup required - this approach only creates the next task when this one is done, while other approaches can leave you with "spam" tasks to clean up.

If you want some of this in your life, you're welcome to sign up at the:gist, or join our Slack community to chat with more fans of Notion + automation.

Elad Mallel

Co-founder & Product