If you have ever booked a flight for a school holiday and found the fare doubles the day before you leave, this is usually why. Malaysia runs two school calendars, they are offset by one day, and the offset moves in both directions depending on which end of the break you are looking at.
Everything below comes from one document: the Ministry of Education's Kalendar Akademik Tahun 2026, published on moe.gov.my under Takwim and Kalendar Akademik, read on 28 August 2026. The group definitions are in Lampiran A and B, and the festive holidays are in Lampiran C.
The two groups, and the state that switched
Group A: Kedah, Kelantan and Terengganu.
Group B: Johor, Melaka, Negeri Sembilan, Pahang, Perak, Perlis, Pulau Pinang, Sabah, Sarawak, Selangor, Wilayah Persekutuan Kuala Lumpur, Wilayah Persekutuan Labuan and Wilayah Persekutuan Putrajaya.
The split exists because Group A states run a Friday-Saturday weekend while Group B runs Saturday-Sunday, so the school week itself starts and ends on different days.
That list used to have a fourth state in it. The Kalendar Akademik Tahun 2024/2025 lists Group A as Johor, Kedah, Kelantan dan Terengganu. By the 2025/2026 amended calendar, Johor has moved into Group B, where it remains for 2026. The reason is not academic: Johor reverted from a Friday-Saturday weekend to Saturday-Sunday with effect from 1 January 2025, which left Kedah, Kelantan and Terengganu as the only Friday-Saturday states.
One structural change is worth noting too. The 2026 document is titled Kalendar Akademik Tahun 2026, a single calendar year, where 2023/2024, 2024/2025 and 2025/2026 all straddled two.
How the 2026 year is actually built
Both groups run the same skeleton, and the ministry publishes a day count for every segment of it.
Group A opened the year on Sunday 11 January 2026. Group B opened on Monday 12 January. That is the same one-day offset, arriving from the same place: Sunday is an ordinary school day in a Friday-Saturday state.
Penggal 1 runs to 19 March for Group A and 20 March for Group B, which the ministry counts as 10 weeks and 44 school days for Group A, 43 for Group B. After Cuti Penggal 1 the term resumes and runs to 21 or 22 May, another 8 weeks, worth 40 days for Group A and 39 for Group B. Penggal 2 opens after the mid-year break and runs to 27 or 28 August: 12 weeks and 58 school days for both groups. The September-to-December stretch is 13 weeks.
Add the four segments up and Group A children sit 204 school days in 2026 against Group B's 202. The entire two-day difference is in the first half of the year; from June onwards the two groups clock identical totals.
Every remaining 2026 break, by group
The academic year is built as two terms, each split in the middle by a short break, with a long break between the terms and another at the end of the year.
Cuti Penggal 2, the mid-term break in Term 2. Group A: 28 August to 5 September 2026, nine days. Group B: 29 August to 6 September 2026, nine days.
Back to school. Group A returns 6 September. Group B returns 7 September.
The final stretch. Group A runs to 3 December, Group B to 4 December. Both groups clock 62 school days in this stretch, the longest single run of the year.
Cuti Akhir Persekolahan, the year-end break. Group A: 4 to 31 December 2026, 28 days. Group B: 5 to 31 December 2026, 27 days.
For reference, the earlier 2026 breaks were: Cuti Penggal 1, Group A 20 to 28 March and Group B 21 to 29 March, nine days each; and Cuti Pertengahan Tahun, Group A 22 May to 6 June and Group B 23 May to 7 June, 16 days each.
The two festivals that already moved the dates
Lampiran C does more than note which festivals land inside a break. For three of them the ministry allocates additional holidays, and this is where the group split does its real work.
Chinese New Year, 17 and 18 February 2026, a Tuesday and a Wednesday. The ministry granted three extra days to each group, and not the same three. Group A received Sunday 15, Monday 16 and Thursday 19 February. Group B received Monday 16, Thursday 19 and Friday 20 February.
The asymmetry is deliberate. Group A's weekend is Friday and Saturday, so its run opened with the weekend of 13 and 14 February and closed on Saturday 21 February: nine continuous days. Group B's weekend is Saturday and Sunday, so its run went from 14 to 22 February: also nine continuous days. Different dates, identical length. That is the clearest illustration in the whole document of what the grouping is for.
Hari Raya Aidilfitri, 21 and 22 March 2026, a Saturday and a Sunday. This one fell inside Cuti Penggal 1, and the ministry still added days in front of it: Thursday 19 March for Group A, and Thursday 19 and Friday 20 March for Group B.
That matters more than it looks. It means the March break was not the nine days the holiday row advertises. With the allocated days attached, Group A was away from 19 to 28 March, ten days, and Group B from 19 to 29 March, eleven days. Anyone reading only the Cuti Penggal 1 line under-counted by one or two days.
The November catch that nobody flags
Deepavali falls on Sunday 8 November 2026, and is not a holiday in Sarawak.
Because Group A's weekend is Friday and Saturday, a Sunday festival lands on an ordinary school day in Kedah, Kelantan and Terengganu. In Group B states, it lands on the weekend. So the ministry's Lampiran C allocates the additional holiday differently:
- Group A: Monday 9 November 2026.
- Group B, all states except Sarawak: Tuesday 10 November 2026.
- Sarawak alone: Monday 9 November 2026, listed as one day of KPM allocation.
That is the only festive adjustment left in the 2026 calendar. The Chinese New Year and Aidilfitri allocations above have both already been taken.
Separately, the ministry's CATATAN block names four festivals that fall inside a break and so need no adjustment at all: Hari Raya Aidilfitri on 21 and 22 March, inside Cuti Penggal 1; Pesta Kaamatan on 30 and 31 May, for Sabah and WP Labuan only, inside the mid-year break; Hari Gawai Dayak on 1 and 2 June, Sarawak only, also inside the mid-year break; and Christmas on 25 December, inside the year-end break. Aidilfitri is the one name that appears in both halves of Lampiran C, which is exactly why its extra days — one for Group A, two for Group B — are so easy to miss.
What this means if you are booking anything
The one-day offset works in your favour at one end and against you at the other. Group B families gain a travel day on 28 August, when Group A schools have already closed and Group B has not. At the December end it reverses: Group A closes on 4 December, a day before Group B.
Peak pressure is nine days, not two weeks. The August-September break is short, and both groups are inside it from 29 August to 5 September. That eight-day overlap is the crowded window for domestic flights, highland stays and theme parks.
December is the long one, and it is nearly a month. Twenty-eight days for Group A and 27 for Group B, with Christmas inside it.
Check the 2027 calendar before you commit to anything in January. As of 28 August 2026, the ministry's Kalendar Akademik page lists only the 2026, 2025/2026 (amended), 2024/2025 and 2023/2024 calendars, and there is no 2027 file behind that page. The exam calendar on the same portal is also still labelled Takwim Peperiksaan 2025. Until the 2027 document is published, any January 2027 start date you see quoted is somebody's forecast rather than a ministry date.
Individual schools can add their own days. The ministry's calendar sets the national framework, and schools may still declare replacement or unscheduled holidays. Your child's own takwim is the final word on term dates.
Count the allocated days, not just the holiday rows. February and March both prove the point: the advertised break was shorter than the run of days children were actually away. When the 2027 calendar lands, read Lampiran C before you price anything.
Related reads
- Malaysia Public Holidays Left in 2026
- Best Hotels and Resorts in Cameron Highlands 2026
- Best Zoos, Aquariums and Nature Parks for Kids in KL and Selangor 2026
*Cover image: CEphoto, Uwe Aranas, CC BY-SA 3.0, via Wikimedia Commons.*



