Skip to content

Random Date Generator

Draw random dates from any date range, with an option to skip weekends and avoid repeats.

Runs in your browserFree, no sign-up

Settings

Fill in the settings to see your result here.

Your result appears here instantly — nothing is uploaded.

What Random Date Generator does

This random date generator draws dates from any range you set, from a single day up to decades apart, and returns up to a hundred at once. Turn on Weekdays only to exclude Saturdays and Sundays for scheduling business-day events, and turn on No repeated dates to draw without replacement when every result needs to be distinct. Each date comes back in ISO format alongside its day of the week, so you don't need a separate calendar lookup to see what day a generated date falls on.

How to get your result

  1. 1

    Set the Start date and End date bounding the range to draw from.

  2. 2

    Choose How many dates you need, up to 100 per run.

  3. 3

    Tick Weekdays only to exclude weekends, and No repeated dates for a draw without replacement.

  4. 4

    Click Generate and read the day of the week alongside each date in the table.

What people use it for

Scheduling random check-ins or audits

Draw a handful of weekday-only dates across a quarter for unannounced quality checks, spreading them out without any predictable pattern staff could anticipate.

Generating test data for a booking system

Populate a calendar or reservation system with plausible dates spread across a range to see how the UI handles a realistic spread of bookings.

Picking a random meeting date from a shortlist window

Narrow the range to the two or three weeks everyone is available, then generate one weekday date as a fair, unbiased way to pick among them.

Simulating event dates for a demo dataset

Generate a batch of unique dates across a year to seed a demo calendar app with events that don't all cluster suspiciously on the same day.

How the draw stays uniform across the range

The generator computes the exact number of days between the start and end date inclusive, then draws a uniformly random offset within that span for each result, converting it back to a calendar date. That keeps every day in the range equally likely to be picked, including both endpoints. When Weekdays only is enabled, the tool instead counts just the eligible weekdays in the range and rejects any draw that lands on a Saturday or Sunday, so the remaining weekdays still each carry an equal chance rather than a redrawn one shifting probabilities toward specific days.

Dates, not timestamps

Every result here is a calendar date with no time-of-day or time zone component, matching how a date picker field works rather than a full timestamp. That is a deliberate simplification: a 'random date' request is almost always about which day, not which second, and keeping time zones out of it avoids the off-by-one-day errors that occur when a date crosses midnight in one time zone but not another. If you need a random moment in time rather than a random day, the random number generator can produce a Unix timestamp directly.

Tips

  • Widen the date range before increasing the count if a no-repeat draw is rejected — there may simply not be enough eligible days.
  • Combine Weekdays only with a narrow range when you specifically need business-day dates within a single sprint or month.
  • Note the seed if you need to reproduce or justify exactly how a set of dates was chosen.

Answers to common questions

Are both the start and end date included?
Yes — the range is inclusive on both ends, so a date generated can land on the start date, the end date, or anywhere between.
What does 'weekdays only' skip?
It excludes Saturday and Sunday from the draw, which is useful for scheduling meetings, deadlines or shifts that only fall on business days.
Can I get the same set of dates again?
Yes. The draw is fully determined by the seed together with the range and options, so noting the seed lets you reproduce an identical set later.
Why did it say it couldn't draw enough dates?
Either the range is too narrow for the count you asked for, or No repeated dates is on and the range doesn't contain enough eligible days. Widen the date range or lower the count.

Looking for something else? Browse all generators or see every tool.