The Public Holidays page is your organization's calendar of official days off, such as Eid Al Fitr or UAE National Day. A holiday is not just a reminder: once it is Active, every part of SolaHR that has to know whether someone is expected at work asks this calendar. Nobody is marked late or absent on a holiday, work on it is paid as holiday work, leave requests do not charge it, the dashboard does not count it as an absence, and the payroll of the month follows.
A holiday can cover the whole organization or only some departments (for example, only the Government Relations team has the day off), and individual employees can be put on holiday duty when they are required to work anyway. Every change is checked against what has already been recorded: SolaHR shows you what the change would do to attendance, review items and payroll before you confirm it.
Where to find it
- Sidebar: Time & Attendance → Holidays — URL
/holidays. - The menu item appears when your plan includes holidays and your role can view holidays or manage attendance.
The holidays list
The header reads Public Holidays — "Active holidays are days off for the employees they cover: no absence or lateness is recorded, and work on them is holiday work."
At the top:
- Add Holiday (top-right) — shown if you can manage holidays.
- A Year box and Show. Type a year (1900–2100) and click Show or press Enter. The current year (in your organization's time zone) is shown by default.
Holidays for that year are grouped into one card per month ("December 2026"). A recurring holiday from an earlier year appears in later years on its yearly date.
| Column | What it shows |
|---|---|
| Date | The date this year, with a Today badge on the current day. A recurring holiday shows "Every year · Since 2026". |
| Name | Holiday name, its description underneath, and "Last changed by name". |
| Applies to | Whole organization, or the names of the Selected departments. |
| Status | Active (green) or Inactive (grey), with "n on duty" when employees have holiday duty on that date. Inactive rows are dimmed. |
| Actions | Edit button and a ⋯ menu with Activate / Deactivate, Holiday duty (active holidays only) and Delete (only while the holiday is unused). Shown if you can manage holidays. |
With none for the year: "No holidays recorded for this year." and an Add Holiday button.
Add or edit a holiday
-
Click Add Holiday, or Edit on a row.
-
Fill in the dialog:
Field Required Notes Name Yes Up to 255 characters. Date Yes One day, between 1900 and 2100. For a multi-day holiday, add one entry per day. Description No Up to 1,000 characters. Applies to — Whole organization (default) or Selected departments. With departments, tick Departments on holiday: "Employees in other departments work as usual on this day." Recurring No "Repeats on this day every year from this year on". A recurring holiday really does repeat: on its month and day in every later year (29 February only in leap years). Do not use it for holidays whose date moves, such as Eid. Active — Ticked by default. "Inactive holidays are kept for history but never applied." -
Click Add (or Save). SolaHR first previews the effect (see What a change does). When no recorded attendance is affected it saves straight away: "Holiday added." / "Holiday updated."
Only one holiday per date is allowed. A second one is refused with "There is already a holiday on this date (name). Edit or reactivate it instead." For a day that has two names (for example "Eid Al Adha / Arafat Day") rename the existing entry.
What a change does
Adding, editing, activating, deactivating and changing holiday duty all go through the same check. SolaHR re-evaluates the old and the new dates in one step, so attendance and payroll follow the calendar, and it shows you the result in Effect on attendance and payroll before anything is applied:
| Line | Meaning |
|---|---|
| "n attendance day(s) recalculated" | A punch recorded earlier is re-read: on a holiday there is no late, early leave or absence, and every worked minute becomes holiday overtime. |
| "n pending review item(s) withdrawn" | Pending late, early-leave or absence items that no longer apply are removed. |
| "n approved decision(s) withdrawn from payroll" | An already approved item no longer applies. This needs your confirmation (button Apply and withdraw approved decisions). |
| "n of them are in finalized payroll: a reversal is added to the next open payroll (closed payroll is never changed)" | Finalized runs are never edited. |
| "n new review item(s) to decide" / "n missing punch(es) flagged for review (days that become workdays)" | Deactivating or moving a holiday turns the day back into a workday, so missing punches there are flagged. |
| "n absence(s) recorded by hand on these dates — kept, please review" | Absences entered by HR are never removed automatically. |
| "n approved leave request(s) cover these dates — run the leave day review to recount them" | Leave across the date keeps its recorded day count until recounted (see Leave). |
| "Draft payroll recalculated: periods" | Draft runs are refreshed. |
| "No recorded attendance is affected." | Nothing to check; the change saves at once. |
The dialog lists up to 12 individual changes ("Omar Haddad · 12 Oct 2026: Present · Late 20′ → Official holiday"). Back returns to the form; Apply confirms.
Activate or deactivate
⋯ → Deactivate keeps the record and its history but stops applying it. You see the same effect preview, then "Holiday deactivated." Activate turns it back on: "Holiday activated." Use this instead of deleting a holiday that has already been used.
Holiday duty
Some people must work on a holiday: security, front desk, the warehouse picking team. Holiday duty makes the day a workday for them only. They keep their usual shift and lateness rules, the day still counts as a holiday, and every hour they work is holiday work that goes to review.
- Open ⋯ → Holiday duty on an active holiday. The dialog is Holiday duty — name and explains "Employees required to work on date. Their shift rules apply; the day stays a holiday and their worked hours go to holiday-work review."
- Use Add employee to pick people. Only employees the holiday gives the day off can be added: "Holiday duty can only be assigned to employees this holiday gives the day off."
- Remove people with Remove. With nobody listed: "Nobody is on duty — everyone covered by this holiday has the day off."
- Click Save. You see the effect preview, then "Holiday duty saved."
Duty belongs to one date of the holiday. For a recurring holiday, set it again each year.
Delete a holiday
⋯ → Delete is offered only while the holiday has not been used by any attendance calculation or duty list. The confirmation reads Delete Holiday — "Delete this holiday? It has not been used in any calculation yet. (name)". You see "Holiday removed." A used holiday shows "Already used in attendance — deactivate instead of deleting." and the server refuses to delete it: "This holiday has already been applied to attendance. Deactivate it instead of deleting it, so its history is kept."
How holidays are applied
For one employee and one day, SolaHR applies these rules in this order:
- The employee has not started yet: not a workday.
- An active holiday applies to the employee's department (or the whole organization), and the employee has no holiday duty: the day is a Public holiday.
- The employee's weekly rest day.
- Approved leave.
- Otherwise a normal workday.
A holiday that falls on a weekly rest day is one day off, recorded as the holiday; work on it is paid once, as holiday work.
| Area | What changes |
|---|---|
| Attendance | The roster shows Public holiday (or Holiday duty), the day is not expected, and a punch on it is Worked on holiday. A notice says "Today is a holiday: name" with the scope and counts. The monthly sheet marks the column. |
| Attendance review | No absence, late or early-leave items on a holiday without duty. Work on it creates one Overtime (holiday) item. If overtime detection is off, it still becomes a review item that is never auto-approved. |
| Leave | A leave type that does not count holidays does not deduct them; the request lists them as "public holiday" among the days not charged. |
| Dashboard | "Today is a holiday: name", and the attendance rate shows — when everyone is off. |
| Payroll | Approved holiday overtime is paid with the Overtime rate (holidays); withdrawn decisions are removed from drafts or reversed in the next open run. |
| Bulk entry | Rows for people on holiday start as Official holiday. |
Statuses
| Status | Meaning |
|---|---|
| Active | Applied everywhere. |
| Inactive | Kept for history, never applied. |
Worked example 1: setting up the UAE calendar
Al Noor Trading LLC sets up its 2026 calendar in January:
| Date | Name | Applies to | Recurring |
|---|---|---|---|
| 2026-01-01 | New Year's Day | Whole organization | Yes |
| 2026-03-20 | Eid Al Fitr — Day 1 | Whole organization | No |
| 2026-03-21 | Eid Al Fitr — Day 2 | Whole organization | No |
| 2026-05-26 | Arafat Day | Whole organization | No |
| 2026-12-02 | UAE National Day | Whole organization | Yes |
| 2026-12-03 | UAE National Day — Day 2 | Whole organization | No |
- HR opens Holidays, clicks Add Holiday, enters Name "UAE National Day", Date 2026-12-02, ticks Recurring, leaves Active ticked and clicks Add. Nothing has been recorded for that date yet, so it saves straight away: "Holiday added."
- HR repeats for each row and then types 2026 in Year, clicks Show, and checks the month cards.
- On 2 December the attendance roster shows every employee as Public holiday. Nobody is flagged and no absence is created.
- In 2027, "UAE National Day" appears on 2027-12-02 without adding it again. "UAE National Day — Day 2" does not repeat because it was not marked Recurring.
Worked example 2: a department holiday, duty, and a change after the fact
- The Government Relations team of Al Noor has a day off on 2026-10-15 for a client-specific closure. HR adds "Client closure" with Applies to Selected departments and ticks Government Relations. The other departments work as usual.
- Two coordinators, Noor Al Mansoori and Hamad Al Ketbi, must cover the client hotline from 09:00 to 18:00. HR opens ⋯ → Holiday duty, adds both and clicks Save. The list shows "2 on duty". On the roster for 15 October their rows say Holiday duty with their shift 09:00–18:00; the rest of the team shows Public holiday.
- Noor (salary AED 9,000, so hourly pay 9,000 ÷ 30 ÷ 8 = AED 37.50) checks in at 09:10 (within the 15 minutes' grace, so not late) and leaves at 19:00. The day stays a holiday, so there is no late item, and all 9:50 she worked is holiday work: one Overtime (holiday) item of 9:50, AED 553.13 (9.83 h × 37.50 × the holiday rate 1.5 from Payroll Defaults), waiting for HR's decision.
- On 16 October the manager decides the day was a normal workday after all and clicks ⋯ → Deactivate. SolaHR shows "Effect on attendance and payroll": "3 attendance day(s) recalculated", "1 approved decision(s) withdrawn from payroll" and "Draft payroll recalculated: 2026-10". HR clicks Apply and withdraw approved decisions. The holiday is Inactive; the day returns to a workday; the overtime approved earlier is removed from the draft October payroll; the team members who did not punch get Shift ended, no check-in items to review.
Permissions and roles
| Role | Access |
|---|---|
| Owner, SolaHR Administrator | View, add, edit, activate, set duty and delete holidays. |
| Users with View the holiday calendar | See the list. |
| Users with Manage the holiday calendar, or Manage attendance | Also see Add Holiday, Edit and the row menu. |
| HR Operations Manager (older role) | View and manage. |
| HR Records Viewer (older role) | View only. |
Scoped roles from Team access do not manage the organization calendar. See Team access. Every change is recorded in the Audit Log (who, when, before and after, and the effect summary).
Tips and common problems
| Problem | Cause | Fix |
|---|---|---|
| Employees still show as absent or late on a holiday. | The holiday is Inactive, covers other departments, or the employee has holiday duty. | Check Status, Applies to and Holiday duty. |
| "There is already a holiday on this date." | One date, one holiday. | Edit or reactivate the existing one. |
| No Delete in the menu. | The holiday has been used. | Deactivate it. |
| Last year's Eid is missing this year. | Recurring repeats on the same calendar date; Eid moves every year. | Add Eid each year as a non-recurring holiday. |
| The change asks me to "Apply and withdraw approved decisions". | Approved attendance items depend on the old calendar. | Read the effect list; confirm only if the calendar change is right. |
| A leave request still shows the old day count. | Leave keeps its recorded count until recounted. | Use the leave day review (see Leave). |