Recurring Tasks in Notion

After trying dozens of different methods, I’ve created the ultimate way to create recurring tasks in Notion, without a need for manual work each week. This automation with Make (formerly Integromat) checks a separate database to see what tasks it should build today.

  1. Create the Notion databases
  2. Set up the Make automation
  3. Configure & deploy!

Notion Databases

In order to build recurring tasks in Notion, we’ll need two databases.

  1. A task database
  2. A recurring task management database

First, we need a task database. For the purposes of this tutorial, we’ll just make a new, simple one, but you can also use a database that you already have set up.

Next, we’ll make another database to manage our recurring tasks.

Here are the properties that we’ll need to add into this database:

  1. Last Due Date – The last time this task was due
  2. Recur Every – How long between task creation (ex. 1 for daily, 7 for weekly)
  3. Next Due Date – A calculation, adding the two above
  4. Build X Before – How many days before the due date you’d like this task to be created
  5. Task Build Date – The date the task is created
  6. Trigger Today? – A check to see if the task needs to be created today

First up, “Last Due Date” will be a simple date property, and I’ve changed the format to Month/Day/Year.

Next, a basic number property for “Recur Every.”

Now, it’s time to write some formulas. For “Next Due Date” we need to add together the two previous properties. We can do this with the dateAdd function in Notion.

dateAdd(prop("Last Due Date"),prop("Recur Every"),"days")

After this, one more normal number property, this time for “Build X Before.”

Back to some formula fun for the rest of this database! We need to now create a formula for “Task Build Date.” It’ll be just like the last formula we wrote, but now we need to use dateSubtract.

dateSubtract(prop("Next Due Date"),prop("Build X Before"),"days")

Finally, we just need a checkbox to see if this task needs to be built today.

formatDate(prop("Next Build Date"), "L") == formatDate(now(), "L")

Great! Now that the Recurring Tasks database is all setup, I’ll add in some data, and we can move into the automation part.

Recurring Task Automation

For this tutorial, we’re going to be using Make (formerly known as Integromat) for our automation. I’ve done this in too, which requires a paid plan in order to do this. However, with Make, you can do this completely for free. You can only set up 2 scenarios (automations) on a free account, but you can add as many steps within the scenario that you so desire! I do have an affiliate link with them, but they’re my recommended choice regardless of if you choose to use my affiliate link or not.

In Make, let’s create a new scenario called recurring tasks.

We’ll click on the big plus button, and type in “Notion” in the search bar that comes up. Select “Notion” from the list and go through the steps to set up your connection if you haven’t already.

If you have already set up the Notion integration (or haven’t for that matter) it’s important that you make sure that Make/Integromat has access to the two databases that we have built. Make sure to go to the upper right of your Notion page and select Share > Invite > Make/Integromat.

Since this will be a once-daily automation, our trigger will be a “Search Objects” module. Once you click on that, under “Database ID” click on the “Search” button, then type in the name of your database on the next pop-up, followed by “Ok.”

This should auto-populate the Database ID field with a long string of numbers. If nothing happens, double-check your spelling of the database, and make sure that Make has access to the database.

Once the Database ID field populates, we’ll click on “OK” at the bottom.

Closing out of this module, then re-opening it gives us another field, this one named “Filter.” Here, we’ll want to filter for items only with the checkbox clicked.

For this filter property, we’ll select the “Trigger Today?” field. For the second field, we’ll search for “check” and select the “Checkbox – Equals” filter. Finally, to the last field, we’ll add the “true” key on the second page of Make’s functions/mappings popup.

We’ll select “OK” and then right click on the module and select “Run this module only” to check to make sure it’s working, as well as populate the mappings that we can use later.

Next, it’s time to actually build the task. Click on the plus button next to the current module, then select “Notion” from the list.

This time, we want to select “Create a Database Item.”

Like we did before, we’ll select search, then enter in the name of our actual tasks database, then press “Ok” in the pop-up window. After the database ID populates, you should see all of the fields of your task database show up.

From here, we’ll assign whatever properties we want to populate each time. You can add as many new properties as you want to the Recurring Tasks and Tasks database. Some great options include task status, assignee, priority, or you can even set relation properties based on page ID. The world is your oyster!

For the purposes of this tutorial, we’ll just pass over the title and due date.

To pass through the title, we’ll click on the name property, then map the properties_value > Name[] > plain_text from the first module.

For the date property, we want to set it as the “Next Due Date.” For this, we’ll click on the Due Date Start Time in our new task, and map it as the properties_value > Next Due Date > date > start value from the first module.

Finally, we’ll also just set the Include Time property to No, since we don’t need that.

Now that all of our properties are mapped, we just need to create one more module, where we update the recurring task database to let it know the task has been created.

We’ll create another Notion module, this time selecting “Update a Database Item.”

We’ll do the same as we did before, this time searching for our “Recurring Task” database.

We’ll press “OK” on both pop-up windows, then re-open the module to get all of our properties that we can configure.

For the Database ID field, we want to map this to the page ID that was found in the very first module. So, we’ll scroll down until we see the “Notion – Search Objects” mappings, and selece “Page ID.”

The last mapping we’ll add is for the “Last Due Date.” We want to set this as the current “Next Due Date” from our very fist module. We’ll click on the Last Due Date Start Time, and scroll down to “Notion – Search Objects,” and map this as properties_value > Next Due Date > date > start (the same as the due date we set in the second module).

And again, we’ll set “Include Time” to No.

There we have it! All of the mappings and modules have been set up! Now, we just need to put the finishing touches on the configuration, and we’ll be ready to send it live.


There’s two steps to setting up the configuration.

  1. Set when we want the automation to run
  2. Set the maximum tasks per day
  3. Test and go live

First off, we need to choose how frequently/when the automation will run. We can do this with the “Schedule setting” in the bottom left of Make.

With our recurring task automation, we only want it to run once per day, to save on the amount of operations. In order to do this, however, we need to make sure we set the “max number of operations per run” to a number greater than the number of tasks that will be built in any given day. We’ll set that up next, but we’ll set this automation to run daily first.

Where it says “Run scenario: At regular intervals,” we’ll select that and change it to “Every day.”

You wont catch me waking up any time earlier than 6am, so I’ll set this to run at 5am every day. Choose whatever time you’d like these tasks to build!

Press “OK” and we’re ready to move on!

Now’s a good time to set the limit of how many bundles (a.k.a recurring tasks) will run each day. This limit is set to make sure that you don’t accidentally use up all of your operations in one go. To get to it, click on the first module, then scroll down to the bottom of it’s settings to see the limit field.

Again, you’ll want to set this number to more than the number of maximum recurring tasks you’ll have on any given day, plus some extra for when you add new ones in. For example, if I had 10 recurring tasks in my databse, I might set this number to 20-25, depending on how many I see myself adding in the future. Press “OK,” and we’re all set here!

Finally, we get to save it, test it, and set it live.

Make sure that you have some test data in Notion, with at least one recurring task that would trigger today.

First, we’ll click “Save” at the bottom of Make, then click on “Run once” to make sure that it’s working.

If everything goes right, then you should see green checkmarks across the board, and should see your new recurring task in Notion!

Leave a Comment