Bank holidays are defined by name, eg.
ChristmasDay. Some such as
ChristmasDay always represent the same date and others such as
EasterMonday are on different dates annually.
There are also displacement (aka substitute) holidays such as
NewYearsDayHoliday which represent the extra day off that occurs when a calendared bank holiday falls on a weekend.
OtherPublicHoliday elements allows additional non-standard holidays to be defined that do not have a named element.
<BankHolidayOperation> <DaysOfOperation> <BoxingDay /> <ChristmasEve /> <NewYearsEve /> </DaysOfOperation> <DaysOfNonOperation> <ChristmasDay /> <NewYearsDay /> <OtherPublicHoliday> <Description>Platinum Jubilee Extra Bank Holiday</Description> <Date>2022-06-03</Date> </OtherPublicHoliday> </DaysOfNonOperation> </BankHolidayOperation>
A common issue occurs when a service is shown to run on a displacement holiday date, when it is not intended to.
This is caused by the wrong bank holiday name being used, such as
ChristmasDayHoliday was intended.
You can read more about displacement holidays in TransXChange in this blog:https://passenger.tech/news/the-best-data-is-simple-data/
Bank Holiday Groups
Although there are also bank holiday group elements such as
AllBankHolidays, and these are supported by Passenger, the TXC-PTI profile does not recommend using them.
Passenger also recommends using the more specific bank holiday elements where possible.
<BankHolidayOperation> <DaysOfNonOperation> <AllBankHolidays/> </DaysOfNonOperation> </BankHolidayOperation>