The Date List Generator creates a deterministic, one-per-line list of calendar dates between two strict YYYY-MM-DD endpoints, applying a whole-number day step from 1 to 366 with a hard cap of 10,000 rows. Every entry is treated as a calendar date on the timezone-free proleptic Gregorian calendar — the same model used for HTML date values and ISO calendar dates — so a date never shifts forward or backward because a browser is running in another time zone. The tool does not parse timestamps, convert through Unix time, sample rows, skip weekends, or insert ellipses. You enter a start date, an end date, and a step, and the generator returns the complete inclusive sequence with the start always present and the end included only if the step happens to land on it. Optional fixed-English weekday names can be appended to each line, and the output is plain text that copies to the clipboard in one click. All parsing, counting, formatting, and copying run inside the current browser tab, so no date range is uploaded or stored. Try the Date List Generator to do this in your browser.

date list generator cheat sheet
Date List Generator Cheat Sheet: Inputs, Steps, Limits

Parameters at a Glance

A cheat sheet lives or dies on a compact summary of the inputs. The Date List Generator accepts exactly four controls, and each one has a hard rule that must hold before the request runs. The accepted shape is strict four-digit year, two-digit month, two-digit day, the same shape used by the WHATWG HTML dates standard for input[type=date] values.

InputFormat / TypeAllowed RangeValidation Rule
Start dateYYYY-MM-DD0001-01-01 to 9999-12-31Real month length with 4-100-400 leap-year check
End dateYYYY-MM-DDSame as or later than startRejected if earlier than start
Day stepWhole number1 to 366 inclusiveInteger; applied from original start, not month boundaries
Weekday namesOptional toggleMonday through SundayFixed English labels using ISO weekday order

Any value outside these rules is rejected before the sequence is built, so the result text area only ever shows valid output or no output at all.

How to Generate a Date List in Three Inputs

The full workflow fits in three typed inputs and one button press. Follow the steps below for a complete, copy-ready sequence.

  1. Pick a start date and type it in strict YYYY-MM-DD form, with a four-digit year between 0001 and 9999. Use a real calendar day; the validator follows the actual length of each month and applies the leap-year rule before the sequence is built.
  2. Pick an end date in the same format, never earlier than the start. If the end is before the start, the request is rejected without partial output.
  3. Enter a whole-number day step between 1 and 366. Use 1 for a daily list, 7 for a weekly sequence, 14 for a fortnight cadence, and a larger value for a custom interval. Non-integers, zero, and values above 366 are refused.
  4. Toggle weekday names if you want Monday through Sunday appended to each line. The labels are fixed English strings, not localized browser output.
  5. Press generate and read the result summary, which states whether the chosen step landed exactly on the end date. The summary is the source of truth on inclusion.
  6. Click copy to send the one-per-line text to the clipboard. If the browser blocks clipboard access, select the text inside the read-only area manually and copy with the keyboard shortcut.

Step Patterns and the Sequences They Produce

The step value drives every downstream decision, so it pays to know what common values actually produce. The examples below all start from 2024-01-01 and run as far as the step carries them; the actual count and end-date behavior come from the tool.

StepEffectFirst Few Entries from 2024-01-01
1Every eligible calendar day2024-01-01, 2024-01-02, 2024-01-03, 2024-01-04
7Weekly cadence, same weekday2024-01-01, 2024-01-08, 2024-01-15, 2024-01-22
14Fortnight cadence2024-01-01, 2024-01-15, 2024-01-29, 2024-02-12
30Roughly monthly, fixed-day intervals2024-01-01, 2024-01-31, 2024-03-01, 2024-03-31

For a concrete check, run a step of 7 from 2024-01-01 against an end of 2024-01-22. The ordinal difference is 21, divided by 7 is 3, plus the inclusive starting entry gives a total of 4 dates: 2024-01-01, 2024-01-08, 2024-01-15, 2024-01-22. Because 21 is an exact multiple of 7, the end date is included and the summary reports that condition.

Boundary Rules Worth Memorizing

Several limits quietly decide whether a request produces output at all. Keep these in mind when planning a large run.

  • Leap-year rule: a year divisible by 4 is a leap year unless it is divisible by 100, and a year divisible by 400 stays a leap year. 2000-02-29 is valid; 1900-02-29 is rejected.
  • Real month lengths: January has 31 days, April has 30, and February has 28 or 29. Impossible days such as 2024-04-31 are refused outright; the browser is never trusted to silently roll April 31 into May 1.
  • 10,000-row budget: the generator computes the exact result count as floor((endOrdinal − startOrdinal) / step) + 1 before allocation. A request for 10,001 or more fails with the calculated count and returns no partial list.
  • End-date inclusion: the start is always present. The end appears only when the step lands exactly on it; the result summary reports this condition so the reader never has to guess.
  • Step applied from original start: the interval is added to the start repeatedly, never snapped to month boundaries. Starting on 2024-01-30 with step 2 gives 2024-01-30, 2024-02-01, 2024-02-03, and so on, crossing February 29 correctly.

Output Format and Copy Behavior

Every successful run produces the same shape of output, regardless of the step or the chosen labels. Each row is a single calendar date in strict YYYY-MM-DD form, optionally followed by a weekday name. The text is plain ASCII, so it pastes cleanly into a spreadsheet, schedule draft, test fixture, content plan, or another local tool without escaping. Adding weekday names changes only the displayed line, not the sequence or the count. The clipboard is touched only when the copy button is clicked; if permission is denied, the visible read-only area can still be selected by hand and copied with the standard keyboard shortcut. All processing stays in the current browser tab, so no date range is uploaded or stored.

When This Tool Is Not the Right Fit

The Date List Generator is intentionally narrow. It is not an appointment scheduler, business-day calculator, holiday calendar, recurrence engine, or time-zone converter, and it does not know opening hours, market sessions, religious calendars, school calendars, regional holidays, leap seconds, or the user's location. There is no weekend skip, no holiday filter, no working-day inference, and no month-or-year step, because those units need a separate overflow policy for dates such as January 31 or February 29. A daily list is not proof that every listed day is operational. Review the sequence against the rules of the destination system before importing it, especially when deadlines, payroll, travel, finance, or legal obligations are involved. For calendar-month or calendar-year arithmetic, switch to the Date Add Subtract Calculator; for random sampling inside a range, use the Random Date Generator; and for moving a generated sequence into Excel at exact step intervals, follow the how-to guide for step intervals in Excel.