Working days
What this does
Starts from a calendar date and counts forward a number of working days (Monday to Friday, excluding bank holidays for your chosen UK division). Returns the landing date and a list of skipped non-working days. Ideal for “delivery in 5 working days” or SLA deadlines.
Who it is for
- E-commerce promised delivery dates
- Legal and finance teams counting notice periods
- Project tools computing sprint end dates
- Support SLAs (“we will reply within 3 working days”)
Try it
Five working days from 25 August 2026, England and Wales:
https://fetch.li/v1/uk/working-days?start=2026-08-25&days=5&division=england-and-wales
Other examples:
https://fetch.li/v1/uk/working-days?start=2026-12-23&days=3&division=scotland
https://fetch.li/v1/uk/working-days?start=2026-01-02&days=10
HTTP example
GET /v1/uk/working-days?start=2026-08-25&days=5&division=england-and-wales HTTP/1.1
Host: fetch.li
Accept: application/json
curl
curl -sS "https://fetch.li/v1/uk/working-days?start=2026-08-25&days=5&division=england-and-wales"
JavaScript fetch
const params = new URLSearchParams({
start: "2026-08-25",
days: "5",
division: "england-and-wales",
});
const response = await fetch(
`https://fetch.li/v1/uk/working-days?${params}`
);
const result = await response.json();
console.log(result.end_date);
Python requests
import requests
response = requests.get(
"https://fetch.li/v1/uk/working-days",
params={
"start": "2026-08-25",
"days": 5,
"division": "england-and-wales",
},
)
response.raise_for_status()
result = response.json()
print(result["end_date"])
Example JSON response
{
"start": "2026-08-25",
"days_requested": 5,
"division": "england-and-wales",
"end_date": "2026-09-01",
"working_days_counted": 5,
"skipped": [
{
"date": "2026-08-29",
"reason": "weekend",
"weekday": "Saturday"
},
{
"date": "2026-08-30",
"reason": "weekend",
"weekday": "Sunday"
},
{
"date": "2026-08-31",
"reason": "bank_holiday",
"title": "Summer bank holiday"
}
],
"timezone": "Europe/London"
}
Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
start |
Yes | string | Start date YYYY-MM-DD (counts from the next working day after start, or inclusive per product default; here inclusive of first working day on or after start) |
days |
Yes | integer | Number of working days to advance (1–366) |
division |
No | string | england-and-wales (default), scotland, or northern-ireland for bank holiday rules |
Errors that can happen
| HTTP | error.code |
When |
|---|---|---|
| 400 | invalid_body |
Missing start or days, invalid date, or days out of range |
| 429 | rate_limited |
Demo limit exceeded |
| 500 | internal |
Unexpected server error |
Demo
GET endpoints work without an API key on the public demo tier (60 calls per hour per IP). POST /v1/vibe/classify needs a key.