How to Make Recurring Tasks in Notion

Short answer

Give each task an Every number, a Unit (days, weeks or months) and a Last done date. A formula adds them up to the next due date, and a button that sets Last done to today moves the task forward each time you finish it.

Rather skip the setup? Our Cleaning Schedule is ready to use, $9 once.
Recurring tasks in Notion: our test table with Next due and Due, the Mark done button settings, and Done buttons in our Cleaning Schedule

Try it: mark a chore done

Five chores, each with how often it comes back and when you last did it. Click Mark done and watch Next due and Due move, the same way the formulas below work in Notion. Change Every or Unit to see a new date.

Today is Nov 6

  • Water the plants Every Last done Nov 4 Next due Nov 7
    Due tomorrow
  • Change the bed sheets Every Last done Oct 30 Next due Nov 6
    Due today
  • Clean the fridge Every Last done Sep 20 Next due Oct 20
    Overdue
  • Descale the kettle Every Last done Oct 16 Next due Dec 16
    In 40 days
  • Wash the windows Every Last done empty Next due Nov 6
    Due today

Click Mark done on Clean the fridge, or change how often a chore comes back.

1. Set up the database

Each recurring task is one page in a database. Make a table and give it these properties:

PropertyTypeWhat it holds
TaskTitleThe chore, like Clean the fridge
EveryNumberHow many days, weeks or months between turns
UnitSelectThree options: days, weeks and months
Last doneDateThe day you last did it

Name the Unit options exactly days, weeks and months, in lowercase. The formula hands that word straight to Notion’s date math.

2. The Next due formula

Add a Formula property called Next due and paste this:

Next due
if(
  empty(prop("Last done")),
  today(),
  dateAdd(
    prop("Last done"),
    prop("Every"),
    prop("Unit")
  )
)

dateAdd adds Every and Unit to Last done. A task you haven’t done yet has no Last done, so it gets today’s date and shows up straight away. Here’s what Notion showed in our test on October 31:

TaskEveryLast doneNext due
Water the plants3 daysOctober 29November 1
Change the bed sheets1 weekOctober 24October 31
Clean the fridge1 monthSeptember 15October 15
Descale the kettle2 monthsOctober 10December 10
Wash the windows3 monthsEmptyOctober 31, today

3. Show what’s due

A date alone doesn’t tell you much at a glance. Add one more formula, Due, that says it in words:

Due
lets(
  next, if(
    empty(prop("Last done")),
    today(),
    dateAdd(
      prop("Last done"),
      prop("Every"),
      prop("Unit")
    )
  ),
  d, dateBetween(
    next, today(), "days"
  ),
  ifs(
    d < 0, "Overdue",
    d == 0, "Due today",
    d == 1, "Due tomorrow",
    "In " + format(d) + " days"
  )
)

The part after next is the Next due formula again, so Due works on its own. dateBetween counts the days from today to the next date, and ifs picks the first line that fits. Our five chores showed Due tomorrow, Due today, Overdue, In 40 days and Due today.

Then sort the table so the most urgent chore comes first: click the sort icon (two arrows) at the top right of the table and pick Next due.

A Notion table of five chores sorted by Next due: Clean the fridge overdue, two due today, one tomorrow and one in 40 days, each with Mark done
Our test table sorted by Next due. The Done column is the button from the next step.

4. Add a Mark done button

Typing today’s date each time gets old fast. A Button property does it in one click:

  1. Click + at the end of the table’s header, pick Button and name it Done.
  2. Click the Done column name and pick Edit automation.
  3. Click the name at the top of the box and type Mark done. That’s the text on every button.
  4. Click New action, pick Edit property, then Last done, then Date triggered.
  5. Click Save.
The Mark done button settings in Notion: when the button is clicked, edit this page and set Last done to Date triggered
One action is all it needs: Last done becomes the day you click.

In our test, Clean the fridge was overdue since October 15. One click on Mark done set Last done to October 31, Next due jumped to November 30 and Due changed to In 30 days. Date triggered saved just the day, with no time, like the dates you type in yourself.

The same Notion table after clicking Mark done on Clean the fridge: Last done October 31, Next due November 30 and Due In 30 days
After one click: Clean the fridge moves down the list until late November.

Or let Notion make a new page on a schedule

Notion has a repeat option of its own. Make a database template, open the New dropdown, click ••• next to the template and choose Repeat. You can pick daily, weekly, monthly, yearly or a custom schedule, like every Tuesday and Thursday, and Notion adds a fresh page each time.

That suits things tied to set days, like a weekly review or a daily checklist. For chores that come back a set time after you last did them, the Mark done button keeps one page per chore, so the list doesn’t fill up with copies. For a checklist you want to start fresh every morning, see how to reset checkboxes in Notion.

If your recurring task isn’t working

Questions

How do I make a task repeat in Notion?

Give the task how often it repeats (a number and a unit) and the date you last did it. A formula adds the two to get the next due date, and a button sets the last date to today when you finish. The task stays one page and its date moves forward each time.

Does this work on the free Notion plan?

Yes. We built it in a workspace on the free plan: both formulas, the Mark done button and the sort all worked.

What happens if I miss a chore for a few days?

It shows Overdue until you click Mark done. The next date then counts from the day you click, so a weekly chore you catch up on a Thursday comes back the following Thursday.

Can a task repeat every 2 weeks or every 3 months?

Yes. Set Every to 2 and Unit to weeks, or Every to 3 and Unit to months. In our test, 1 month after September 15 gave October 15, and 2 months after October 10 gave December 10.

Should I use Notion’s Repeat option instead?

Repeat makes a brand new page on a schedule, which suits things tied to set days, like a weekly review every Sunday. For chores that come back a set time after you last did them, one page with a Mark done button keeps the list short.