Zero Signup ToolsFree browser tools

Date & Time Tools

Date Range Generator

Generate a list of every date between two dates with daily, weekday, weekly, every N days, monthly, or yearly steps. Skip holidays, format, and export.

Range

Inclusive on both ends.

30 calendar days in the range.

Step

Every calendar day in the range, including weekends.

Filters

Leave empty if you do not need to skip specific dates.

Output format

Example: 2026-06-05

Choose comma or semicolon for inline use in SQL IN clauses or spreadsheets.

Result

30 dates · Every day

2026-06-08
2026-06-09
2026-06-10
2026-06-11
2026-06-12
2026-06-13
2026-06-14
2026-06-15
2026-06-16
2026-06-17
2026-06-18
2026-06-19
2026-06-20
2026-06-21
2026-06-22
2026-06-23
2026-06-24
2026-06-25
2026-06-26
2026-06-27
2026-06-28
2026-06-29
2026-06-30
2026-07-01
2026-07-02
2026-07-03
2026-07-04
2026-07-05
2026-07-06
2026-07-07
Show table view (30 rows)
#FormattedWeekday
12026-06-08Monday
22026-06-09Tuesday
32026-06-10Wednesday
42026-06-11Thursday
52026-06-12Friday
62026-06-13Saturday
72026-06-14Sunday
82026-06-15Monday
92026-06-16Tuesday
102026-06-17Wednesday
112026-06-18Thursday
122026-06-19Friday
132026-06-20Saturday
142026-06-21Sunday
152026-06-22Monday
162026-06-23Tuesday
172026-06-24Wednesday
182026-06-25Thursday
192026-06-26Friday
202026-06-27Saturday
212026-06-28Sunday
222026-06-29Monday
232026-06-30Tuesday
242026-07-01Wednesday
252026-07-02Thursday
262026-07-03Friday
272026-07-04Saturday
282026-07-05Sunday
292026-07-06Monday
302026-07-07Tuesday

All dates are computed in your browser using local time. Nothing is uploaded.

Worked examples

Tap any preset to load a realistic range and step into the form.

What this tool generates

  • A full sequence: every qualifying date inside the inclusive start-to-end window, not a random sample. Pair with the random date generator if you need a sample instead.
  • Flexible steps: consecutive days, weekdays only, every N days, multi-select weekdays, a fixed day of month, or the same day each year.
  • SQL-ready output: switch to comma separator, the SQL DATE literal format, or add a prefix and suffix to paste straight into an IN (...) clause or an INSERT statement.
  • Holidays: paste an optional holiday list in YYYY-MM-DD format to omit specific dates from the output.
  • Reproducible: the tool is deterministic. Identical inputs always produce the same list, which makes it safe for fixtures and documentation.

Notes and edge cases

  • Both endpoints are inclusive. A start of 2026-06-01 and an end of 2026-06-30 with the daily step produces 30 rows.
  • The monthly step asks how to handle months without your chosen day. Clamp to the last day of the month (Jan 31 then Feb 28), skip the month entirely, or skip forward to the next month that has that day.
  • The yearly step rolls Feb 29 forward to Feb 28 in non-leap years so the sequence never silently drops a row.
  • Output is capped at 10,000 rows for browser performance. Tighten the range or step if you hit the cap.
  • Date math runs in your local time zone. For ISO and SQL output, the date label matches what you typed; for Unix output, the timestamp is local-midnight in milliseconds since the epoch.

How to use

  1. Pick a start date and an end date. Both endpoints are inclusive.
  2. Choose a step: every day, weekdays only, every N days, weekly on chosen days, monthly on a day of month, or yearly.
  3. If you need to skip specific dates, paste a holiday list one date per line in YYYY-MM-DD format.
  4. Pick an output format, separator, and optional prefix and suffix so the list pastes straight into SQL, Markdown, or a spreadsheet.
  5. Copy the list, download .txt for plain output, or download .csv for a table with weekday and day-of-year columns.

About this tool

Date Range Generator lists every date between a start and end date you choose, using whatever step makes sense for the job. The default daily step produces a continuous run of calendar days inclusive on both ends, useful for filling gaps in a spreadsheet or building a stand-up rotation. Weekdays only skips Saturday and Sunday so a 90-day window collapses to working days. Every N days steps by a fixed count (7 for weekly, 14 for bi-weekly, 30 for roughly monthly) anchored to the start date. Weekly on chosen days lets you pick any combination of weekdays, so a Monday-Wednesday-Friday class schedule or a Friday-Saturday-Sunday weekend shift list comes out in one click. Monthly on a day of month emits the same date each month with a clear policy for short months: clamp to the last day (Jan 31 then Feb 28), skip the month entirely, or roll forward to the next month with the day. Yearly emits the same MM-DD each year and clamps Feb 29 to Feb 28 in non-leap years so the sequence never drops a row by accident. An optional holidays list (paste one YYYY-MM-DD per line) removes specific dates from the output without changing the step. Output formats cover ISO 8601 (YYYY-MM-DD), US slash (MM/DD/YYYY), EU slash (DD/MM/YYYY), long and short English, ISO with weekday, Unix seconds, Unix milliseconds, a SQL DATE literal ('YYYY-MM-DD'), and a custom token format using YYYY, MM, DD, dddd, Q, and the other tokens already used by the random date generator. Separators include newline, comma plus space, semicolon plus space, and single space, and the optional prefix and suffix wrap each row so the list pastes straight into a SQL IN clause, an INSERT statement, or a YAML schedule. Copy buttons, plain text download, and CSV download (with weekday and day-of-year columns) are all available. Useful for stand-up rotations, on-call schedules, content calendars, recurring billing dates, fixture data for tests, anchor dates in a SQL query, payment plan tables, anniversary lists, and any situation where you need every date that matches a rule between two endpoints. Output is capped at 10,000 rows to keep the page responsive; everything is computed in your browser and nothing is uploaded.

Free to use. Works in your browser. No signup, no login.

Related tools

You may also like

All tools
All toolsDate & Time Tools