xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField Sales & SFACRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
Auto DMSConsumer Goods DMSSales Force Automation (SFA) FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Administration/Business hours
HOW-TO · Last reviewed

Business hours

A business hours record is a working calendar: a time zone, the days of the week that are working days, and the daily window (start and end time) that counts as working time. You create a few of them once, when you set up the organization, and then link them to the records that need a working calendar — SLA policies and cases in the support desk, branches, and resources (people). Every later feature that asks "is this a working day?", "what is the local date here?" or "when is this due in working time?" reads one of these records.

Overview

A business hours record holds four values that matter:

  • Time Zone — the zone the calendar is expressed in. Local dates and the daily window are read in this zone.
  • Working Days (mask) — which weekdays are working days, entered as a single number (see Fields).
  • Day Start (min) and Day End (min) — the daily working window, in minutes after local midnight (540 is 09:00, 1080 is 18:00).

The record itself does nothing. It takes effect only where another record points at it:

Where it is linkedFieldWhat uses it
SLA policyBusiness HoursCase due dates for first response, resolution and custom milestones
CaseBusiness HourShifting the deadlines forward after a paused SLA clock resumes
Resource (person)Business HoursMobile attendance gates, attendance day and time zone, auto check-out, time off day counting, the My Team "today", territory route planning, service time sheet shifts
BranchBusiness HoursThe same people features, for resources without hours of their own; appointment slot release

Holidays are separate records (see Holidays and business hours).

When to use it

Create a business hours record for every distinct working pattern you need to measure time against. A typical organization needs:

  • one calendar per support promise you make (for example "Mon–Fri 09:00–18:00 IST" for standard support and a 24×7 one for premium support — or simply no calendar on the premium policy);
  • one calendar per branch working pattern, for attendance and appointment booking (a branch open Monday to Saturday needs a different calendar from an office open Monday to Friday);
  • an individual calendar only for people whose hours or time zone differ from their branch.

How xMatix handles it

A calendar that is not fully filled in counts as 24×7

For the SLA clock and mobile attendance, a calendar is only "configured" when Working Days (mask) is not 0, both Day Start (min) and Day End (min) are filled in, and the end is later than the start. Anything less, and those features treat time as plain calendar time — every day is a working day and every minute counts. Nothing warns you about this, so check all four values when a deadline or a check-in looks wrong. Each of the other features reads only the values it needs (see the table below), so a half-filled calendar can behave correctly in one place and as 24×7 in another.

The time zone

Enter the zone as a standard time-zone name in Region/City form, for example Asia/Kolkata or Asia/Dubai. An empty or unrecognised value is treated as UTC without any message. The time zone decides which local date a punch or a leave day falls on, and where the working window starts and ends.

Which calendar each feature reads

FeatureCalendar it readsWhat it usesWhen nothing is found
SLA due dates (case created)The matched SLA policy's Business HoursEverything, plus holidays linked to that calendar24×7
SLA after a pauseThe case's Business HourEverything, plus linked holidays24×7
Mobile attendance gatesThe resource's, else the default branch'sTime zone, working days, daily windowEvery day and hour passes, dates in UTC
Attendance day, auto check-out, My TeamThe resource's, else the default branch'sTime zone onlyUTC
Time off and leave day countingThe resource's, else the default branch'sTime zone onlyThe request's own time zone, then UTC
Appointment slot releaseThe template branch'sTime zone and working daysEvery day is open, times in UTC
Territory route planningThe resource'sDay start and day end, each on its ownThe Sales settings default shift (09:00–18:00)
Service time sheet shiftsThe technician's default branch's, then the order branch's, then the resource's, then the organization defaultDay start, day end, working daysNo shift shown, capacity not checked
Fiscal daysThe organization default calendarWorking days onlyNo weekly off

Two things follow from this table:

  • The SLA policy, not the case, sets the due dates. When a case is created, the policy's calendar is copied to the case's Business Hour field (unless the case already names one), but the due dates are always calculated on the policy's calendar. The case's field is read only when a paused clock resumes.
  • The resource's own calendar wins, except on the service time sheet. Attendance and time off look at the resource first and the branch second. The service time sheet allocation looks at the branch first and uses the resource's calendar only for a technician with no branch.

The organization default calendar

Fiscal days, service time sheet shifts and incentive daily periods fall back to a calendar marked as the organization default. That flag is not on any standard form or list, so on a standard setup no calendar is the default. Your administrator can add it only with a customization. Without a default, Generate Fiscal Days marks only holiday dates as non-working, and every weekday counts as a working day.

Holidays and business hours

Holidays are their own records (Support → Settings → Holidays), with a Date, a Holiday Type, an optional Partner Account and Branch, and Is Active. A holiday record can also carry a Business Hours link, which only the SLA clock reads. The SLA calculator skips exactly the active holidays linked to the calendar it is using, and ignores every other holiday.

The standard Holiday forms do not include the Business Hours field. Until an administrator adds it to the Holiday form in Design Studio, holidays cannot be linked to a calendar, and SLA due dates do not skip holidays.

The other features choose holidays by branch and company instead, and ignore the calendar link:

  • Mobile attendance (with Block on holidays on) blocks check-in on any active holiday that has no branch or that matches the person's default branch.
  • Appointment slot release closes dates that are a holiday for the template's branch, or a holiday with neither branch nor company.
  • Fiscal days treat holidays with no branch, for the fiscal year's company or for no company, as non-working. Holiday Type WeeklyOff marks the day as a weekly off instead of a holiday.

So a holiday you create only for an SLA calendar, with no branch, also closes appointment slots, blocks mobile check-in and marks fiscal days non-working.

Numbering

Business hours records are numbered on save from the BH series. The number replaces whatever you typed in Name, and that number is what every Business Hours picker shows. Keep a list of which number is which pattern, or change the numbering so the typed name is kept.

Prerequisites

  • The Support app's Settings page, where the Business Hours card lives. In the standard setup only the SystemAdmin profile can see that settings app (see Permissions).
  • The working pattern you want: which weekdays, the opening and closing time, and the time zone.

Procedure

Step 1 — Open the business hours list

Open the Support app, select Settings, and select the Business Hours card. You can also search for Business Hours in the App Launcher. The list shows the All Business Hours view.

Step 2 — Work out the numbers

Work out the three numbers before you start:

  1. Working days: add up the values of the working weekdays — Sunday 1, Monday 2, Tuesday 4, Wednesday 8, Thursday 16, Friday 32, Saturday 64. Monday to Friday is 62, Monday to Saturday is 126, every day is 127.
  2. Day start: hours × 60 + minutes after midnight. 09:00 is 540, 09:30 is 570.
  3. Day end: the same for the closing time. 17:30 is 1050, 18:00 is 1080. The end must be later than the start; a window that crosses midnight is not supported.

Step 3 — Create the record

  1. Select New. The create form opens with Name, Time Zone, Day Start (min), Day End (min) and Working Days (mask).
  2. Enter a Name (required — it is replaced by the BH number on save, see Numbering).
  3. Enter the Time Zone, for example Asia/Kolkata.
  4. Enter Day Start (min), Day End (min) and Working Days (mask) from Step 2.
  5. Select Save.

The record opens with a Key Information panel (Time Zone, Day Start, Day End, Working Days) and a System Information panel.

  • SLA policy: open the policy (Support → Settings → SLA Policies) and choose the record in Business Hours. Only cases created after the change use it — see SLA policies and milestones.
  • Branch: open the branch (Platform → Branches), select Edit and choose Business Hours — see Branches.
  • Resource: open the person's resource and choose Business Hours, only when they differ from their branch — see Resources.

Step 5 — Change or copy a calendar

  • To change a calendar, open it and select Edit. Changes apply from the next calculation. Existing case due dates are not recalculated, and fiscal days already generated are not re-flagged until the background holiday sync runs.
  • To copy a calendar as the starting point for a similar one, select Clone. The copy gets its own BH number; edit it and save.

Step 6 — Delete a calendar

Select Delete on the record (or on the list row) and confirm. Records that point at it keep the link. The SLA clock, attendance and slot release then treat it as missing — usually 24×7 and UTC. A resource that pointed at a deleted calendar does not fall back to its branch's calendar. Before deleting, clear or replace the link on every policy, branch and resource that uses it.

Fields

FieldWhat it meansNotes
NameThe record's name.Required on the form. Replaced on save by the next number from the BH series, unless an administrator has turned that numbering off.
Time ZoneThe zone the working days and window are read in.Free text. Use a Region/City name such as Asia/Kolkata. Empty or unrecognised means UTC, silently.
Day Start (min)Start of the working window, in minutes after local midnight.540 = 09:00. Leave it empty and the SLA clock and mobile attendance treat the calendar as 24×7.
Day End (min)End of the working window, in minutes after local midnight.1080 = 18:00. Must be later than Day Start; a window across midnight is not supported.
Working Days (mask)The working weekdays, as a sum of day values.Sunday 1, Monday 2, Tuesday 4, Wednesday 8, Thursday 16, Friday 32, Saturday 64. 0 or empty means not configured: the SLA clock, attendance and slot release then count every day.

The Created By, Created Date, Modified By and Modified Date fields in System Information are filled in automatically. Field-by-field technical detail is in the Business Hour reference.

Business rules

  • Working time arithmetic (SLA). A target in minutes is counted only inside the daily window on working days that are not linked holidays, in the calendar's time zone. A target starting before opening time starts counting at opening; one that runs past closing continues at the next working day's opening.
  • Pauses (SLA). When a paused case resumes, xMatix counts the working minutes the case sat paused, on the case's Business Hour calendar, and moves each paused milestone's due and warning time forward by that many working minutes.
  • Mobile attendance gates. With Restrict to working days on, a check-in on a weekday outside the mask is refused. With Restrict to working hours on, a check-in before Day Start or at or after Day End is refused. Both gates pass automatically when the calendar is not fully configured.
  • Appointment slots. Dates on a weekday outside the branch calendar's mask are closed. Their slots are withdrawn (capacity 0). The slot times themselves come from the slot template, not from Day Start and Day End.
  • Territory route planning. A resource's shift length is Day End minus Day Start, with a minimum of one hour. Each value missing from the resource's calendar is taken from the Sales defaults.
  • Fiscal days. When fiscal days are generated, a weekday outside the default calendar's mask is flagged as a weekly off. Holidays win over the mask.
  • Numbering. New records, including clones, get the next BH number in Name.

Example

A company runs its head office Monday to Friday 09:30–18:00 and its service centres Monday to Saturday 09:00–19:00, all in India. Its premium support promise runs around the clock.

  1. The administrator creates two calendars:
    • Office: Time Zone Asia/Kolkata, Day Start 570, Day End 1080, Working Days 62. It saves as BH number one.
    • Service centre: Time Zone Asia/Kolkata, Day Start 540, Day End 1140, Working Days 126. It saves as BH number two.
  2. The head office branch gets the office calendar, and each service centre branch gets the service-centre calendar.
  3. The Standard support SLA policy gets the office calendar, with a first response target of 240 minutes. The Premium support policy gets no calendar.
  4. A standard case opened on Friday at 16:30 is due for first response on Monday at 12:00: 90 working minutes on Friday, then 150 on Monday from 09:30. A premium case opened at the same moment is due on Friday at 20:30.
  5. A technician at a service centre with Restrict to working days on can check in on Saturday. Their colleague at head office cannot.

Training

Practice exercise

In a sandbox:

  1. Create a calendar with Time Zone Asia/Kolkata, Day Start 600, Day End 960 and Working Days 62. Note the BH number it saves as.
  2. Create an active SLA policy with this calendar in Business Hours, no match formula and a First Response (min) of 120. Then, in the SLA policy list, give it a rank higher than every other active policy so it is tried first.
  3. Create a case on a weekday at 15:00 local time.

Expected result: the case's SLA tab shows the policy, the calendar in Business Hour, and a First Response Due of the next working day at 11:00 local time (60 minutes on the first day until 16:00, then 60 minutes from 10:00). Delete the test policy when you are done.

Quick reference

  • Working days: Sun 1, Mon 2, Tue 4, Wed 8, Thu 16, Fri 32, Sat 64 — add them up. Mon–Fri = 62.
  • Times are minutes after midnight: 09:00 = 540, 18:00 = 1080.
  • Time zone as Region/City (Asia/Kolkata); blank or wrong = UTC.
  • Mask 0, a blank start or end, or end ≤ start = 24×7 for SLAs and attendance.
  • The policy's calendar sets due dates; the case's calendar is used after a pause.
  • Resource calendar beats branch calendar (except on the service time sheet).
  • Holidays need the Business Hours field added to their form before SLAs skip them.
  • The saved name is the BH number, not what you typed.

Permissions

  • Seeing and editing records. The standard SystemAdmin, StandardUser, SalesExecutive, SalesManager, Sales and Service profiles have full access (read, create, edit, delete) to business hours records. Other users see nothing in Business Hours pickers.
  • The settings page. Only SystemAdmin can see the Support settings app with the Business Hours card in the standard setup. Other users with record access can still open the list from the App Launcher.
  • Clone. Clone is a server action, granted to SystemAdmin, StandardUser and SalesExecutive in the standard setup. New, Edit and Delete follow record access.

Change these in security profiles.

Configuration

WhatWhereEffect
CalendarsSupport → Settings → Business HoursThe working calendars themselves.
HolidaysSupport → Settings → HolidaysNon-working dates. Add the Business Hours field to the Holiday form (Design Studio) if SLA due dates must skip them.
SLA policy calendarSupport → Settings → SLA Policies → Business HoursThe calendar due dates are calculated on. Empty = 24×7.
Branch calendarPlatform → Branches → Business HoursThe fallback calendar for the branch's people, and the working days for its appointment slots. The Payroll Business Hours field on branches is not on the standard forms and nothing reads it.
Resource calendarResource → Business HoursA person's own calendar, overriding the branch.
Mobile check-in gatesSetup → Design Studio → Apps → Mobile Apps → the configuration → Check-In tab: Restrict to working hours, Restrict to working days, Block on holidaysOff by default. When on, check-in is refused outside the calendar. See Attendance.
Auto check-outSetup → Feature Hub → Sales → Settings, Schedulers group, Auto check-out open attendance after midnightOff by default. Closes forgotten days at 23:59:59 in each person's calendar time zone.
Territory default shiftSetup → Feature Hub → Sales → Settings, Territory Planning group, Default shift start / Default shift end (minutes since midnight)540 and 1080 by default. Used for people whose calendar has no start or end.
NumberingSetup → Design Studio → Entities → Business Hours → Logic → Document Settings (Business Hours Name Setting, series BH)Deactivate it to keep the name you type.
Form layoutSetup → Design Studio → Entities → Business Hours → LayoutsAdd help text or rearrange fields.

The Business Hours fields on Scheme and Incentive Plan records are stored but have no effect: schemes never read them, and incentive plans generate a daily period for every calendar day regardless of the calendar.

Common problems

An SLA due date lands on a weekend or at night

The calendar is not fully configured, so the SLA clock runs 24×7. Check that the policy has a calendar, and that the calendar has a non-zero Working Days (mask), both Day Start (min) and Day End (min), and an end later than the start.

SLA deadlines ignore our holidays

The SLA clock skips only active holidays linked to the policy's calendar, and the standard Holiday form has no Business Hours field. Add the field to the Holiday form in Design Studio, then set it on each holiday. Cases already open keep their due dates.

Due times are off by several hours

The Time Zone is empty or not recognised, so the calendar runs in UTC. Enter a Region/City name such as Asia/Kolkata.

I changed the case's Business Hour but the due dates did not move

Due dates are calculated once, on the policy's calendar, when the case is created. The case's calendar is used only to shift deadlines after a paused clock resumes.

Field staff can check in on a Sunday although the gate is on

Their calendar is not fully configured, so the working-days and working-hours gates pass. Check the resource's calendar, or the default branch's if the resource has none.

A person's attendance dates are a day off after we deleted a calendar

The resource still points at the deleted calendar. xMatix then uses UTC and does not fall back to the branch's calendar. Clear or replace the resource's Business Hours.

Appointment slots are closed on an SLA-only holiday

Slot release closes any holiday with no branch and no company, whatever calendar it is linked to. Give SLA-only holidays a Partner Account to keep them out of slot release. Mobile check-in still treats them as holidays.

Generate Fiscal Days marks Saturdays and Sundays as working days

No calendar is marked as the organization default, so fiscal days have no weekly off. Correct the days by hand, or add holidays with Holiday Type WeeklyOff for those dates.

I can't find the calendar I created in a picker

Pickers show the BH number, not the name you typed. Open the Business Hours list to match numbers to patterns, or deactivate the numbering setting.

Common questions

Do I need business hours at all?

No. Without any calendar, SLA targets count in plain clock time, mobile attendance does not restrict check-in by day or hour and works in UTC dates, appointment slots open every day the template allows, and route planning uses the default 09:00–18:00 shift. Create calendars when you need any of those to follow your working week — for example when "four hours to respond" should mean four office hours, or when attendance dates must follow local time.

Can one calendar have different hours on different days?

No. A calendar has one daily window that applies to every working day. If Saturday is a half day, either treat it as a full working day, leave it out of the mask, or create a separate calendar for the people or policies that work it. Lunch breaks and split shifts cannot be represented either; the window runs continuously from start to end.

What happens to open cases when I edit a calendar?

Due dates already set on open cases stay as they are; they were calculated when the case was created. The edited calendar applies to cases created afterwards, and to the deadline shift when a paused case resumes. Attendance, slot release and time off read the calendar fresh each time, so for them the change applies immediately.

Should every person have their own calendar?

Usually not. Set the calendar on each branch and leave the resource's Business Hours empty, so people follow their branch. Set a personal calendar only for someone whose hours or time zone differ — for example a person working remotely in another country. Remember that the service time sheet reads the branch first, so a personal calendar does not change a technician's shift there unless they have no branch.