Calendar API Reference
UK bank holidays by region, year, and upcoming dates.
Base URL: https://api.govdata.dev/v1
Regions
GET
/v1/calendar/regions
No parameters required.
response
Waiting for request...
List all supported UK regions for bank holidays.
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.govdata.dev/v1/calendar/regions
uri = URI("https://api.govdata.dev/v1/calendar/regions") req = Net::HTTP::Get.new(uri) req["Authorization"] = "Bearer YOUR_API_KEY" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
response = requests.get( "https://api.govdata.dev/v1/calendar/regions", headers={"Authorization": "Bearer YOUR_API_KEY"} )
const response = await fetch("https://api.govdata.dev/v1/calendar/regions", { headers: { "Authorization": "Bearer YOUR_API_KEY" } });
Response
{ "data": { "regions": [ { "slug": "england_and_wales", "name": "England and Wales" }, { "slug": "scotland", "name": "Scotland" }, { "slug": "northern_ireland", "name": "Northern Ireland" } ] }, "meta": { "api_version": "v1", "licence": "Open Government Licence v3.0", "source": "GOV.UK", "source_url": "https://www.gov.uk/bank-holidays" } }
Bank Holidays
GET
/v1/calendar/bank-holidays
response
Waiting for request...
List bank holidays for the current and next year.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
region |
string | No | Filter by region: england_and_wales, scotland, northern_ireland |
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.govdata.dev/v1/calendar/bank-holidays?region=scotland"
uri = URI("https://api.govdata.dev/v1/calendar/bank-holidays?region=scotland") req = Net::HTTP::Get.new(uri) req["Authorization"] = "Bearer YOUR_API_KEY" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
response = requests.get( "https://api.govdata.dev/v1/calendar/bank-holidays", headers={"Authorization": "Bearer YOUR_API_KEY"}, params={"region": "scotland"} )
const url = new URL("https://api.govdata.dev/v1/calendar/bank-holidays"); url.searchParams.set("region", "scotland"); const response = await fetch(url, { headers: { "Authorization": "Bearer YOUR_API_KEY" } });
Response
{ "data": { "bank_holidays": [ { "date": "2026-01-01", "title": "New Year's Day", "region": "scotland", "notes": null, "bunting": true }, { "date": "2026-01-02", "title": "2nd January", "region": "scotland", "notes": null, "bunting": true } ] }, "meta": { "api_version": "v1", "licence": "Open Government Licence v3.0", "source": "GOV.UK", "source_url": "https://www.gov.uk/bank-holidays" } }
GET
/v1/calendar/bank-holidays/:year
response
Waiting for request...
List bank holidays for a specific year.
Parameters
| Parameter | Type | Description |
|---|---|---|
year |
integer | 4-digit year (e.g., 2026) |
region |
string (query) | Optional region filter |
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.govdata.dev/v1/calendar/bank-holidays/2026
uri = URI("https://api.govdata.dev/v1/calendar/bank-holidays/2026") req = Net::HTTP::Get.new(uri) req["Authorization"] = "Bearer YOUR_API_KEY" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
response = requests.get( "https://api.govdata.dev/v1/calendar/bank-holidays/2026", headers={"Authorization": "Bearer YOUR_API_KEY"} )
const response = await fetch("https://api.govdata.dev/v1/calendar/bank-holidays/2026", { headers: { "Authorization": "Bearer YOUR_API_KEY" } });
GET
/v1/calendar/bank-holidays/next
No parameters required.
response
Waiting for request...
Returns the next upcoming bank holiday for each region.
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.govdata.dev/v1/calendar/bank-holidays/next
uri = URI("https://api.govdata.dev/v1/calendar/bank-holidays/next") req = Net::HTTP::Get.new(uri) req["Authorization"] = "Bearer YOUR_API_KEY" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
response = requests.get( "https://api.govdata.dev/v1/calendar/bank-holidays/next", headers={"Authorization": "Bearer YOUR_API_KEY"} )
const response = await fetch("https://api.govdata.dev/v1/calendar/bank-holidays/next", { headers: { "Authorization": "Bearer YOUR_API_KEY" } });
Response
{ "data": { "bank_holidays": [ { "date": "2026-04-03", "title": "Good Friday", "region": "england_and_wales", "notes": null, "bunting": false }, { "date": "2026-04-03", "title": "Good Friday", "region": "scotland", "notes": null, "bunting": false }, { "date": "2026-04-03", "title": "Good Friday", "region": "northern_ireland", "notes": null, "bunting": false } ] }, "meta": { "api_version": "v1", "licence": "Open Government Licence v3.0", "source": "GOV.UK", "source_url": "https://www.gov.uk/bank-holidays" } }
Bank holiday data is sourced from the GOV.UK bank holidays API and checked weekly for upstream changes. GOV.UK republishes the JSON when the holiday set changes, so the data itself has no weekly publication cadence. Contains public sector information licensed under the Open Government Licence v3.0.
Data Coverage
| Source | GOV.UK |
| Date range | 2019 – 2028 (as published by Cabinet Office) |
| Records | ~280 bank holidays |
| Updated | Weekly (Monday) |
| Limitations | Future dates subject to change |