Calendar Date Series Generator

Generate Dates
Next

Need every Monday of next year, the 15th of every month for the next two years, or the second Tuesday of each quarter? This tool generates the full series from a start date, an end date and a recurrence pattern. Output as a plain list, ICS calendar file, or CSV you can paste into Google Sheets — pick the format that matches where the dates are going.

How to generate a date series

  1. 1

    Pick start and end dates

    Or set a count instead of an end date. Useful when you want "next 52 Mondays" regardless of year boundary.

  2. 2

    Choose the recurrence pattern

    Daily, weekly (with weekday selection), monthly (by day-of-month or by ordinal weekday), yearly, or a custom interval (every 3 days, every other Thursday).

  3. 3

    Exclude weekends or holidays (optional)

    For business-day series, the generator skips Saturdays, Sundays and selected holiday regions.

  4. 4

    Export the list

    Plain text, ISO-8601, Markdown list, CSV or .ics file ready to import into Google Calendar, Outlook or Apple Calendar.

Common recurrence patterns

Pattern Example output
Every Monday Jan 6, Jan 13, Jan 20, …
Every 2nd Friday Jan 10, Jan 24, Feb 7, …
15th of every month Jan 15, Feb 15, Mar 15, …
Last weekday of the month Jan 30, Feb 27, Mar 30, …
Second Tuesday of the month Jan 13, Feb 10, Mar 10, …
Every 3rd day Jan 1, Jan 4, Jan 7, Jan 10, …
Quarterly (Jan 1, Apr 1, Jul 1, Oct 1) 4 dates per year

When dates hit weekends or holidays

Pick your policy:

  • Keep the exact date, even on a weekend.
  • Roll forward to the next weekday.
  • Roll backward to the previous weekday.
  • Skip entirely (drop the instance from the series).

Banking conventions (SOFR, LIBOR-era, bond coupons) vary — the generator exposes all four so you can match the one your use case needs.

Output formats

  • Plain text: one date per line, handy for pasting into a to-do list.
  • Markdown list: ready for Notion, Obsidian, GitHub issues.
  • CSV: date, day_of_week, week_number — for spreadsheets.
  • ICS: a single calendar event with an RRULE, imported into any calendar app. Great when you want the series to live in your calendar, not a spreadsheet.
  • ISO-8601: 2026-01-06T00:00:00Z — machine-friendly for API payloads.

Tips

  • For meetings that shift when holidays hit, generate with “roll forward” and re-check the first few dates manually.
  • For month-end series, pick “last day of month” rather than “the 31st” — February and short months otherwise get dropped or roll weirdly.
  • Count beats end date for ongoing schedules (next 24 paychecks, next 52 weekly reviews). Less maintenance when the calendar ticks over.

Frequently Asked Questions

Yes. Feb 29 is only included in leap years; other February-29 fallbacks (like “last day of February”) generate correctly in both leap and non-leap years.

By default no — the export is silent dates so your calendar will not ping you. A toggle adds a 15-minute pre-event reminder if you want one.

Up to 5,000 per series. That covers every business day for 20 years if you need it; most users are in the 12-365 range.

Yes. Pick any IANA timezone (America/New_York, Europe/London, Asia/Tokyo, etc.); the ICS uses that timezone correctly so calendar apps do not shift the series.

Related Tools