Recurring Dates Generator

Generate a simple date list by days, weeks, or months, then copy it as CSV.

Rule

Recurrence type

Result

12026-01-01
22026-01-15
32026-01-29
42026-02-12
52026-02-26
62026-03-12

Pick a start date, choose a recurrence type, and the calculator returns a finite series of ISO dates ready to paste into a calendar or spreadsheet. Two patterns are supported: a fixed interval (every N days, weeks, or months) and the nth weekday of every month (e.g. third Tuesday, second Friday). The series runs in UTC, so the answer never shifts because of your local time zone. For one-off offsets use the date math calculator; for the inverse problem of counting working days inside a span, see business days between.

Common use cases

  • Weekly team meeting on the same day. Schedule the next ten Mondays for a recurring standup. Set a Monday start, every 1 week, count 10. Copy the list into your calendar invite or paste it into a meeting agenda template.
  • Bi-weekly payroll dates. Most US bi-weekly schedules pay every 14 days from a known anchor. Set the anchor as start, every 2 weeks, count 26 to get a year of pay dates. Cross-check against your payroll provider before publishing to staff.
  • Monthly invoicing on the same day-of-month. A SaaS contract bills on the 15th every month. Start 2026-01-15, every 1 month, count 12. The clamp rule covers months that lack the requested day, so a 31st-of-month series still produces a valid date in February.
  • Third Tuesday of every month for a board meeting. Switch to the nth-weekday-of-month pattern, pick ordinal 3 and weekday Tuesday. The calculator returns the third Tuesday of each month regardless of how the dates fall on the calendar grid, which is how most boards schedule.
  • Quarterly check-in on the same date. A vendor review happens every 3 months from the kickoff. Start at the kickoff date, every 3 months, count 8 to get two years of review dates. Pair with the weekday lookup to spot any that land on a weekend.

How it works

The calculator parses the start date as a plain YYYY-MM-DD value and walks the calendar according to the chosen pattern. The interval mode multiplies the index by the step size and adds days, weeks, or months via date-fns. The nth-weekday mode resolves each month's target weekday from the first of the month and skips months that lack the requested occurrence.

  1. Choose a recurrence type. Interval expands every N days, weeks, or months from the anchor. Nth weekday of month locks to a specific weekday and ordinal position. The two modes cover most calendar invites and contract clauses.
  2. Enter the start date. Pick a date in YYYY-MM-DD form. The browser date picker writes the value for you. For nth-weekday mode the date selects which month the series begins from; the actual first date may differ.
  3. Set the rule fields. For interval mode, set Every (a positive integer), Unit, and Count. For nth-weekday mode, set Ordinal (1st through 5th), Weekday, and Count. All inputs must be whole numbers ≥ 1.
  4. Read and copy the series. The result panel lists every generated date in YYYY-MM-DD form. Use the copy button to grab the list as CSV for spreadsheets, or paste straight into calendar bulk-import flows that accept ISO dates.

Worked examples

Weekly meeting starting on a Monday

Interval mode, start 2026-04-27, every 1 week, count 5.

Result: The calculator returns 2026-04-27, 2026-05-04, 2026-05-11, 2026-05-18, 2026-05-25.

Each entry is exactly seven days after the previous one, so the weekday stays Monday across the whole series. The same shape works for any other weekday by shifting the start.

Monthly invoicing on the 15th

Interval mode, start 2026-01-15, every 1 month, count 6.

Result: The calculator returns 2026-01-15, 2026-02-15, 2026-03-15, 2026-04-15, 2026-05-15, 2026-06-15.

The day-of-month stays at 15 because every target month has at least 15 days. A start of 2026-01-31 with the same rule clamps to 2026-02-28 in February and 2026-04-30 in April.

Third Tuesday of every month

Nth-weekday mode, start 2026-01-01, weekday Tuesday, ordinal 3rd, count 4.

Result: The calculator returns 2026-01-20, 2026-02-17, 2026-03-17, 2026-04-21.

The first hit lands on January 20 because that is the third Tuesday in January 2026. The series advances one month at a time and resolves the third Tuesday in each.

Bi-weekly payroll for three pay periods

Interval mode, start 2026-04-27, every 2 weeks, count 3.

Result: The calculator returns 2026-04-27, 2026-05-11, 2026-05-25.

Each entry is 14 calendar days after the previous one. Bi-weekly schedules are exact: 26 pay dates fit in a typical year, with 27 in some years depending on the anchor.

Month-end clamp on a 31st-of-month series

Interval mode, start 2026-01-31, every 1 month, count 4.

Result: The calculator returns 2026-01-31, 2026-02-28, 2026-03-31, 2026-04-30.

February clamps to 28 because the month has no 31st; April clamps to 30. The day-of-month does not "remember" 31 across the clamp, so the May entry would also clamp rather than recover.

Edge cases & gotchas

  • Month-end clamping on monthly intervals. When a target month has fewer days than the start day-of-month, the entry clamps to the last valid day. Jan 31 plus 1 month returns Feb 28 in a non-leap year and Feb 29 in a leap year. The clamp follows date-fns and matches most billing systems. Other tools sometimes roll forward to March 3 instead, which is the source of disagreement when comparing series across products.
  • Fifth-weekday months get skipped. Not every month has a 5th occurrence of every weekday. February 2026 has only four Mondays, so a "5th Monday" rule advances past that month and resolves the next one that does have a 5th Monday. The calculator keeps walking forward until it has produced the requested count, capped at a safety limit of 12× count months to prevent runaway loops.
  • Inputs must be whole positive numbers. Both Every and Count are validated. Zero, negatives, and fractional values throw an error rather than silently coercing. If you need a single date with no recurrence, set count to 1; the series will contain only the start date.
  • No timezone conversion happens to the dates. The series is plain ISO calendar dates with no time component, so there is no daylight-saving math to worry about. A weekly interval that crosses a DST boundary still adds exactly seven calendar days. Attach a time later in your calendar app, where DST is handled by the event itself.

Frequently asked questions about Recurring Dates Generator

What is the difference between the two recurrence types?

Interval expands by a fixed step (every N days, weeks, or months) from the start date. Nth weekday of month locks to a specific weekday-and-ordinal pair (e.g. third Tuesday) and resolves that pair in each successive month. Pick interval for "every other week"; pick nth-weekday for "third Tuesday of every month."

Why does Jan 31 plus 1 month return Feb 28 instead of March 3?

Month-end clamping. The calculator follows date-fns, which limits the result to the last valid day of the destination month rather than overflowing forward. The convention matches Java Time and most accounting systems. Other tools sometimes roll forward; the choice affects renewal dates, so check what your contract specifies before relying on either.

Does the calculator output an iCalendar RRULE?

No. It outputs a finite series of ISO calendar dates, one per line, suitable for copying into a calendar or spreadsheet. RRULE is a separate compact format defined by RFC 5545; this tool produces the expanded equivalent that most users paste into invites.

How many dates can I generate at once?

The form accepts any positive integer count, but readability degrades past a few hundred entries. The nth-weekday mode caps internal iteration at 12× count months as a safety guard against pathological inputs. For most calendar use cases (a year of weekly meetings, two years of monthly invoices), the answer is well under 100 dates.

What happens at year boundaries?

The walk crosses December 31 like any other day. A weekly series spanning year-end produces consecutive dates such as 2026-12-28 and 2027-01-04 with no special handling. Monthly and nth-weekday series also cross the boundary directly. ISO 8601 weeks are not used; the calculator counts in plain calendar units.

Why does a "5th Monday" series sometimes skip a month?

Many months have only four Mondays. The calculator advances the cursor by one month per attempt and emits a date only when the target month contains a 5th occurrence of the weekday. The output spans more elapsed time than a 1st-Monday series of the same count.

How is this different from one-off date math?

This tool generates a series. For a single forward or backward shift use the date-math calculator; for the gap between two known dates use the days-between counter. Repeating event metadata (name, host, link) belongs in your calendar; this tool only emits the dates.

Glossary

Interval
A fixed step size between consecutive entries: every N days, weeks, or months. Combined with a count, it produces a finite series anchored at the start date.
Ordinal
The numeric position of a weekday within a month: 1st, 2nd, 3rd, 4th, or 5th. The 5th position is not present in every month and gets skipped when absent.
Month-end clamp
When a monthly walk lands on a day that does not exist in the destination month, the entry is set to the last valid day of that month. Jan 31 plus 1 month becomes Feb 28 or Feb 29.
Anchor
The start date that grounds the series. Interval entries are computed relative to the anchor; nth-weekday entries use the anchor only to pick the starting month.
CSV export
A comma-separated text dump of the series, one date per line. Most spreadsheets and calendar bulk-import flows accept ISO dates in this form.

Related Time Tools