Date Range Generator
Generate a list of dates between two dates with customizable step, format, and separator
Input
Output
Readme
What is a date range?
A date range is a sequence of dates between a defined start point and end point. Date ranges are fundamental in scheduling, reporting, data analysis, and project management. They allow you to enumerate every date (or every Nth date) within a specific time window, making it easy to build calendars, populate spreadsheets, or generate test data.
In programming and data work, generating a list of dates between two boundaries is a surprisingly common task. Whether you need daily entries for a financial report, weekly milestones for a project plan, or monthly intervals for a subscription billing cycle, having a reliable way to produce these sequences saves significant time.
Tool description
This tool generates a complete list of dates between any two dates you specify. You choose the start date, end date, step interval with a customizable unit (days, weeks, months, or years), output format, and separator. The result is an instantly copyable or downloadable list of dates ready to paste into spreadsheets, databases, scripts, or documents.
Features
- Flexible step intervals — generate dates every N days, weeks, months, or years
- 7 output formats — YYYY-MM-DD, MM/DD/YYYY, DD/MM/YYYY, DD.MM.YYYY, YYYY/MM/DD, ISO 8601, and Unix timestamps
- 6 separator options — new line, comma, semicolon, tab, space, or pipe for easy integration with different tools
- Reverse range support — automatically handles cases where the start date is after the end date
- Copy and download — instantly copy the generated list to clipboard or download as a text file
Options explained
| Option | Description |
|---|---|
| Start Date | The beginning of the date range |
| End Date | The end boundary of the date range |
| Step | The numeric interval between each generated date (e.g., 1, 2, 5) |
| Step Unit | The unit for the step value: days, weeks, months, or years |
| Date Format | How each date is formatted in the output |
| Separator | The character or string placed between each date in the output |
| Include End Date | When enabled, the end date is included in the output if it falls on a step boundary |
Supported formats
| Format | Example |
|---|---|
| YYYY-MM-DD | 2026-02-12 |
| MM/DD/YYYY | 02/12/2026 |
| DD/MM/YYYY | 12/02/2026 |
| DD.MM.YYYY | 12.02.2026 |
| YYYY/MM/DD | 2026/02/12 |
| ISO 8601 | 2026-02-12T00:00:00.000Z |
| Unix Timestamp | 1771113600 |
Use cases
- Spreadsheet population — generate a column of dates for financial reports, attendance tracking, or inventory logs without manually typing each date
- Software testing — quickly create date sequences for testing date pickers, calendar components, or date-based filtering in applications
- Project planning — produce milestone dates at regular intervals for Gantt charts, sprint planning, or delivery schedules
Limitations
- Maximum output is capped at 10,000 dates per generation to maintain browser performance
- Month and year steps follow calendar logic, so stepping by 1 month from January 31 lands on February 28 (or 29 in leap years)
FAQ
Can I generate dates in reverse order? Yes. If you set the start date after the end date, the tool automatically generates the list in descending order.
What happens if the end date doesn't land on an exact step? The generator stops at the last date that falls within the range. Enable or disable "Include End Date" to control whether the boundary date itself appears in the output.
Can I use this for Unix timestamps? Yes. Select "Unix Timestamp" as the date format, and each date will be output as a Unix epoch value (seconds since January 1, 1970).