Home › Everyday Life › UK Working Days Between Dates

UK Working Days Between Dates

Counts working and non-working dates in England and Wales, Scotland or Northern Ireland using the official GOV.UK bank-holiday list instead of a weekday-only approximation.

When to use

You need a 2024-2028 UK SLA, payroll, project or delivery-day count and the selected division's bank holidays must be excluded.

Do not use when: You need only elapsed calendar days, a local/employer/market calendar, another jurisdiction or dates outside 2024-2028.

Example user requests

Formula

for each included date: working_days += is_working_day(date); non_working_days += not is_working_day(date)

Endpoints are included by default. If the second date is earlier, endpoints are swapped before inclusion rules are applied. Bank-holiday events override the ordinary weekday rule.

Inputs

ParameterTypeUnitRequiredDescription
start_datedateyesFirst range endpoint in YYYY-MM-DD format, within 2024-2028.
end_datedateyesSecond range endpoint in YYYY-MM-DD format, within 2024-2028.
include_start_datebooleandefault trueWhether the normalized earlier endpoint participates in the count.
include_end_datebooleandefault trueWhether the normalized later endpoint participates in the count.
divisionenum: england-and-wales | scotland | northern-irelanddefault england-and-walesGOV.UK bank-holiday division. England and Wales share one official list; Scotland and Northern Ireland have separate lists.

Outputs

OutputTypeUnitDescription
divisionstringCanonical GOV.UK division id.
division_namestringHuman-readable UK division.
normalized_start_datedateEarlier endpoint after normalization.
normalized_end_datedateLater endpoint after normalization.
working_daysintegerworking daysMonday-Friday dates not listed as a bank holiday.
non_working_daysintegerdaysWeekend and bank-holiday dates in the selected range.
calendar_days_countedintegerdaysTotal dates included after endpoint rules.
bank_holidays_countedlistOfficial bank-holiday events in the selected range.
dataset_versionstringPinned Calcgrid snapshot version of the GOV.UK bank-holiday package.
coverage_startdateFirst supported date in this pinned package.
coverage_enddateLast supported date in this pinned package.
source_snapshot_sha256stringSHA-256 of the complete official GOV.UK JSON response used for this package.

Example

England and Wales Christmas-to-New-Year range: {"start_date":"2026-12-24","end_date":"2027-01-04","include_start_date":true,"include_end_date":true,"division":"england-and-wales"} → {"working_days":5,"non_working_days":7,"calendar_days_counted":12}

Northern Ireland Battle of the Boyne substitute: {"start_date":"2026-07-10","end_date":"2026-07-14","include_start_date":true,"include_end_date":true,"division":"northern-ireland"} → {"working_days":2,"non_working_days":3,"calendar_days_counted":5,"bank_holidays_counted":[{"date":"2026-07-13","title":"Battle of the Boyne (Orangemen’s Day)","notes":"Substitute day"}]}

GET https://tttkmbb.com/api/v1/calculate/uk-working-days-between?start_date=2026-12-24&end_date=2027-01-04&include_start_date=true&include_end_date=true&division=england-and-wales

Machine access

Sources

FAQ

Are both endpoints included?

Yes by default. Set either inclusion input to false if a contract excludes that endpoint.

Does a substitute day count as a bank holiday?

Yes. The official feed supplies the observed date and labels it as a substitute day.

Related calculators