UK Bank Holidays
App · Calendars · 9 actions
Look up UK bank holidays from a workflow, straight from GOV.UK. List the bank holidays for a year or between two dates, get the next one coming up, check whether a date, or today, is a bank holiday, find when a named one falls, count the working days between two dates with weekends and bank holidays taken out, and work out a deadline a number of working days away. England and Wales, Scotland and Northern Ireland keep three different calendars and this handles all three, including comparing a date across them in one step, so a business with an office in Edinburgh and one in London gets the right answer for each. Substitute days are flagged rather than left in a note. Every action reads: nothing here changes anything. No account or API key required.
Actions
| Action | What it does |
|---|---|
| Add working days to a date | Work out the date a number of working days from another one, stepping over weekends and the local bank holidays. |
| Check whether a date is a bank holiday | Check one date in one part of the UK and get three plain answers: is it a bank holiday, is it a weekend, is it a working day. |
| Compare a date across the UK | Ask all three UK calendars about one date at once, and get a ready-made sentence saying who has the day off and who does not. |
| Count working days | Count the working days between two dates, with weekends and the local bank holidays taken out. |
| Find a bank holiday by name | Find the dates a named bank holiday falls on, year by year: 'when is the Early May bank holiday', 'when is Christmas Day in Scotland'. |
| Get the next bank holiday | Get the single next bank holiday for one part of the UK, returned flat so a later step can read the name, the date and how many days away it is without indexing into a list. |
| List bank holidays between two dates | List the bank holidays one part of the UK has between two dates, whether or not they fall in the same year: a quarter, a sprint, a delivery window or the next six months in one step. |
| List bank holidays in a year | List every bank holiday one part of the UK keeps in a calendar year. |
| List the calendars and the years covered | List the three bank holiday calendars GOV.UK publishes, the countries each one applies in, how many bank holidays each holds, the next one coming up in each, and the years the data reaches. |
Add working days to a date
Work out the date a number of working days from another one, stepping over weekends and the local bank holidays. This is the deadline sum: 'we will reply within five working days' from a ticket's date, a payment due date, a notice period. Counting starts the day after the start date, which is how a deadline is written. A negative number counts backwards, for working out when to start in order to finish on time.
Inputs
- Where in the UK
divisiontextRequired - Which of the three UK bank holiday calendars to read. They really do differ: Easter Monday is a bank holiday in England, Wales and Northern Ireland but not in Scotland, Scotland has 2nd January and St Andrew's Day, and Northern Ireland has St Patrick's Day and the Battle of the Boyne. A value from an earlier step can be the name of a country ('Wales'), the slug GOV.UK keys the data by ('england-and-wales') or the ISO code another integration uses ('GB-SCT'). 'UK' is not an answer, because the three calendars disagree; use 'Compare a date across the UK' to ask all three at once.One of:
england-and-wales(England and Wales),scotland,northern-ireland(Northern Ireland). - Start date
start_datedate - The date to count from. It is not itself counted: one working day after a Monday is the Tuesday. Defaults to today in the UK.
- Working days
working_daysnumberRequired - How many working days to count. A negative number counts backwards from the start date. Zero returns the start date itself.From -2000 to 2000.
- Working days of the week
working_weeklist - Which days of the week count as worked. Monday to Friday by default, which with bank holidays taken out is the working day GOV.UK itself means. Add Saturday for a business that trades then, otherwise every count here is out by a day a week.One or more of:
Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday. Default:["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"].
Outputs
calendar_daysnumber- How many calendar days that turned out to be
datetext- The date the count landed on, as YYYY-MM-DD
directiontext- 'forwards' or 'backwards'
divisiontext- The calendar that was read
division_nametext- That calendar's name
skipped_bank_holiday_countnumber- Bank holidays passed over
skipped_bank_holidayslist- Those bank holidays, in date order
skipped_weekend_daysnumber- Days passed over for falling outside the working week
start_datetext- The date counting began from
start_is_working_daytrue/false- True when the start date was itself a working day; counting begins the day after either way
start_weekdaytext- The day of the week that was
weekdaytext- The day of the week it is
working_daysnumber- The number of working days that were counted
working_weeklist- The weekdays counted as worked
Example output
{
"calendar_days": 12,
"date": "2027-01-04",
"direction": "forwards",
"division": "england-and-wales",
"division_name": "England and Wales",
"skipped_bank_holiday_count": 3,
"skipped_bank_holidays": [
{
"bunting": true,
"date": "2026-12-25",
"days_until": 312,
"division": "england-and-wales",
"division_name": "England and Wales",
"is_substitute": false,
"notes": "",
"title": "Christmas Day",
"weekday": "Friday",
"year": 2026
},
{
"bunting": true,
"date": "2026-12-28",
"days_until": 315,
"division": "england-and-wales",
"division_name": "England and Wales",
"is_substitute": true,
"notes": "Substitute day",
"title": "Boxing Day",
"weekday": "Monday",
"year": 2026
},
{
"bunting": true,
"date": "2027-01-01",
"days_until": 319,
"division": "england-and-wales",
"division_name": "England and Wales",
"is_substitute": false,
"notes": "",
"title": "New Year's Day",
"weekday": "Friday",
"year": 2027
}
],
"skipped_weekend_days": 4,
"start_date": "2026-12-23",
"start_is_working_day": true,
"start_weekday": "Wednesday",
"weekday": "Monday",
"working_days": 5,
"working_week": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]
}Check whether a date is a bank holiday
Check one date in one part of the UK and get three plain answers: is it a bank holiday, is it a weekend, is it a working day. Use it to gate a workflow on whether an office is open, or to hold a message back until the next working day. It defaults to today, so 'is today a bank holiday' needs nothing filled in but the place. A date outside the years GOV.UK publishes is refused rather than answered no, because those are not the same thing.
Inputs
- Where in the UK
divisiontextRequired - Which of the three UK bank holiday calendars to read. They really do differ: Easter Monday is a bank holiday in England, Wales and Northern Ireland but not in Scotland, Scotland has 2nd January and St Andrew's Day, and Northern Ireland has St Patrick's Day and the Battle of the Boyne. A value from an earlier step can be the name of a country ('Wales'), the slug GOV.UK keys the data by ('england-and-wales') or the ISO code another integration uses ('GB-SCT'). 'UK' is not an answer, because the three calendars disagree; use 'Compare a date across the UK' to ask all three at once.One of:
england-and-wales(England and Wales),scotland,northern-ireland(Northern Ireland). - Date to check
check_ondate - The date to check. Defaults to today in the UK, which is the day a bank holiday is actually on: a step running late in the evening would otherwise ask about yesterday for half the year.
- Working days of the week
working_weeklist - Which days of the week count as worked. Monday to Friday by default, which with bank holidays taken out is the working day GOV.UK itself means. Add Saturday for a business that trades then, otherwise every count here is out by a day a week.One or more of:
Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday. Default:["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"].
Outputs
bank_holidayslist- Every entry on the date, normally none or one
buntingtrue/false- True when bunting is traditionally put out
covered_from_yearnumber- The earliest year this calendar reaches
covered_to_yearnumber- The latest year this calendar reaches
datetext- The date that was checked
days_until_nextnumber- Days from this date to the next bank holiday
divisiontext- The calendar that was read
division_nametext- That calendar's name
is_bank_holidaytrue/false- True when this calendar has a bank holiday on the date
is_substitutetrue/false- True when it stands in for a weekend date
is_weekendtrue/false- True when the date falls outside the working week
is_working_daytrue/false- True when it is neither, so an office is open
next_bank_holidaytext- The name of the next bank holiday after this date
next_bank_holiday_datetext- The date of the next bank holiday after this date
notestext- GOV.UK's own note on the entry
titletext- The bank holiday's name, empty when there is none
weekdaytext- The day of the week
working_weeklist- The weekdays counted as worked
Example output
{
"bank_holidays": [
{
"bunting": true,
"date": "2026-04-06",
"days_until": 49,
"division": "england-and-wales",
"division_name": "England and Wales",
"is_substitute": false,
"notes": "",
"title": "Easter Monday",
"weekday": "Monday",
"year": 2026
}
],
"bunting": true,
"covered_from_year": 2019,
"covered_to_year": 2028,
"date": "2026-04-06",
"days_until_next": 28,
"division": "england-and-wales",
"division_name": "England and Wales",
"is_bank_holiday": true,
"is_substitute": false,
"is_weekend": false,
"is_working_day": false,
"next_bank_holiday": "Early May bank holiday",
"next_bank_holiday_date": "2026-05-04",
"notes": "",
"title": "Easter Monday",
"weekday": "Monday",
"working_week": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]
}Compare a date across the UK
Ask all three UK calendars about one date at once, and get a ready-made sentence saying who has the day off and who does not. This is the action for a business with people in more than one of them, because the calendars really do disagree: Easter Monday closes London and not Edinburgh, 2nd January closes Edinburgh and not London, and St Patrick's Day closes Belfast alone. Defaults to today.
Inputs
- Date to check
check_ondate - The date to check in all three calendars. Defaults to today in the UK.
- Working days of the week
working_weeklist - Which days of the week count as worked. Monday to Friday by default, which with bank holidays taken out is the working day GOV.UK itself means. Add Saturday for a business that trades then, otherwise every count here is out by a day a week.One or more of:
Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday. Default:["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"].
Outputs
bank_holiday_division_nameslist- The names of the places that have the day off
bank_holiday_divisionslist- The slugs of the places that have the day off
covered_from_yearnumber- The earliest year the data reaches
covered_to_yearnumber- The latest year the data reaches
datetext- The date that was checked
divisionslist- One answer per calendar, in GOV.UK's own order
divisions_differtrue/false- True when some of them have the day off and others do not, which is the case worth catching
is_bank_holiday_anywheretrue/false- True when at least one of them has the day off
is_bank_holiday_everywheretrue/false- True when all three calendars have the day off
is_weekendtrue/false- True when the date falls outside the working week
summarytext- A sentence saying who has the day off and who does not
titleslist- The distinct names the date goes by
weekdaytext- The day of the week
working_weeklist- The weekdays counted as worked
Example output
{
"bank_holiday_division_names": [
"England and Wales",
"Northern Ireland"
],
"bank_holiday_divisions": [
"england-and-wales",
"northern-ireland"
],
"covered_from_year": 2019,
"covered_to_year": 2028,
"date": "2026-04-06",
"divisions": [
{
"bunting": true,
"division": "england-and-wales",
"division_name": "England and Wales",
"is_bank_holiday": true,
"is_substitute": false,
"is_working_day": false,
"notes": "",
"title": "Easter Monday"
},
{
"bunting": false,
"division": "scotland",
"division_name": "Scotland",
"is_bank_holiday": false,
"is_substitute": false,
"is_working_day": true,
"notes": "",
"title": ""
},
{
"bunting": true,
"division": "northern-ireland",
"division_name": "Northern Ireland",
"is_bank_holiday": true,
"is_substitute": false,
"is_working_day": false,
"notes": "",
"title": "Easter Monday"
}
],
"divisions_differ": true,
"is_bank_holiday_anywhere": true,
"is_bank_holiday_everywhere": false,
"is_weekend": false,
"summary": "2026-04-06 (Monday) is Easter Monday in England and Wales and in Northern Ireland, but a normal day in Scotland.",
"titles": [
"Easter Monday"
],
"weekday": "Monday",
"working_week": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]
}Count working days
Count the working days between two dates, with weekends and the local bank holidays taken out. Use it for an SLA window, a notice period, a payroll run or a project estimate. It also hands back which bank holidays cost a working day and which fell at a weekend anyway, and the working week is a setting, so a business that trades on Saturday counts its own.
Inputs
- Where in the UK
divisiontextRequired - Which of the three UK bank holiday calendars to read. They really do differ: Easter Monday is a bank holiday in England, Wales and Northern Ireland but not in Scotland, Scotland has 2nd January and St Andrew's Day, and Northern Ireland has St Patrick's Day and the Battle of the Boyne. A value from an earlier step can be the name of a country ('Wales'), the slug GOV.UK keys the data by ('england-and-wales') or the ISO code another integration uses ('GB-SCT'). 'UK' is not an answer, because the three calendars disagree; use 'Compare a date across the UK' to ask all three at once.One of:
england-and-wales(England and Wales),scotland,northern-ireland(Northern Ireland). - From date
start_datedateRequired - The first day of the range, counted in.
- To date
end_datedateRequired - The last day of the range, counted in. It must be on or after the start date.
- Working days of the week
working_weeklist - Which days of the week count as worked. Monday to Friday by default, which with bank holidays taken out is the working day GOV.UK itself means. Add Saturday for a business that trades then, otherwise every count here is out by a day a week.One or more of:
Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday. Default:["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"].
Outputs
bank_holiday_countnumber- Bank holidays in the range, however they fell
bank_holiday_days_offnumber- Working-week days lost to a bank holiday
bank_holidayslist- The bank holidays that cost a working day
bank_holidays_on_weekendslist- Bank holidays that fell outside the working week, so cost nothing
divisiontext- The calendar that was read
division_nametext- That calendar's name
end_datetext- The last day of the range
start_datetext- The first day of the range
total_daysnumber- Calendar days in the range, both ends counted in
weekend_daysnumber- Days that fell outside the working week
working_daysnumber- Working days in the range, both ends counted in
working_weeklist- The weekdays counted as worked
Example output
{
"bank_holiday_count": 2,
"bank_holiday_days_off": 2,
"bank_holidays": [
{
"bunting": true,
"date": "2026-12-25",
"days_until": 312,
"division": "england-and-wales",
"division_name": "England and Wales",
"is_substitute": false,
"notes": "",
"title": "Christmas Day",
"weekday": "Friday",
"year": 2026
},
{
"bunting": true,
"date": "2026-12-28",
"days_until": 315,
"division": "england-and-wales",
"division_name": "England and Wales",
"is_substitute": true,
"notes": "Substitute day",
"title": "Boxing Day",
"weekday": "Monday",
"year": 2026
}
],
"bank_holidays_on_weekends": [],
"division": "england-and-wales",
"division_name": "England and Wales",
"end_date": "2026-12-31",
"start_date": "2026-12-01",
"total_days": 31,
"weekend_days": 8,
"working_days": 21,
"working_week": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]
}Find a bank holiday by name
Find the dates a named bank holiday falls on, year by year: 'when is the Early May bank holiday', 'when is Christmas Day in Scotland'. Searching forwards from today by default, because that is usually the question. Names are matched loosely, so a partial name, a different case or a typed apostrophe all find it, and every match says how it matched. Watch for substitute days in the answer: Christmas Day 2027 comes back as 27 December, because that is the bank holiday.
Inputs
- Where in the UK
divisiontextRequired - Which of the three UK bank holiday calendars to read. They really do differ: Easter Monday is a bank holiday in England, Wales and Northern Ireland but not in Scotland, Scotland has 2nd January and St Andrew's Day, and Northern Ireland has St Patrick's Day and the Battle of the Boyne. A value from an earlier step can be the name of a country ('Wales'), the slug GOV.UK keys the data by ('england-and-wales') or the ISO code another integration uses ('GB-SCT'). 'UK' is not an answer, because the three calendars disagree; use 'Compare a date across the UK' to ask all three at once.One of:
england-and-wales(England and Wales),scotland,northern-ireland(Northern Ireland). - Name
nametextRequired - The bank holiday's name, or any part of it. GOV.UK rewrites these from year to year, so a short word finds more than a full title does.
- From date
from_datedate - Search from this date onwards. Defaults to today, so the answer is the next one rather than a list starting years ago. Set it earlier to include ones that have already happened.
- To date
to_datedate - Stop searching after this date. Defaults to the end of what GOV.UK publishes.
- How many to return
limitnumber - How many bank holidays to return, earliest first. Defaults to 50, which is more than any of them has in five years.From 1 to 500. Default:
50.
Outputs
bank_holidayslist- The bank holidays whose name matched, in date order
countnumber- How many are in this result
covered_from_yearnumber- The earliest year this calendar reaches
covered_to_yearnumber- The latest year this calendar reaches
divisiontext- The calendar that was read
division_nametext- That calendar's name
foundtrue/false- False when nothing matched
matched_countnumber- How many matched before the limit was applied
nametext- The text that was searched for
next_datetext- The date of the first match still to come
next_days_untilnumber- Days from today to that match
next_titletext- The name of the first match still to come
searched_fromtext- The first day searched, after trimming to what is published
searched_totext- The last day searched, after trimming to what is published
Example output
{
"bank_holidays": [
{
"bunting": true,
"date": "2026-12-25",
"days_until": 312,
"division": "england-and-wales",
"division_name": "England and Wales",
"is_substitute": false,
"match_type": "contains",
"notes": "",
"title": "Christmas Day",
"weekday": "Friday",
"year": 2026
},
{
"bunting": true,
"date": "2027-12-27",
"days_until": 679,
"division": "england-and-wales",
"division_name": "England and Wales",
"is_substitute": true,
"match_type": "contains",
"notes": "Substitute day",
"title": "Christmas Day",
"weekday": "Monday",
"year": 2027
}
],
"count": 2,
"covered_from_year": 2019,
"covered_to_year": 2028,
"division": "england-and-wales",
"division_name": "England and Wales",
"found": true,
"matched_count": 2,
"name": "Christmas",
"next_date": "2026-12-25",
"next_days_until": 312,
"next_title": "Christmas Day",
"searched_from": "2026-02-16",
"searched_to": "2028-12-31"
}Get the next bank holiday
Get the single next bank holiday for one part of the UK, returned flat so a later step can read the name, the date and how many days away it is without indexing into a list. Answers 'when is the next day off' in one step, and a scheduled workflow can act a fortnight before one. Counts from today unless you give it a date to count from.
Inputs
- Where in the UK
divisiontextRequired - Which of the three UK bank holiday calendars to read. They really do differ: Easter Monday is a bank holiday in England, Wales and Northern Ireland but not in Scotland, Scotland has 2nd January and St Andrew's Day, and Northern Ireland has St Patrick's Day and the Battle of the Boyne. A value from an earlier step can be the name of a country ('Wales'), the slug GOV.UK keys the data by ('england-and-wales') or the ISO code another integration uses ('GB-SCT'). 'UK' is not an answer, because the three calendars disagree; use 'Compare a date across the UK' to ask all three at once.One of:
england-and-wales(England and Wales),scotland,northern-ireland(Northern Ireland). - After this date
from_datedate - Count from this date, not counting the date itself. Defaults to today in the UK. Use 'Check whether a date is a bank holiday' if the question is about today rather than after it.
- Bunting
buntingtext - GOV.UK marks each bank holiday with whether bunting is traditionally put out for it, which is its way of separating a celebration from a solemn day: Good Friday and the Battle of the Boyne are marked as no. Filter on it when the message a workflow sends should be cheerful or should not be. Leave it unset for both.One of:
yes(Only the ones to put bunting out for),no(Only the ones not to put bunting out for). - Substitute days
substitute_daystext - A bank holiday that falls at a weekend is moved to a weekday, and GOV.UK publishes only the moved date: Christmas Day 2027 appears as 27 December. Leave this unset to include those, or narrow to them, or drop them to see only the holidays that fall on their own date.One of:
only(Only substitute days),exclude(Leave substitute days out).
Outputs
buntingtrue/false- True when bunting is traditionally put out
covered_from_yearnumber- The earliest year this calendar reaches
covered_to_yearnumber- The latest year this calendar reaches
datetext- The date, as YYYY-MM-DD
days_untilnumber- Days from the date the search started
divisiontext- The calendar that was read
division_nametext- That calendar's name
foundtrue/false- False when the published years hold nothing later
from_datetext- The date the search started after
is_substitutetrue/false- True when it stands in for a weekend date
notestext- GOV.UK's own note on the entry
titletext- The bank holiday's name
weekdaytext- The day of the week
Example output
{
"bunting": false,
"covered_from_year": 2019,
"covered_to_year": 2028,
"date": "2026-04-03",
"days_until": 46,
"division": "england-and-wales",
"division_name": "England and Wales",
"found": true,
"from_date": "2026-02-16",
"is_substitute": false,
"notes": "",
"title": "Good Friday",
"weekday": "Friday"
}List bank holidays between two dates
List the bank holidays one part of the UK has between two dates, whether or not they fall in the same year: a quarter, a sprint, a delivery window or the next six months in one step. GOV.UK publishes a rolling window of years, so a range reaching past it is trimmed to what exists and the result says so rather than quietly coming back short.
Inputs
- Where in the UK
divisiontextRequired - Which of the three UK bank holiday calendars to read. They really do differ: Easter Monday is a bank holiday in England, Wales and Northern Ireland but not in Scotland, Scotland has 2nd January and St Andrew's Day, and Northern Ireland has St Patrick's Day and the Battle of the Boyne. A value from an earlier step can be the name of a country ('Wales'), the slug GOV.UK keys the data by ('england-and-wales') or the ISO code another integration uses ('GB-SCT'). 'UK' is not an answer, because the three calendars disagree; use 'Compare a date across the UK' to ask all three at once.One of:
england-and-wales(England and Wales),scotland,northern-ireland(Northern Ireland). - From date
start_datedateRequired - The first day of the range, counted in.
- To date
end_datedateRequired - The last day of the range, counted in. It must be on or after the start date.
- Name contains
name_containstext - Only bank holidays whose name contains this text. Case, accents and the difference between a typed apostrophe and the typographic one GOV.UK publishes are all ignored, so 'new year's day' finds it. Leave it empty for every bank holiday.
- Bunting
buntingtext - GOV.UK marks each bank holiday with whether bunting is traditionally put out for it, which is its way of separating a celebration from a solemn day: Good Friday and the Battle of the Boyne are marked as no. Filter on it when the message a workflow sends should be cheerful or should not be. Leave it unset for both.One of:
yes(Only the ones to put bunting out for),no(Only the ones not to put bunting out for). - Substitute days
substitute_daystext - A bank holiday that falls at a weekend is moved to a weekday, and GOV.UK publishes only the moved date: Christmas Day 2027 appears as 27 December. Leave this unset to include those, or narrow to them, or drop them to see only the holidays that fall on their own date.One of:
only(Only substitute days),exclude(Leave substitute days out). - How many to return
limitnumber - How many bank holidays to return, earliest first. Defaults to 50, which is more than any of them has in five years.From 1 to 500. Default:
50.
Outputs
bank_holidayslist- The bank holidays that matched, in date order
clamped_to_covered_yearstrue/false- True when the range reached outside the years GOV.UK publishes and was trimmed to them
countnumber- How many are in this result
covered_from_yearnumber- The earliest year this calendar reaches
covered_to_yearnumber- The latest year this calendar reaches
divisiontext- The calendar that was read
division_nametext- That calendar's name
end_datetext- The last day actually searched, after any trimming
in_covered_yearstrue/false- False when none of the range is published, so nothing could be searched
matched_countnumber- How many matched before the limit was applied
requested_end_datetext- The last day that was asked for
requested_start_datetext- The first day that was asked for
start_datetext- The first day actually searched, after any trimming
total_countnumber- How many fall in the range before any filter
Example output
{
"bank_holidays": [
{
"bunting": true,
"date": "2026-12-25",
"days_until": 312,
"division": "england-and-wales",
"division_name": "England and Wales",
"is_substitute": false,
"notes": "",
"title": "Christmas Day",
"weekday": "Friday",
"year": 2026
},
{
"bunting": true,
"date": "2026-12-28",
"days_until": 315,
"division": "england-and-wales",
"division_name": "England and Wales",
"is_substitute": true,
"notes": "Substitute day",
"title": "Boxing Day",
"weekday": "Monday",
"year": 2026
}
],
"clamped_to_covered_years": false,
"count": 2,
"covered_from_year": 2019,
"covered_to_year": 2028,
"division": "england-and-wales",
"division_name": "England and Wales",
"end_date": "2026-12-31",
"in_covered_years": true,
"matched_count": 2,
"requested_end_date": "2026-12-31",
"requested_start_date": "2026-12-01",
"start_date": "2026-12-01",
"total_count": 2
}List bank holidays in a year
List every bank holiday one part of the UK keeps in a calendar year. Each one comes back with the date, the weekday, whether it is a substitute for a holiday that fell at a weekend, and whether bunting goes out for it. Narrow to a name, to the bunting days, or to the substitute days, and order it either way round. England and Wales keep eight most years, Scotland nine and Northern Ireland ten.
Inputs
- Where in the UK
divisiontextRequired - Which of the three UK bank holiday calendars to read. They really do differ: Easter Monday is a bank holiday in England, Wales and Northern Ireland but not in Scotland, Scotland has 2nd January and St Andrew's Day, and Northern Ireland has St Patrick's Day and the Battle of the Boyne. A value from an earlier step can be the name of a country ('Wales'), the slug GOV.UK keys the data by ('england-and-wales') or the ISO code another integration uses ('GB-SCT'). 'UK' is not an answer, because the three calendars disagree; use 'Compare a date across the UK' to ask all three at once.One of:
england-and-wales(England and Wales),scotland,northern-ireland(Northern Ireland). - Year
yeartext - The calendar year to list. Defaults to this year. The list holds exactly the years GOV.UK publishes right now, which is a rolling window of roughly the last few years and the next few; it moves with the calendar, so use the refresh button beside the field if a new year is missing.
- Name contains
name_containstext - Only bank holidays whose name contains this text. Case, accents and the difference between a typed apostrophe and the typographic one GOV.UK publishes are all ignored, so 'new year's day' finds it. Leave it empty for every bank holiday.
- Bunting
buntingtext - GOV.UK marks each bank holiday with whether bunting is traditionally put out for it, which is its way of separating a celebration from a solemn day: Good Friday and the Battle of the Boyne are marked as no. Filter on it when the message a workflow sends should be cheerful or should not be. Leave it unset for both.One of:
yes(Only the ones to put bunting out for),no(Only the ones not to put bunting out for). - Substitute days
substitute_daystext - A bank holiday that falls at a weekend is moved to a weekday, and GOV.UK publishes only the moved date: Christmas Day 2027 appears as 27 December. Leave this unset to include those, or narrow to them, or drop them to see only the holidays that fall on their own date.One of:
only(Only substitute days),exclude(Leave substitute days out). - Order
ordertext - Earliest first by default. Latest first puts the end of the year at the top, which is what a step wanting the last bank holiday of the year reads.One of:
earliest(Earliest first),latest(Latest first).
Outputs
bank_holidayslist- The bank holidays that matched, in date order
bunting_countnumber- How many of these are bunting days
countnumber- How many are in this result
covered_from_yearnumber- The earliest year this calendar reaches
covered_to_yearnumber- The latest year this calendar reaches
divisiontext- The calendar that was read
division_nametext- That calendar's name
substitute_countnumber- How many of these are substitute days
total_countnumber- How many the year holds before any filter
yearnumber- The year that was listed
Example output
{
"bank_holidays": [
{
"bunting": true,
"date": "2026-12-25",
"days_until": 312,
"division": "england-and-wales",
"division_name": "England and Wales",
"is_substitute": false,
"notes": "",
"title": "Christmas Day",
"weekday": "Friday",
"year": 2026
},
{
"bunting": true,
"date": "2026-12-28",
"days_until": 315,
"division": "england-and-wales",
"division_name": "England and Wales",
"is_substitute": true,
"notes": "Substitute day",
"title": "Boxing Day",
"weekday": "Monday",
"year": 2026
}
],
"bunting_count": 2,
"count": 2,
"covered_from_year": 2019,
"covered_to_year": 2028,
"division": "england-and-wales",
"division_name": "England and Wales",
"substitute_count": 1,
"total_count": 8,
"year": 2026
}List the calendars and the years covered
List the three bank holiday calendars GOV.UK publishes, the countries each one applies in, how many bank holidays each holds, the next one coming up in each, and the years the data reaches. The years matter, because they are a rolling window: nothing outside them can be answered. It is also the one-step check that the connection works.
Inputs
None.
Outputs
countnumber- How many calendars there are
covered_from_yearnumber- The earliest year any calendar reaches
covered_to_yearnumber- The latest year any calendar reaches
divisionslist- The three calendars, in GOV.UK's own order
source_urltext- The GOV.UK document the data came from
todaytext- Today's date in the United Kingdom, as YYYY-MM-DD
total_bank_holiday_countnumber- Bank holidays across all three calendars
Example output
{
"count": 3,
"covered_from_year": 2019,
"covered_to_year": 2028,
"divisions": [
{
"bank_holiday_count": 83,
"covers": [
"England",
"Wales"
],
"division": "england-and-wales",
"first_date": "2019-01-01",
"first_year": 2019,
"last_date": "2028-12-26",
"last_year": 2028,
"name": "England and Wales",
"next_date": "2026-04-03",
"next_title": "Good Friday"
},
{
"bank_holiday_count": 94,
"covers": [
"Scotland"
],
"division": "scotland",
"first_date": "2019-01-01",
"first_year": 2019,
"last_date": "2028-12-26",
"last_year": 2028,
"name": "Scotland",
"next_date": "2026-04-03",
"next_title": "Good Friday"
},
{
"bank_holiday_count": 103,
"covers": [
"Northern Ireland"
],
"division": "northern-ireland",
"first_date": "2019-01-01",
"first_year": 2019,
"last_date": "2028-12-26",
"last_year": 2028,
"name": "Northern Ireland",
"next_date": "2026-03-17",
"next_title": "St Patrick's Day"
}
],
"source_url": "https://www.gov.uk/bank-holidays.json",
"today": "2026-02-16",
"total_bank_holiday_count": 280
}