Public holiday pay is one of the areas where Malaysian scheduling content tends to stop at "11 holidays, pay 3x if they work." That's true as far as it goes, but the Employment Act 1955 has real compliance requirements around public holidays that most businesses never actually implement — a notice you're supposed to post before the year even starts, a rule about staff who go missing right before or after a holiday, and a substitution mechanism most owners have never heard of.
The 11 holidays, and the 5 you don't get to choose
Every employee is entitled to a paid holiday on 11 gazetted public holidays per calendar year (Section 60D(1)). Five of these are fixed by law, not employer choice:
- National Day
- The Yang di-Pertuan Agong's Birthday
- The Ruler's Birthday (or Federal Territory Day, if the employee mainly works in KL/Putrajaya/Labuan)
- Workers' Day
- Malaysia Day
The remaining 6 are genuinely up to the employer to choose from the officially gazetted public holidays for that year. Part-time staff get a different count entirely — 7 gazetted holidays, 4 of which are compulsory — under the separate Employment (Part-Time Employees) Regulations 2010.
The compliance step almost nobody actually does
Section 60D(1A) requires the employer to display a notice, before the calendar year starts, specifying which 6 of the remaining gazetted holidays staff are entitled to that year. This is genuinely similar in spirit to the rest-day roster requirement — a real, legally required piece of paper (or posted notice) that most small businesses simply never get around to producing.
The substitution rule most people have never heard of
If a public holiday happens to fall on someone's rest day, or on another public holiday, the very next working day automatically becomes a substitute paid holiday instead (Section 60D(1), proviso). The same substitution applies if a holiday falls while an employee is on sick leave, annual leave, or under workmen's compensation temporary disablement (Section 60D(1B)) — the employer has to grant a different day as the paid holiday instead of just letting it quietly disappear because the employee happened to be away.
Missing work around a holiday can cost the holiday pay entirely
Section 60D(2) is a genuinely sharp rule: if an employee is absent, without their employer's prior consent and without a reasonable excuse, on the working day immediately before or immediately after a public holiday (or a run of consecutive holidays), they lose entitlement to holiday pay for that holiday or holidays entirely. This is exactly the kind of provision a fair, transparent roster protects both sides on — it needs a clear, agreed schedule to even be enforceable in practice.
Working on the holiday itself
Section 60D(3) sets out the actual pay structure if someone works a public holiday they're entitled to:
- 2 days' wages at the ordinary rate, on top of the holiday pay they're already owed for that day — regardless of whether they worked a full shift or a partial one
- 3× hourly rate for any overtime hours worked beyond normal hours on that holiday (double the standard 1.5× overtime multiplier)
- Piece-rate employees: double the piece rate for the day's work, and 3× the piece rate for any excess beyond normal hours
- A travelling allowance if one is normally part of their agreement — but not an increased housing or food allowance for that day
One easy-to-miss detail: if the holiday falls on what would normally be a half working day, the ordinary rate payable is still calculated as a full working day's rate, not prorated down.
Monthly-rate staff: simpler than it looks
For employees on a monthly rate of pay, Section 60D(2A) makes this easy: they're deemed to have received their holiday pay simply by receiving their normal monthly wages without deduction for that month. No separate calculation needed unless they actually worked the holiday, in which case the extra 2 days' wages and any overtime premium above still apply on top.
The same RM4,000 threshold applies here too
Consistent with overtime and rest-day pay, the public holiday pay provisions in Section 60D(3) and (4) only apply by default to employees earning RM4,000 or less per month, per the Employment (Amendment of First Schedule) Order 2022 [P.U. (A) 262].
The practical takeaway
Three things worth actually checking against your own operation: whether you've ever posted the required notice specifying your 6 chosen holidays before the year started, whether your roster correctly substitutes a different day when a holiday lands on someone's rest day or leave, and whether you're tracking no-shows immediately around public holidays — since that's the one place a missed shift can legally cost an employee their holiday pay entirely, which is exactly the kind of thing worth getting right rather than guessing.