Malaysia

Grand tour: the peninsula and Sabah · 15 days

15 days, 14 nights: Kuala Lumpur (3N), Cameron Highlands (2N), Penang (3N), Kota Kinabalu (2N), Kinabalu Park & Kundasang (2N), Sandakan & Sepilok (2N) + Genting Highlands day trip. Best time to go: Best Mar and Jun–Aug, when both the west coast and Borneo are fairly dry.

Day 1: Arrive in Kuala Lumpur

Kuala Lumpur

Local tip: Stalls get going after 6pm; check prices on seafood before ordering.

Open day 1 route in Google Maps

Day 2: Explore Kuala Lumpur

Kuala Lumpur

Local tip: Timed tickets sell out on weekends; book online a few days ahead. Closed on Mondays.

Open day 2 route in Google Maps

Day 3: Genting Highlands day trip (cable car, Chin Swee temple and the hilltop)

Kuala Lumpur

Local tip: About 1h by road from KL; many tours stop at Batu Caves on the way. Carry a light jacket — the hilltop is around 18–23°C.

Open day 3 route in Google Maps

Day 4: Kuala Lumpur → Cameron Highlands

Cameron Highlands · Kuala Lumpur to Cameron Highlands, Bus ~4h on a winding mountain road

Local tip: Entry is free; the factory tour runs on weekdays. Closed on Mondays.

Open day 4 route in Google Maps

Day 5: Explore Cameron Highlands

Cameron Highlands

Local tip: Mornings are clearest; the boardwalk sometimes closes for repairs, so check the tour route.

Open day 5 route in Google Maps

Day 6: Cameron Highlands → Penang

Penang · Cameron Highlands to Penang, Minivan ~4–5h

Local tip: Start at Armenian Street before 9am to beat the heat and the crowds at the best-known murals.

Open day 6 route in Google Maps

Day 7: Explore Penang

Penang

Local tip: Queues are long on weekends; the fast-lane ticket costs more. The Habitat is ticketed separately.

Open day 7 route in Google Maps

Day 8: Explore Penang

Penang

Local tip: Many stalls close one day a week; order by the stall number and pay on delivery.

Open day 8 route in Google Maps

Day 9: Penang → Kota Kinabalu

Kota Kinabalu · Penang to Kota Kinabalu, Direct flight ~2h45m

Local tip: Robes are provided; closed to visitors at prayer times.

Open day 9 route in Google Maps

Day 10: Explore Kota Kinabalu

Kota Kinabalu

Local tip: Boats leave from Jesselton Point; the park conservation fee is extra and paid at the counter.

Open day 10 route in Google Maps

Day 11: Kota Kinabalu → Kinabalu Park & Kundasang

Kinabalu Park & Kundasang · Kota Kinabalu to Kinabalu Park & Kundasang, Shared minivan or car ~2h

Local tip: Mornings are clearest for views of the mountain; afternoon cloud and showers are common.

Open day 11 route in Google Maps

Day 12: Explore Kinabalu Park & Kundasang

Kinabalu Park & Kundasang

Local tip: About 45 minutes from Kundasang; ask locally whether a Rafflesia is blooming nearby.

Open day 12 route in Google Maps

Day 13: Kinabalu Park & Kundasang → Sandakan & Sepilok

Sandakan & Sepilok · Kinabalu Park & Kundasang to Sandakan & Sepilok, Bus or car ~4–5h

Local tip: Feeding times are around 10am and 3pm; keep bags zipped and no insect repellent near the platform. Closed for a break around midday.

Open day 13 route in Google Maps

Day 14: Explore Sandakan & Sepilok

Sandakan & Sepilok

Local tip: Opposite the orangutan centre; pair the two on one visit.

Open day 14 route in Google Maps

Day 15: Depart from Sandakan & Sepilok

Sandakan & Sepilok

Keep a buffer before your flight; check-out is usually noon.

Open day 15 route in Google Maps

Where to stay