Workdays Calculator

Pick a start and end date, choose a weekend convention, and (optionally) paste a list of holidays. Get the workdays count, the full breakdown, and a list of every workday in the range. Pure client-side, nothing leaves your browser.

One date per line. Lines that are blank or don't parse are ignored. Holidays that fall on a weekend don't reduce the workdays count (they wouldn't have been workdays anyway).

Workdays Pick a range to begin.
Calendar days total days in the range
Weekend days Sat & Sun (default)
Holidays skipped on a workday, in the range
workday from the start of the range is

Numbered from 1; the first workday of the range is workday #1. Holidays in the range are skipped.

Every workday in the range

Pick a range to see the workday list.

How it works

Range
Both endpoints are inclusive. A one-day range returns 1 calendar day. The calculator caps ranges at 100 years so a typo doesn't hang the page.
Weekend
The days the user picked as non-working. Default Sat – Sun covers most countries; the other presets match the working weeks used in some Middle East locales. Custom lets you tick any combination of Mon-Sun.
Holidays
Two formats, switched by the toggle above the textarea: YYYY-MM-DD for a specific date (one entry per year), or MM-DD to mark a recurring date that gets expanded across every year in the range. Lines that don't parse are ignored silently.
Skip rule
A holiday on a weekend day is not counted as a “skip” — it wouldn't have been a workday anyway. Only holidays that fell on a non-weekend day reduce the workdays count and the workday list.
Nth workday
Counts workdays from the start of the range. Asking for “the 23rd workday” of a 3-week month gives the 23rd day the user would actually be at the office.