Verdict — go late March to May, sweet spot April–May. It is the only stretch where the Perhentians have reopened [3] and Borneo has dried out [20] while the Jun–Oct haze season hasn’t started [15] — the west coast pays only with tolerable inter-monsoon afternoon storms [1]. Runner-up: June–early July — peak island seas plus Kuching’s music festival [19], but rising haze risk [16].
The crux: Malaysia has no single dry season
Two monsoons split the country, so the three legs of this trip never share a “best” month. MetMalaysia’s official split: the Northeast Monsoon (Nov–Mar) dumps heavy rain on the east coast peninsula, west Sarawak (Kuching), and east Sabah (Sandakan), while the Southwest Monsoon (late May–Sep) is drier nationwide; the gaps are inter-monsoon transitions (Apr–May, Oct–Nov) with light winds and afternoon thunderstorms [1]. The upshot: when one coast is washed out the other is fine [21] [6] — but a trip hitting both coasts plus Borneo has to thread the overlap.
The hard constraint is the islands. The Perhentians effectively shut Nov–Feb: ferries and most resorts stop, reopening around March [3] [4] [5]. That single fact removes the entire Nov–Feb half of the year — exactly the half when the west coast is at its dry-season best [20]. So the optimal window can never be the west coast’s own optimum; it must be the shoulder where the east is open and Borneo is dry.
Monsoon by region
| Region (this trip) | Wettest / avoid | Best window | Note |
|---|---|---|---|
| West Coast — KL, Malacca, Penang, Langkawi | Apr–May & Sep–Oct inter-monsoon storms | Dec–Mar (driest) [20] | Mild pattern; Penang/Langkawi take Sep–Oct rain hardest [1] |
| East-coast islands — Perhentians | Nov–Feb (closed) [4] | May–Sep, peak Jun–Aug [3] | Mar–Apr = variable shoulder, diving viable [3] |
| East Sabah — Sandakan, Kinabatangan | Nov–Jan, Dec ~301mm, often flooded [7] [8] | May–Sep, wildlife peak May–Aug [8] [9] | Wet-but-open in shoulder months |
| Sarawak — Kuching | Nov–Feb, Jan ~670mm [10] [11] | Mar–Sep (drier) [12] | Wettest of the three Borneo bases |
Borneo overall: Sabah’s wet season runs ~Oct–Mar; the relatively dry May–Sep is best for parks, treks, and orangutan/proboscis spotting [9] [20].
Year-round constants
- Heat & humidity. Lowlands sit at ~23–33°C with humidity 80%+ all year; only the highlands (Cameron) and Kinabatangan nights cool off [2]. Plan around brief, heavy afternoon/equatorial thunderstorms in any month — they clear fast [1] [2]. Even the “dry” Southwest Monsoon still drops ~100–150mm/month on the peninsula [1].
- Haze (Jun–Oct). Indonesian peat/forest fires send transboundary smoke across Malaysia and Borneo in the dry season, worst in strong El Niño years (1997, 2015, 2019, 2023) [15]. 2026 is flagged as the worst risk since 2015: El Niño ~80% likely by July plus a positive Indian Ocean Dipole in Jul–Aug, with haze peaking Aug–Sep and echoing 1997 [16]. Early-2026 signals already showed: a large Pengerang (Johor) peat fire in late January [18] and a regional haze alarm by late March [17]. This is the strongest argument for finishing before August.
Festivals — 2026 dates
- Ramadan / Hari Raya Aidilfitri (movable): Ramadan begins ~20 Feb; Hari Raya ~20–22 Mar 2026, with a 4-day long weekend and a nationwide balik kampung travel surge — packed transport and some closures around those dates [14]. A trip starting early April lands just after the Raya rush — cleaner than mid-March.
- Chinese New Year 17–18 Feb 2026, Thaipusam 2 Feb (Penang’s Batu Caves-style processions), Deepavali 8 Nov [13]. All three fall in the monsoon/haze months anyway — seek them only on a different trip.
- Rainforest World Music Festival — 26–28 June 2026, Sarawak Cultural Village, Kuching [19]. The one festival that aligns with good Borneo weather; it’s the reason to stretch the window into late June.
Decision
Best: late March–May (core April–May). Compromises: Perhentian seas aren’t yet flat-calm in early April (shoulder), the west coast gets inter-monsoon afternoon storms, and Borneo wildlife is just ramping toward its May–Aug peak. In exchange you dodge both island closures and the haze. Aim post-Hari Raya (after ~22 Mar) to skip the travel crush [14].
Runner-up: June–early July. Peak Perhentian conditions [3], Borneo wildlife at its best [8], and RWMF [19]. Compromises: the 2026 haze risk is building by then [16], plus peak-season island crowds and prices [3].
Routing note for the itinerary leg: within the window any order works, but if dates slip toward June, front-load Borneo (Sabah → Sarawak) before haze builds and save the Perhentians for their June calm [16] [3]. Avoid outright: Nov–Feb (islands shut, Kuching and Sandakan at their wettest) [4] [10] [22], and Aug–Sep (haze peak in an El Niño year) [16].