5D4N Bali Itinerary: Canggu, Uluwatu, Ubud & Nusa Penida - Part 1
Bali had been sitting on our travel list for a while and after five days of hopping between cliffside beaches, lush rice fields, local warungs, and private villas, we finally get why people keep going back.
We explored Canggu, Uluwatu, Ubud, and even made a day trip to Nusa Penida, all packed into a 5D4N Bali itinerary that was just the right mix of chill, adventure, and good food. No crazy rush, no strict plans, just solid vibes, some unexpected moments, and a lot of “woi this place damn nice” reactions.
In this post I’ll share our full route, where we stayed, what to do and skip, how much we spent, and small tips that actually came in clutch, especially if it’s your first time.
Here’s a quick look at our 5D4N Bali trip, just to give some context before diving into the daily breakdown. We flew from KLIA and spent time in three main areas — Canggu, Uluwatu, and Ubud — with a one-day detour to Nusa Penida. Each spot had a completely different vibe, which kept things interesting.
Travel Dates: 10 June to 14 June
Flight: BatikAir from KLIA1 to Ngurah Rai International Airport (Denpasar)
Total Nights: 4
Group Size: 6 pax (couple trip)
Transport: Grab/Gojek and hired driver
Villas: 2 nights in Canggu area, 2 nights in Uluwatu
Main Highlights: Nusa Penida, Ubud ATV, local food hunting, sunset spots
We didn’t try to squeeze too many places in, and that made the trip feel more relaxed. Everything was planned to spend time outdoors, explore a few cool spots, and eat well without stressing too much over schedules.
Day 1: KL to Bali + Canggu Check-in
We flew to Bali on Batik Air, and our one-way ticket from KLIA cost RM439 (about USD93) without any check-in baggage. The flight was scheduled at 10.00am, but we arrived early around 7.30am to clear immigration and all that. If you're Malaysian, do yourself a favour and download the MyBorderPass app. It really helps speed things up at the autogate — no more long lines.
Once we landed at Denpasar Airport (Ngurah Rai International Airport), we took our time sorting out local SIMs and baggage, then met our private driver outside. We pre-booked a car because we thought it would be hard to get transport from the airport, but turns out, Grab and Gojek are literally everywhere, even right at the airport. Honestly, we could have just used Grab, since the ride to our villa in Canggu would’ve only cost about IDR 250,000 (around RM75 / USD16) for the whole car.
We stayed at this place called Laluna Villa in the Canggu area. It’s a private pool villa that can fit up to 6 pax — super chill vibes, comfy rooms, and a cozy layout that’s perfect if you’re going with friends. We booked through Airbnb and the total for 2 nights was only RM568 (USD120), which is honestly quite cheap when you split it. The place is really nice, but make sure to bring some mosquito repellent as there's quite a lot of mosquitoes tbh.
The only downside was the traffic. Even though it’s just 21 km from the airport, it took us nearly 2 hours to reach the villa. Bali traffic is on another level, especially near Canggu during peak hours.
Pro tip — If you’re travelling solo or as a couple with just a cabin-sized bag (20-inch), take a Gojek or GrabBike instead. It’s way faster and way cheaper, usually around IDR 50,000 (RM15 / USD3) per ride, and they’ll strap your bag in for you. Worth it if you want to skip the jam.
We reached Laluna Villa around 3.30pm, but then something unexpected happened — we realised we took the wrong luggage from the airport. Luckily, we managed to track down the actual owner, got in touch with them, and returned their bag.
After that, we had to head back to the airport to get our real luggage. That turned into another 4-hour journey, round trip. Not the best start, but at least it was sorted on Day 1 itself. If you’re flying with cabin-sized bags, seriously, double check those tags — all the bags kinda look the same on Batik Air.
Originally, we planned to go for dinner at Alma Tapas Bar and walk around the Canggu area. But after all that back-and-forth, we were too tired to head out.
So we just ordered babi guling from Gojek Food. We got the special edition set from a place called Men Lari Babi Guling, which cost us IDR 65,000 per portion (around RM19 / USD4). Not bad overall, but tbh, didn’t fully live up to the hype, maybe because we were already drained.
📍 Men Lari Babi Guling on Google Maps
That wrapped up our first day in Bali. Was supposed to be more chill, but it turned into a small adventure on its own. Next day we’re heading out early for Nusa Penida, so we just got some rest and called it a night.
Day 2: Nusa Penida Day Trip + Snorkelling + Canggu Night Walk
We didn’t prebook any ferry tickets to Nusa Penida because we were worried we’d miss the timing. But we did secure a snorkelling slot at 9.00am with a company called Dolphino Snorkelling, located right near Nusa Penida port. Since we had to be there early, we woke up at 5.30am, called a Gojek XL, and left around 6.00am heading to Sanur Port.
The driver was friendly, but traffic was insane — classic Bali. We arrived at 8.00am, hungry and slightly panicked from the crowd. Boat schedules to Nusa Penida start as early as 7.30am, and by 8am, the crowd was already piling up. We grabbed some bread for breakfast, and our Gojek driver actually helped us buy tickets.
Since it was quite last-minute, we went with Semabu Fast Boat and paid IDR 400,000 per person (~RM120 / USD25).
📍 Semabu Fast Boat
Heads up: the waves are quite strong, so if you’re prone to motion sickness, bring meds.
Before boarding, you’ll also need to pay an island fee of IDR 25,000 per person. The boat ride took about an hour, and once we arrived… bad news — our snorkelling boat had just left. Luckily, they agreed to slot us in the 2.00pm session, so we had time to explore the island a bit first.
Nusa Penida Land Tour
Right at the port, we found a driver offering a quick land tour. They’re everywhere, just walk up and ask. There’s no Grab or Gojek here, and everything is paid in cash, so bring enough. Public toilets also charge IDR 5,000, and it’s cash only too.
The package originally cost IDR 700,000 for 6 pax, but I managed to negotiate down to IDR 550,000 (~RM165 / USD35) for the car. The road conditions is crazily bumpy, so please don’t rent a bike here unless you really know what you're doing.
We visited 3 classic Nusa Penida spots:
- Kelingking Cliff
- Entrance: IDR 10,000 per car
- Super scenic spot, but crowded
- We didn’t hike down — the trail is steep and kinda dangerous
- Worth spending 30 minutes just to admire the view
- Angel’s Billabong & Broken Beach (same entrance)
- Also IDR 10,000 per car
- Just a short walk between both spots
- Angel’s Billabong was my personal favourite — the natural infinity pool vibe is surreal
- Broken Beach looks like something out of a fantasy movie
- Water here is overpriced (IDR 20,000 per bottle), but the driver brought us to a nearby minimart where we paid only IDR 5,000 — pro tip
- Just be careful — the bread we bought was expired by 3 weeks 😅 but we were starving and ate it anyway
Travel time estimate:
- 1.5h from port to Kelingking
- 45 min from Kelingking to Angel’s Billabong
- 45 min back to port
Snorkelling with Dolphino
After returning to the Dolphino, we changed clothes and joined the 2.00pm snorkelling trip. It cost just IDR 150,000 (~RM45 / USD10) per person, honestly a steal. The staff were really helpful and guided us even though I don’t know how to swim.
We visited 4 snorkelling spots:
- Manta Bay (no mantas that day, but the water was really deep and wavy)
- 2 coral reef spots with tons of colourful tropical fish
- The Wall – full of coral and marine life, super pretty, you can see nemo there.
They even took underwater photos of us at no extra charge, which we really appreciated. Whole session took about 2 hours and was very worth it.
Back to Canggu
By 5.00pm, we were on the boat back to Sanur, then caught a Gojek back to our villa in Canggu. After a quick shower and some rest, we finally made it to Alma Tapas Bar for dinner.
The food was surprisingly good and not too expensive. After that, we walked around the Canggu streets a bit. Finns Beach Club and Atlas Beach Club weren’t too far away, but we’re not the clubbing type of person, so we just strolled past, soaked in the vibe, and called it a night.
Total Expenses (Day 1 & 2)
Here we break down the cost for Day 1 & Day 2:
Item | Price (per person unless stated) | RM (est.) | USD (est.) | Notes |
---|---|---|---|---|
Batik Air flight (no baggage) | IDR 439,000 | RM439 | USD93 | KLIA to Denpasar |
Villa (Laluna, 2 nights / 6 pax) | RM568 ÷ 6 | RM94.67 | USD20 | Airbnb at Canggu |
Gojek/Grab to villa | IDR 250,000 ÷ 6 | RM17 | USD3.60 | Sanur to Canggu |
Babi Guling dinner | IDR 65,000 | RM19 | USD4 | Gojek Food from Men Lari |
Gojek to Sanur Port | Shared | RM18 | USD3.70 | From Canggu |
Semabu Fast Boat | IDR 400,000 | RM120 | USD25 | Sanur ↔ Nusa Penida |
Island entry fee | IDR 25,000 | RM7.50 | USD1.60 | Nusa Penida entrance |
Car tour at Nusa Penida (6 pax) | IDR 550,000 ÷ 6 | RM16.70 | USD3.50 | Visit 3 spots |
Toilet use (x2) | IDR 10,000 | RM3 | USD0.65 | Cash only |
Snorkelling (Dolphino) | IDR 150,000 | RM45 | USD9.30 | 4 snorkelling spots |
Dinner at Alma Tapas Bar | Shared | RM25 | USD5.20 | Canggu |
Misc. snacks / water | Est. | RM10 | USD2.10 | Incl. bread, drinks |
Estimated Total Per Person: ~RM814.87 / ~USD172.65
Itinerary Recap: Day 1–2
Day | Time | Activity |
---|---|---|
1 | 7.30am | Arrive at KLIA |
10.00am | Depart KLIA via Batik Air | |
1.00pm | Arrive at Denpasar, Bali | |
1.30pm | Booked private car to Laluna Villa, Canggu | |
3.30pm | Check-in, accidentally took wrong luggage | |
4.00pm–7.00pm | Returned luggage to airport | |
8.00pm | Dinner (Babi Guling via Gojek – Men Lari) | |
9.00pm | Rest at villa | |
2 | 5.30am | Wake up, Gojek to Sanur Port |
8.00am | Buy ticket from Semabu Fast Boat | |
9.00am | Arrive at Nusa Penida | |
9.30am–1.20pm | Land tour: Kelingking Cliff, Angel’s Billabong, Broken Beach | |
2.00pm–4.00pm | Snorkelling with Dolphino (4 spots) | |
5.00pm | Ferry back to Sanur | |
6.00pm | Gojek back to villa | |
8.00pm | Dinner at Alma Tapas Bar, Canggu | |
9.30pm | Walk around Canggu streets, rest |
Coming Up Next
Continue with us in Part 2 as we explore:
- Day 3: Uluwatu coastline, cliffs, and beach hopping
- Day 4: Ubud highlights + Beji ATV
- Day 5: Wrapping-up the trip
Stay tuned!