Power Query accepts any one-per-line list of YYYY-MM-DD dates pasted from a generator, so the fastest way to create a date list in Power Query is often to build the sequence in a browser tool and load the result as a new query. The Date List Generator produces a strict four-digit-year, two-digit-month, two-digit-day sequence between two endpoints with a whole-number day step, treating every entry as a calendar date rather than a timestamp. That timezone-free treatment matters in Power Query, because columns typed as date or date/time can drift by a day when a workbook travels between machines in different UTC offsets. By pasting pre-formatted lines, you skip the locale and DateTimeZone headaches and arrive at a typed date column that behaves the same in Excel, Power BI, and the Power Query editor.
The generator runs entirely in the browser tab. No date range is uploaded or stored, and the clipboard is only accessed after you press the copy button. That makes it safe to use with payroll, scheduling, or test-fixture dates that should not leave your device.

Why build the date list outside Power Query first
Power Query's M language can build a date list on its own through List.Dates, #date, and a handful of transforms. For many readers the catch is friction rather than capability: counting rows in advance, picking a step that does not produce a fractional offset, and writing a switch for weekday names all add up to several minutes of careful typing. A pre-generated list replaces that with copy and paste.
The deeper reason to consider an external source is the locale parser inside Power Query. When you change a column type to date, Power Query uses the workbook's regional settings or the locale you pass to Date.FromText. A column that looks perfect on a US workstation can flip a day when opened on a machine set to day-first or month-first parsing. The ISO shape that Date List Generator writes is the only widely accepted format that survives every locale, because it is also the shape the WHATWG HTML Standard uses for date values in HTML and the shape the IETF defines as a full-date in RFC 3339.
Building the date sequence with Date List Generator
The generator follows a strict input contract. Before you press generate, the four inputs and their accepted shapes look like this:
| Field | Accepted shape | Example |
|---|---|---|
| Start date | YYYY-MM-DD, year 0001 to 9999 | 2025-01-15 |
| End date | YYYY-MM-DD, same as or later than start | 2025-03-15 |
| Day step | Whole number 1 to 366 | 7 |
| Weekday names | Optional toggle; fixed English labels | On |
To produce the sequence:
- Open Date List Generator and enter a start date in strict YYYY-MM-DD form, for example 2025-01-01.
- Enter an end date the same way, making sure it is the same as or later than the start. February 29 only works in leap years, and 2000-02-29 is valid while 1900-02-29 is not.
- Set the day step to a whole number between 1 and 366. A step of 1 lists every eligible day, 7 produces a weekly sequence that preserves the start weekday, and a larger value creates a custom interval.
- Toggle weekday names on if you want a Monday-through-Sunday label beside each date. Monday is treated as the first ISO weekday, written in English.
- Click generate. The result summary reports the exact count and whether the step landed on the end date.
- Copy the one-per-line output with the copy button. The clipboard is only accessed after the button is pressed; if permission is denied, the read-only text area can still be selected manually.
To see the count formula in action, take a start of 2025-01-01, an end of 2025-01-30, and a step of 7. The interval in days is 30 minus 1, which is 29. Floor(29 / 7) plus 1 equals 5, so the generator returns five lines: 2025-01-01, 2025-01-08, 2025-01-15, 2025-01-22, and 2025-01-29. The end date 2025-01-30 is not reached, so the summary will state that it is excluded.
Loading the generated date list into Power Query
This is the part that turns a generated text file into a real Power Query column. Three reliable routes exist, and the right one depends on whether the list changes often.
| Route | Best for | Locale risk | Repeatable |
|---|---|---|---|
| Paste into Excel column, then From Table/Range | One-off edits and manual tweaks | Low when ISO is preserved | Manual |
| Save as UTF-8 text file, then From Text/CSV | Stable path, repeated imports | Low when ISO is preserved | Yes, refreshable |
| Hard-code the lines in M (Blank Query) | Scripted pipelines under version control | None | Yes, version-controlled |
Route 1 — Paste into Excel, then From Table/Range. Paste the one-per-line dates into column A of a blank sheet starting at A1. Select the data, open the Data tab, click From Table/Range, and Power Query opens with a single text column. Right-click the column header and choose Change Type, then Date. Because the source format is YYYY-MM-DD, Power Query parses it correctly under English (United States), English (United Kingdom), and most other locales without further work. Click Close and Load to land the result as a table on a new sheet.
Route 2 — Save as a UTF-8 text file, then From Text/CSV. Paste the lines into Notepad or any plain-text editor, choose Save As, set Encoding to UTF-8, and name the file dates.txt. In Excel, go to Data, Get Data, From File, From Text/CSV, pick the file, and the preview shows a single column. Set data type detection to Do not detect, or set the column type manually to Date using the locale-invariant option. This route is the cleanest fit when the list is reused across multiple workbooks or refreshed from a stable path.
Route 3 — Use M code for a blank query. In Power Query, choose Get Data, From Other Sources, Blank Query, then open Advanced Editor and paste M code that builds a single-column table from a hard-coded list. This route is the most scriptable but loses the simplicity of the other two; if you want the full scripted approach, the guide to loading generator dates into Excel walks through the same idea with a ready-made example.
Across all three routes, the date column comes out typed as date rather than datetime. That is exactly what you want, because the generator never produces a time component and never touches a timezone. A date value in Power Query compares and sorts as a calendar day everywhere the workbook travels.
Step, weekday, and end-date rules that change the output
The step is applied from the original start and is never rounded to a month boundary. Starting on January 30 with a two-day step produces January 30, February 1, February 3, and so on, not January 30, January 32 (which does not exist), February 1. That preserves the intent of the step and prevents the off-by-one errors that creep in when a generator silently normalizes impossible dates.
A seven-day step always lands on the same weekday as the start because a Gregorian week is seven consecutive calendar days. That property is why weekly payroll, weekly stand-ups, and weekly review rows can all be built with a step of 7 and stay aligned without extra weekday logic. The optional weekday label uses the same ordinal, with Monday as the first ISO weekday, so 0001-01-01 is Monday and the labels are fixed English names rather than localized browser strings.
The end date appears only when the step lands on it exactly. The result summary states whether that happened. This is a deliberate choice that matches the most common use case: a quarterly report aligned to the last day of March, June, September, and December will not match if the step lands on March 28 instead of March 31, and the summary tells you that up front so you can adjust the step or the end date.
Limits and what the generator does not do
Up to 10,000 dates are accepted per request. A request for 10,001 or more is rejected with the calculated count and returns no partial list — the generator does not silently truncate, sample, or insert an ellipsis. Before output, the browser computes floor((endOrdinal − startOrdinal) / step) + 1 and rejects anything above the budget. The minimum supported date is 0001-01-01 and the maximum is 9999-12-31.
The tool does not skip weekends, remove holidays, infer working days, or know opening hours. It does not offer month or year steps because those units require a separate overflow policy for dates such as January 31 or February 29. It is not a timezone converter, a recurrence engine, or an appointment scheduler. A daily list is not proof that every listed day is operational, and the output should be reviewed against the rules of the destination system before it is imported into anything tied to deadlines, payroll, travel, finance, or legal obligations.
All parsing, counting, weekday calculation, formatting, and copying run in the current browser tab. No date range is uploaded or stored by the widget. That is what makes the sequence auditable: the only thing that determines the list is the start, the end, and the step you typed.