Bank holidays

Updated by Daniel Sjögren

Bank holidays are one-off days each year that require additional or special payout logic for an employee who logs a shift during a defined window that day, which may deviate from the standard unsocial hours or overtime hours rules that are established in your workplace.

Christmas day is an easy example of a bank holiday. In a country where Christmas Day is considered a public holiday, you may need to establish a unique set of rules to ensure that employees who have a shift on December 25th are compensated correctly. These may need to override (or be calculated in addition to) the rolling overtime and unsocial time rules established at your company, and thus these need to be configured here on a very granular level.

Likewise, there may be a different set of compensation rules for those who work on Christmas Eve. Though the needs may be similar, the bank holiday compensation on this day - for example - may only be applicable for shifts starting after 13:00. To cater for this, you would create a separate set of bank holiday rules specific to the different requirements of December 24th.

Bank holidays are complex as the exact requirements for each holiday shifts year-to-year, as the weekday the holiday falls on changes. While Christmas may be on Sunday this year, next year it will be on a Monday, and so on. Thus the configuration of each bank holiday (and its relationship to the unique rules of a company) must be adapted and configured annually to account for this different layering of configurations that account for the different days of the week.

Only one bank holiday is allowed per calendar day each year.

Overview of bank holidays

In Quinyx, under Account Settings > Agreements > Bank holidays you have an overview of all existing bank holiday configurations. Here you can:

  • Click Add new to create a new bank holiday or import via API.
  • Click on the bank holiday name to edit an existing configuration.
  • Click on the copy icon to copy an existing configuration for a new date.
    • When you copy an existing bank holiday configuration, you can immediately define the name for the new holiday, and you can set the new date.
  • Click the ellipsis (three dots) menu > Share to holidays to add the configurations of a single bank holiday to other bank holidays within the same year.
  • Click the trash action icon to delete a configuration.

Columns are sortable, and you can get a quick overview of when a bank holiday was last updated and the number of unsocial time, overtime and day rules that are associated with each one.

Importing bank holidays

In addition to creating bank holidays manually (like above), you can also import bank holidays based on your desired time frame and region.

Note that this only applies to bank holidays created in Account settings, and not to bank holidays created in agreement templates.
In the example below, you can see Daniel trying to import all the holidays for Sweden, 2024, e.g., a full list of holidays to import for that region + year, of which he can select which he wants to import.
Automatically importing bank holidays
  1. Go to Account settings > Agreements > Bank Holidays.
  2. In the top-right, click Add new and select Import from API.
  1. Select the year, country, and language that you wish to import bank holidays for, and select Next.
  2. You'll get a list of all bank holidays you can import, when you have made your selections, click Import.
  3. Done! As before, you can make additional settings on the bank holidays after you are done importing them.
Click here for a tutorial on how to import bank holidays.

Sharing bank holiday functionality

With the sharing action, you are able to share the configurations of a global bank holiday to other existing bank holidays within the same year, e.g. 2023.

Sharing configurations across global bank holidays
  1. Select the specific holiday that you’d like to share configurations from.
  1. Select which bank holidays (within the same year) that you’d like to share the configurations to.
  2. Once done, all configurations (except Name and Date) will be copied to all the selected holidays!

Copy bank holidays across years

To reduce the amount of work required to manage your bank holidays year-to-year, you can copy existing bank holidays across years:

  1. Click the Copy action at the top of the Bank holiday overview;
  2. Select which year you want to copy from and the year(s) you want to copy to.
  3. Define which holidays you’d like to copy (any conflicts will be highlighted in red);
  4. Done!
There will still be some work required to maintain holidays year-to-year, for example, when a holiday lands on deviating days. But now, you won’t have to “start from scratch” with your Bank Holiday set up each and every year, and you can instead focus on maintaining and optimizing your holidays for your setup!

Filtering bank holidays

When you configure bank holidays, you can filter the list of bank holidays to show only the years you're interested in.

If nothing is selected, all years will be displayed by default. From there, you can filter by any year on which you have a bank holiday configured.

Configuring bank holidays

When adding or editing a bank holiday configuration, you open a dedicated panel to fully satisfy your configuration dreams. Using the bank holiday configuration, you can define the rules around each of these holidays on a very granular level to meet the different needs of different companies, countries, or individuals.

This configuration consists of five separate sub-panels which, together, can create the rules for each holiday.

  • The General information sub-panel
  • The Unsocial time sub-panel
  • The Overtime sub-panel
  • The Day rule sub-panel
  • The Shift rules sub-panel

Each sub-panel is broken down in detail, configuration-by-configuration, below.

The General information sub-panel

The General information sub-panel contains the basic required information for creating a bank holiday. When adding a new configuration, this sub-panel must be configured first. Once the information is provided and saved all the subsequent sub-panels will be unlocked.



Bank holiday name

The name of your bank holiday.

This is a mandatory field, with a maximum character limit of 60.


The date of your bank holiday.

A mandatory field. You can only have one bank holiday per calendar date.

Reduce employee nominal hours on the day before this bank holiday by

As the above configuration - this may be useful, for example, if staff are given a half-day off the day before a bank holiday. You can choose to reduce nominal working hours as a percentage or as a number of hours.

Reduce employee nominal hours in the bank holiday by

You must define how the bank holiday should affect the nominal time for the calculation period. A 100% reduction of the nominal time on the day in question is the default. This is correct if this is an employee with nominal, agreed time per week with no bank holidays. In this case, the working hours must be reduced for the public holidays specified in the agreement. Note that this is dependent on the day of the week on which the bank holiday occurs: normally working hours are already reduced on Saturdays and Sundays, which is why a reduction should not be used when the bank holiday falls on a Saturday or Sunday.

Overtime & unsocial time periods apply

Here you define when the entered Overtime or Unsocial times should apply. The options include:

  • Always (selected by default)
  • If shift starts on this calendar day
  • If shift starts on prior calendar day
  • If shift starts on this or prior calendar day

Only applies to following unit groups

If a bank holiday should only apply to select unit groups, you can define that using this field.

This note is only relevant to customers scheduling the same employees on multiple units: Please note that Quinyx looks to whether the home unit of an employee is part of the unit group in question, not to whether the group on which the employee has worked is part of the unit group.

Employees can work on this bank holiday two years in a row

Defines whether an employee, who registers a shift during this specific bank holiday, can be scheduled for the same date two years in a row.

Create leave on daybreak if missing punch...

Defines what absence type should be applied to an employee who does not register a punch by the end of the day.

Unchecked by default. If selected you can choose between the different absence types configured on a customer level.

Count schedule time towards set thresholds

This field can be used to determine whether any time registered during the defined window unsocial or overtime thresholds.

The Unsocial time sub-panel

The Unsocial time sub-panel is next and is used to add different levels of unsocial time that should apply to this bank holiday. The unsocial times defined here will override the default periods set on the account level. If you want to configure levels for different periods during the day, you can add them in multiple rows.

Each unsocial time period (and overtime period) can be as short or as long you'd like for that day, but there cannot be doubling, parallel, or overlapping periods for each.



+ Icon

Click to add an unsocial time period; for multiple rows you can add multiple different configurations.

Add a new unsocial time

Choose from a dynamic drop-down of unsocial times, from those unsocial time periods already created by the customer.

(Numerical input fields)

The "From-To" period for this specific unsocial time. Note that you can not have parallel unsocial times during the bank holiday.

The Overtime sub-panel

Similar to the above, the Overtime sub-panel is used to add the different levels of overtime that should apply to this bank holiday. Here, as with other overtime configurations, you can also define specific rules for different first hours.

Like with the unsocial time periods, the overtime periods configured here for the bank holiday will replace the default unsocial hours and overtime rules for that day.



+ Icon

Click to add an overtime period; for multiple rows you can add multiple different configurations.

Add new overtime

Choose from a static list of the four standard overtime periods. Overtime 1 is selected by default.

(Numerical input fields)

The "From-To" period for this specific overtime period. Note that you can not have parallel unsocial times during the bank holiday.

Different first Hours

Can be used, along with the two following fields, if a different overtime period should apply to the initial hours of a shift logged in this window.

Type of overtime


(Numerical input fields)


Generate as additional salary type

If selected, you have two options: Always or On shift with matching punch.

The Day rules sub-panel

The Day rules sub-panel is used to create specific rules around the salary that should be generated on the bank holiday.

Note that the configurations available in this sub-panel are dictated by the selected salary type. As different rules are available to different salary types, the configurations will vary (quite a bit) per selected salary type and will be enabled or disabled accordingly.



+ Icon

Click to add a new day rule.

Salary Type

A dynamic drop-down selector, to select which salary type of salary should be generated by the rule.


What period during the day the bank holiday should account for.

In Amount

Four options available here:

  • Punched hours: amount of hours punched
  • Scheduled hours: amount of hours scheduled (selected by default)
  • Exactly: a set amount to be generated
  • Nominal hours: from the employees nominal hours calculation

Only generate salary if employee has...

Different static options available:

  • Punch with matching shift
  • Punch without matching shift
  • Shift without matching punch (selected by default)
  • Approved vacation
  • Approved sick absence
  • Time off
  • Specified absence type

Only generate salary if shift starts…

Deselected by default. If selected you have three options:

  • On bank holiday (selected by default)
  • Day before bank holiday
  • On or day before bank holiday

Salary generated should replace…

All are unselected by default, but you can select multiple of the following.

  1. Base salary: Select if the salary type from the rule should replace the base salary type(s).
  2. Unsocial time salary: Select if the salary type from the rule should replace the unsocial time salary type(s).
  3. Additional time: Select if the salary type from the rule should replace the additional times.
  4. Additional overtime salary type: Select if the salary type from the rule should replace the additional overtime salary type(s).
  5. Sick salaries: Select if the salary type from the rule should replace the standard sick salaries:
    • 1140
    • 1141
    • 1142
    • 1143
    • 1150
    • 1151
    • 1152
    • 1160
    • 1161
    • 1162
    • 2001
    • 2002

It is possible to copy an existing day rule from the Day rules-sub panel. This is useful if you only wish to perform minor configuration changes when creating a new day rule. Click the copy icon to copy a day rule.

The Shift rules sub-panel

The Shift rules sub-panel is used to define any special or additional rules that should be applied for this bank holiday.

You do this by including the two different Salary Types here, to define the relationship (and rules) between them. That is, for the bank holiday you are configuring, there may be unique situations where you need to substitute or modify the initial salary (Salary Type 1) by the secondary one (Salary Type 2) to correctly account for the payouts of that bank holiday.

For example, using “Replaced by” you can say that on Christmas day, for any shift logged during the defined time interval, Salary Type 1 should be replaced entirely by Salary Type 2 to accommodate for the unique Christmas payout that the employee should be accountable for during those hours.

You can also define conditions where these additional shift rules should only be generated if it meets certain criteria.



Salary type 1

The first salary type. In the drop-down you can chose between some default options, as well as a dynamic list of all the salary types already configured.

Should be...

The four static drop down options are:

  • Replaced by (selected by default)
  • Added
  • Multiply by
  • Replaced complete

If Multiply by is selected, you also enable an additional numerical input field.

Salary type 2

The second salary type to be considered. Here you can select from No salary type (the default) as well as the same dynamic list of salary types that have already been configured.

In interval

The five static drop-down options include:

  • Time (selected by default)
  • Within schedule
  • Outside schedule
  • Generated hours
  • Punched hours


00:00 by default.

Based on the above value, this value may or may not be enabled.

New salary type generated by

The four static drop-down options include:

  • Working hours (selected by default)
  • Minimum
  • Maximum
  • Exactly

If Exactly is selected, you also enable an additional numerical input field.

Generate only if

Here you can establish the additional criteria that the shift much reach, in order for the the shift rule to be applied.

By default, together, the three fields are No salary type > 0.00.

It is possible to copy an existing shift rule from the Shift rules-sub panel. This is useful if you only wish to perform minor configuration changes when creating a new shift rule. Click the copy icon to copy a shift rule.

Read more about working with bank holidays in agreement templates here.

How Did We Do?