Random Date Generator
Generate one random date or a list of random dates between a start date and end date, with weekdays-only, no-repeat, CSV, MM/DD/YYYY, ISO, and Unix timestamp output.
Generate random dates in a range
Use this random date generator to pick one date or create a list of dates between a start date and an end date. It is built for test data, classroom examples, sample schedules, games, and low-stakes planning.
- Set the start date and end date.
- Choose how many dates to generate, up to 1,000.
- Turn on weekdays only when weekends should be skipped.
- Turn on no repeats when each calendar day should appear at most once.
Output formats
| Format | Use case |
|---|---|
| MM/DD/YYYY | US-style dates for spreadsheets and everyday examples |
| Month D, YYYY | Readable dates for copy and mock content |
| ISO 8601 | YYYY-MM-DD values for systems and imports |
| Unix timestamp | Seconds since the Unix epoch |
| CSV | A downloadable list with index, date, and weekday columns |
Weekday filtering uses the browser date object after the date is normalized to the local calendar day.
No-repeat limits
When no-repeat mode is enabled, the available pool is the number of calendar days that pass the current filters. If the requested count is larger than that pool, the result can be smaller than the count.
D_available is the count of dates that remain after range and weekday filters.
Frequently Asked Questions
Sources and References
- Date - JavaScriptMDN Web Docs
- Intl.DateTimeFormat - JavaScriptMDN Web Docs
- ISO 8601Wikipedia
- Unix timeWikipedia
Calculations are based on the listed reference sources. Links open in a new tab.
Related Tools
Generate random integers, decimals, list picks, coin flips, or d6 rolls with custom ranges, count controls, and no-repeat mode for integers and lists.
Generate UUID v4 and GUID-style identifiers in bulk, with uppercase, no-dash, and brace formatting options.