Set up an SLA calendar for any country in ten minutes
Build a business-hours SLA calendar for any country in the browser: your week, holidays from an .ics file, Easter computed, then replay one ticket to prove it.
ServiceNow and Jira Service Management measure an SLA inside a schedule: working hours, weekends, public holidays, and the states that pause the clock. If the report you take to the business uses a different calendar, the two numbers will not match, and the argument about which one is right will take longer than the fix.
The ITSM Compass business calendar started as a GCC tool: Sunday to Thursday weeks, Ramadan hours, Eid. It now works for any country. This is how to set one up in about ten minutes, and the one check that proves it matches your ITSM tool.
1. Start from the right week
Open the business calendar and pick a preset. The GCC presets carry each country's working week and fixed holidays. For anywhere else, choose Monday–Friday, 08:00–17:00 (any country). It assumes nothing: no holidays, a plain 45-hour week, P1 on a 24 × 7 clock and the rest on business hours.
Then set your real hours. A split shift is a second range on the same day. A half day before a holiday, such as 24 and 31 December, goes under Short days, with the hours you work and "Every year" ticked if it repeats.
2. Bring in your public holidays from an .ics file
You do not have to type them. Most governments publish their public holidays as a calendar feed, and both Google Calendar and Outlook ship a "Holidays in …" calendar for every country that can be exported as an .ics file. Your HR team usually has one too.
Click Import holidays (.ics) and choose the file. The calendar adds every all-day event for the year it is showing, in your browser; nothing is uploaded. Timed events, events from other years and repeats are skipped, and the status line says how many.
A worked example, checked today on the UK government's own feed for England and Wales (gov.uk/bank-holidays). For 2027 it imports eight holidays:
| Date | Holiday |
|---|---|
| Fri 1 Jan | New Year's Day |
| Fri 26 Mar | Good Friday |
| Mon 29 Mar | Easter Monday |
| Mon 3 May | Early May bank holiday |
| Mon 31 May | Spring bank holiday |
| Mon 30 Aug | Summer bank holiday |
| Mon 27 Dec | Christmas Day (substitute day) |
| Tue 28 Dec | Boxing Day (substitute day) |
Look at the last two rows. Christmas Day 2027 is a Saturday, so the bank holiday moves to Monday 27 December. A calendar typed from memory puts the holiday on the 25th, counts Saturday twice, and runs the SLA clock through Monday. The official feed gets it right, which is the point of importing rather than typing.
Check the names after the import and remove any your desk does not observe. A regional feed may carry days that apply to one part of the country only.
3. Add Easter without looking it up
Easter moves every year, and with it Good Friday, Easter Monday, Ascension Day and Whit Monday. If your country's feed already has them, you are done. If it does not, or you are building a calendar for a site whose feed you cannot find, choose Western or Orthodox next to the Easter button and click Add Easter dates. The dates are computed, not copied from a table.
For 2027, Western Easter Sunday is 28 March and Orthodox Easter Sunday is 2 May. The Orthodox set adds Clean Monday, Good Friday, Easter Monday and Whit Monday. Cyprus also closes on Easter Tuesday, which the button does not add: put it in by hand. Then delete anything your country does not observe. Not every Western country closes on Ascension Day.
4. Decide which priorities run around the clock
Under SLA clock per priority, set each priority to business hours or 24 × 7. This is the setting that most often differs between the SLA document and the tool. If P1 is "four hours" in the contract but the tool's schedule for P1 is 24 × 7, the calendar must say 24 × 7 too, or every weekend P1 will look better in your report than in ServiceNow.
5. Save it under a name
Under My calendars, give the calendar a name and click Save as. A desk that supports two countries keeps one calendar for each; a GCC desk with a European vendor keeps the vendor's calendar for the OLA. The SLA clock and the service desk dashboard list every saved calendar by name above the presets, so the same hours measure every ticket. Everything stays in your browser; use Export to give a colleague a copy.
6. Prove it matches your ITSM tool
This is the ten-minute check that saves the hour-long argument. Take one resolved ticket from last month, ideally one that breached. Open the SLA clock, pick your saved calendar, enter when it was logged, when it was resolved, and every on-hold period from the ticket history. Compare the breach moment with what ServiceNow or Jira recorded.
If they differ, it is one of three things, in this order:
- The schedule. Different hours, a missing holiday, or a holiday on the wrong day. The substitute-day trap above is the usual culprit in December.
- The clock. The tool runs that priority 24 × 7 and your calendar runs it in business hours, or the reverse.
- The pause states. "Awaiting customer" pauses the clock in the tool; "Awaiting vendor" does not. Enter exactly the states the tool pauses, and nothing else.
Fix the calendar, not the report. When the one ticket matches, the dashboard run on the same calendar will match the tool's SLA column across the whole export, which is what you want before the number reaches a board paper.
Two traps that are not about holidays
Clock-change days. On the day the clocks go forward a 24 × 7 clock counts 23 hours; on the day they go back it counts 25. A business-hours clock is unaffected as long as the change happens outside working hours, which in Europe it does. If your P1 targets run 24 × 7, a ticket logged across the autumn change gets an extra hour. Small, but it explains the one P1 that "should have breached".
A holiday on a weekend. 1 May 2027 is a Saturday. On a Monday-to-Friday calendar it stops nothing, and that is correct: the calendar does not count it twice, and it does not move it to Monday unless your country's feed says so. If your country observes the following Monday, the feed will carry it; if the feed says nothing, neither should the calendar.
The ten-minute checklist
- Preset: a GCC country, or Monday–Friday (any country). Set the real hours and any split shift.
- Short days: 24 and 31 December if you work half days, "Every year" ticked.
- Holidays: import the official .ics for the year; remove regional days you do not observe.
- Easter: add Western or Orthodox dates if the feed lacks them; add Easter Tuesday by hand for Cyprus.
- Clock per priority: match the tool, not the contract.
- Save as a named calendar, one per country or site.
- Replay one breached ticket in the SLA clock; fix the calendar until it matches the tool.
Then run last month's export through the dashboard on that calendar. If the SLA column and the business-hours measure agree, your calendar is right, and the next conversation can be about the breaches instead of the arithmetic.
Sources
- UK Government, bank holidays, with .ics feeds for England and Wales, Scotland and Northern Ireland: https://www.gov.uk/bank-holidays (England and Wales 2027 feed read 26 October 2026).
- Easter dates are computed in the calendar from the standard Gregorian (Western) and Julian (Orthodox) algorithms; 2027 results: Western 28 March, Orthodox 2 May.
Want this working in your organisation?
Take the free 3-minute ITSM maturity check, or book a 15-minute call to talk it through.