How to Build a Formula for Recurring Events in Notion
🔍 WiseChecker

How to Build a Formula for Recurring Events in Notion

Notion databases do not have a built-in recurring event feature like Google Calendar. Manually duplicating database entries for weekly meetings or monthly deadlines wastes time and creates data inconsistencies. A formula property can automate the calculation of the next occurrence date from a single start date and a recurrence interval. This article explains how to build a formula that generates recurring event dates for any schedule pattern.

Key Takeaways: Build a Formula-Based Recurring Date Generator

  • Date property + Number property (Interval): Store the initial event date and the number of days between repeats.
  • Formula property with dateAdd: Calculates the next occurrence by adding the interval to the original date.
  • Conditional logic with if: Hides the formula output until both input properties contain values.

How Notion Formulas Calculate Recurring Events

Notion formulas operate on a single row and cannot loop or reference other rows. To simulate recurrence, you define a base date and an interval in days. The formula then adds the interval to the base date to produce the next event date. This approach works for events that repeat on a fixed cycle — daily, weekly (every 7 days), biweekly (14 days), or monthly (30 days). The formula does not create new rows; it dynamically displays the next date based on the current row’s values.

Before building the formula, you need three properties in your Notion database:

  • Start Date — a Date property containing the first occurrence of the event.
  • Interval — a Number property specifying the number of days between events (for example, 7 for weekly).
  • Next Event — a Formula property that will display the calculated date.

Steps to Build the Recurring Event Formula

  1. Create the Start Date property
    Open your Notion database and click the + icon in the last column header. Select Date from the property type menu. Name the property “Start Date.” Enter the date of the first event in any row.
  2. Create the Interval property
    Add another column. Select Number as the property type. Name it “Interval.” In each row, type the number of days between events. For weekly events, enter 7. For biweekly, enter 14. For daily, enter 1.
  3. Create the Next Event formula property
    Add a third column. This time, select Formula as the property type. Name it “Next Event.” The formula box opens.
  4. Write the base formula
    In the formula editor, type: dateAdd(prop("Start Date"), prop("Interval"), "days"). This takes the Start Date and adds the number of days from the Interval property. The result is a date showing the next occurrence.
  5. Add a condition to prevent errors
    If either Start Date or Interval is empty, the formula shows an error or a default date. Wrap the formula in an if statement: if(empty(prop("Start Date")) or empty(prop("Interval")), "", dateAdd(prop("Start Date"), prop("Interval"), "days")). This displays a blank cell until both values are filled.
  6. Format the formula output as a date
    By default, the formula returns a date object. In the formula editor, click the three dots next to the property name and select Date format. Choose your preferred format (for example, “MMM D, YYYY”). The Next Event column now shows the next occurrence date in a readable format.

Common Mistakes and Limitations

Formula does not automatically advance after today passes

The formula above always shows the same date — the start date plus the interval. It does not check if that date has already passed. To show the next upcoming occurrence, you need a more advanced formula that compares the calculated date with today. Use the now() function inside a conditional: if(dateAdd(prop("Start Date"), prop("Interval"), "days") < now(), dateAdd(prop("Start Date"), prop("Interval") 2, "days"), dateAdd(prop("Start Date"), prop("Interval"), "days")). This checks if the first recurrence is in the past; if so, it adds the interval twice.

Formula does not handle weekly on a specific weekday

The simple interval method always adds the same number of days. If your event repeats every Tuesday regardless of the start day, a fixed interval may land on the wrong day. For weekday-specific recurrence, you must use the dateSubtract and dateAdd functions with the weekday number. This requires a lookup table of weekday offsets and is more complex. For most users, the interval method works for fixed-period events like "every 7 days."

Formula does not create new database rows

Notion formulas are row-level calculations. They cannot generate additional rows in the database. If you need a separate row for each occurrence (for example, to track attendance), you must duplicate the row manually or use a third-party automation tool like Zapier or Make. The formula only shows the next date in the existing row.

Simple Interval vs Advanced Rolling Recurrence

Item Simple Interval Formula Advanced Rolling Formula
Purpose Show the first recurrence date Show the next upcoming date after today
Key functions used dateAdd, empty, if dateAdd, now, if, comparison operators
Handles past dates No — always shows same date Yes — checks if date has passed and advances
Complexity Low — 3 functions Medium — 5+ functions
Best for Events that repeat on a fixed cycle from a known start Events where you always want to see the next real occurrence

The simple interval formula is easier to build and understand. The advanced rolling formula gives you a more practical result but requires careful nesting of conditionals. Choose the version that matches how you plan to use the database.

You now know how to build a formula that calculates the next occurrence of a recurring event in Notion. Start by creating the three required properties: Start Date, Interval, and Next Event. For a more robust solution, add a condition that checks now() and advances the date automatically. Use the dateAdd function with the "days" unit for the most predictable results.