Date number k
dₖ = d₀ + k × n units, while dₖ ≤ end
For k = 0, 1, 2… and at most 1,000 dates.
Generate the list of dates between a start and an end date, stepping by days, weeks, months or years, with the weekday of each date.
Check the dates and interval: the end date cannot be before the start date, and the interval must be a whole number of at least 1.
Generated dates
Generated dates
Generated dates
Need every date in November, every Monday of a quarter or one date per month until the end of the year? The date range generator starts at the start date, moves forward by a fixed step — N days, N weeks, N months or N years — and stops as soon as the end date is passed. Each date is numbered and shown with its weekday, ready to paste into a schedule, a spreadsheet or a calendar.
Date number k is the start date plus k times the interval, for k = 0, 1, 2… as long as the result does not pass the end date. The start date is therefore always first, and the end date only appears if it falls exactly on a step.
With days and weeks, the step is a fixed number of days (a week is 7 days), so the weekday stays the same. With months and years, the day of the month is kept; if it does not exist in the target month, it is moved to the last day of that month (31 January → 28 or 29 February). Because each date is computed from the start date, the 31st comes back as soon as a month allows it: 31 March, 31 May…
The list is capped at 1,000 dates to stay readable: beyond that, only the first 1,000 are shown. Calculations use plain Gregorian calendar dates, with no time of day or time zone.
It is the first date in the list and the anchor for all the others.
No date goes beyond it; it is included if a step lands exactly on it.
For example 1 day for every day, 2 weeks for a fortnightly rhythm, 3 months for quarterly dates.
The total number of dates is shown with each date and its weekday.
Every date derives from the start date, never from the previous one, so a month-end adjustment never carries over.
dₖ = d₀ + k × n units, while dₖ ≤ end
For k = 0, 1, 2… and at most 1,000 dates.
day = min(day of d₀, days in target month)
Moves the 31st to the 30th or to 28/29 February when the month is shorter.
The iCalendar format (RFC 5545), used by most calendar apps, does the opposite: it skips non-existent dates such as 31 February instead of moving them to the end of the month.
Generate every day of a month or every Monday of a quarter and paste the list into your sheet.
One date per month from 31 January to 31 December, with month ends adjusted correctly.
A class every 14 days between the start of term and the holidays, with the weekday visible.
Compare the generated list with the dates in a contract or payment plan to spot a gap.
The 31st comes back in March and May because each date is computed from 31 January.
Input
From 2026-01-31 to 2026-06-30, every 1 monthResult
6 dates: 31 Jan, 28 Feb, 31 Mar, 30 Apr, 31 May, 30 JunThe end date is included because it falls exactly on a step.
Input
From 2026-10-01 to 2026-10-10, every 3 daysResult
4 dates: 1, 4, 7 and 10 October 2026All Mondays, like the start date.
Input
From 2026-12-21 to 2027-01-11, every weekResult
21 Dec, 28 Dec, 4 Jan, 11 JanYes, if it falls exactly on a step. From 1 to 9 October every 3 days, the list stops at 7 October, because the next step (10 October) passes the end.
It moves to the last day of shorter months (30 April, 28 or 29 February) and returns to the 31st in months that have one, because each date is computed from the start date.
Common years give 28 February, and 29 February returns in the next leap year.
Up to 1,000. Beyond that the list is cut to the first 1,000 dates; use a larger interval or split the period.
Here the series stops at an end date. The recurring dates generator stops after a chosen number of occurrences, with no end date.
No. The tool works with plain calendar dates (day, month, year), so daylight saving time can never shift a date.
Related tools
Tools similar or complementary to this one.
Get the next N dates of a daily, weekly, monthly or yearly recurrence.
Add or subtract days, weeks, months or years from a date and get the resulting date with its day of the week.
Count the business days between two dates and shift a date by a number of working days, for a Monday–Friday or other working week.
Understand common date formats, avoid international ambiguity and learn when to use local dates, ISO 8601 or Unix timestamps.
Generate a date range or recurring series for schedules, repeated deadlines and date lists without a spreadsheet.
Date differences, durations, business days, ISO weeks, recurrences and formats: choose the right date and time calculation.
Understand the difference between a clock time and a duration, calculate intervals between times, and convert seconds, minutes, hours, days and weeks.