{"id":1178,"date":"2026-03-30T04:40:00","date_gmt":"2026-03-29T21:40:00","guid":{"rendered":"https:\/\/satusatu.com\/inspiration\/?p=1178"},"modified":"2026-03-30T09:13:10","modified_gmt":"2026-03-30T02:13:10","slug":"4-day-ubud-itinerary","status":"publish","type":"post","link":"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/","title":{"rendered":"4 Day Ubud Itinerary, Let&#8217;s Go Explore It!"},"content":{"rendered":"<p id=\"p-rc_c60f0a5319ae6fb9-39\" data-path-to-node=\"0\"><span class=\"citation-98 citation-end-98\">Ubud is the emerald heart of Bali, a sanctuary where ancient traditions, mist-covered jungles, and a world-class culinary scene collide.<\/span> While many travelers rush through on a day trip, the true magic of this highland town reveals itself slowly. <span class=\"citation-97\">By committing to a <\/span><b data-path-to-node=\"0\" data-index-in-node=\"265\"><span class=\"citation-97\">4 day Ubud itinerary<\/span><\/b><span class=\"citation-97 citation-end-97\">, you allow yourself to move past the surface-level tourist traps and into the spiritual rhythm that has made this region famous for centuries.<\/span><\/p>\n<p id=\"p-rc_c60f0a5319ae6fb9-40\" data-path-to-node=\"1\"><span class=\"citation-96 citation-end-96\">This year, Ubud remains a global hub for wellness and sustainable travel, balancing its deep-rooted heritage with modern, eco-conscious innovations.<\/span> Whether you are chasing sunrise views over volcanic craters or seeking silence in a hidden water temple, this guide ensures your 96 hours in the jungle are unforgettable.<\/p>\n<p data-path-to-node=\"1\">    <!-- Styles -->\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Overpass:ital,wght@0,100..900;1,100..900&display=swap\" rel=\"stylesheet\">\n    <style>\n        \/* ========================= *\/\n          \/* BASE STYLES *\/\n          \/* ========================= *\/\n          .produk-container {\n              display: flex;\n              flex-direction: column;\n              gap: 12px;\n          }\n\n          .produk-card {\n            cursor: pointer;\n            display: flex;\n            margin: 0;\n            border: 1px solid #eee;\n            border-radius: 12px;\n            overflow: hidden;\n            font-family: Overpass, sans-serif;\n            background: #ffffff;\n          }\n\n          .produk-image {\n            position: relative;\n            flex-shrink: 0;\n          }\n\n          .produk-image img {\n            width: 100%;\n            height: 100%;\n            object-fit: cover;\n          }\n\n          .produk-location {\n            position: absolute;\n            left: 8px;\n            bottom: 8px;\n            background: #fff;\n            border-radius: 12px;\n            border: 1px solid #dadbe0;\n            padding: 4px 6px;\n            font-size: 10px;\n            line-height: 14px;\n          }\n\n          .produk-content {\n            flex: 1;\n            display: flex;\n            flex-direction: column;\n            gap: 12px;\n          }\n\n          .produk-title {\n            font-weight: 700;\n          }\n\n          .produk-rating {\n            font-size: 16px;\n            color: #333;\n            display: flex;\n            align-items: flex-start;\n            gap: 4px;\n          }\n\n          .produk-rating-line {\n            display: flex;\n            align-items: flex-start;\n            gap: 4px;\n          }\n\n          .produk-price-main {\n            color: #cb1c4f;\n            font-weight: 800;\n            font-size: 16px;\n          }\n\n          .produk-price-strike {\n            text-decoration: line-through;\n            font-size: 14px;\n            opacity: 0.7;\n            margin-right: 8px;\n          }\n\n          .produk-discount {\n            background: #cb1c4f;\n            color: #fff;\n            padding: 2px 6px;\n            border-radius: 4px;\n            font-size: 14px;\n          }\n\n          .produk-btn {\n            background: #cb1c4f;\n            color: #ffffff;\n            padding: 10px 16px;\n            border-radius: 8px;\n            text-decoration: none;\n            font-weight: 600;\n            margin-top: 8px;\n          }\n\n          .produk-btn:hover {\n            text-decoration: none;\n            color: #ffffff;\n          }\n\n          .product-info-wrap {\n            display: flex;\n            flex-wrap: nowrap;\n            justify-content: space-between;\n          }\n\n          \/* ========================= *\/\n          \/* DESKTOP (>= 800px) *\/\n          \/* ========================= *\/\n\n          @media (min-width: 800px) {\n            .produk-image {\n              width: 200px;\n            }\n\n            .produk-content {\n              padding: 20px;\n            }\n\n            .product-info-wrap {\n              flex-direction: row;\n              align-items: center;\n            }\n\n            .produk-btn {\n              display: inline-block;\n            }\n          }\n\n          \/* ========================= *\/\n          \/* TABLET (<= 768px) *\/\n          \/* ========================= *\/\n\n          @media (max-width: 768px) {\n            .produk-card {\n              flex-direction: column;\n            }\n\n            .produk-image {\n              width: 200px;\n              height: 220px;\n            }\n\n            .produk-content {\n              padding: 12px;\n            }\n\n            .produk-title {\n              font-size: 18px;\n            }\n\n            .produk-rating {\n              font-size: 14px;\n            }\n\n            .product-info-wrap {\n              flex-direction: column;\n              align-items: flex-start;\n              gap: 12px;\n            }\n\n            .produk-btn {\n              display: none;\n            }\n          }\n\n          \/* ========================= *\/\n          \/* MOBILE (<= 480px) *\/\n          \/* ========================= *\/\n\n          @media (max-width: 480px) {\n            .produk-image {\n              width: 100%;\n            }\n\n            .produk-content {\n              padding: 12px;\n            }\n\n            .produk-title {\n              font-size: 16px;\n              overflow: hidden;\n              text-overflow: ellipsis;\n            }\n\n            .produk-price-main {\n              font-size: 15px;\n            }\n\n            .produk-discount {\n              font-size: 12px;\n            }\n\n            .produk-btn {\n              display: none;\n            }\n          }\n\n          \/* ======================================= *\/\n          \/* CAROUSEL MODE (inside .carousel-list)  *\/\n          \/* ======================================= *\/\n\n          .carousel-wrapper {\n            position: relative;\n          }\n\n          .carousel-list {\n            overflow-x: auto;\n            overflow-y: hidden;\n            -webkit-overflow-scrolling: touch;\n            scroll-behavior: smooth;\n            scroll-snap-type: x mandatory;\n            scrollbar-width: none;\n          }\n\n          .carousel-list::-webkit-scrollbar {\n            display: none;\n          }\n\n          .carousel-list .produk-container {\n            display: flex;\n            flex-direction: row;\n            flex-wrap: nowrap;\n            width: max-content;\n            gap: 12px;\n          }\n\n          .carousel-list .produk-card {\n            flex: 0 0 auto;\n            width: 220px;\n            flex-direction: column;\n            scroll-snap-align: start;\n          }\n\n          .carousel-list .produk-image {\n            width: 100%;\n            height: 220px;\n          }\n\n          .carousel-list .produk-content {\n            padding: 12px;\n          }\n\n          .carousel-list .produk-title {\n\t\t\t  font-size: 16px;\n\t\t\t  overflow: hidden;\n\t\t\t  text-overflow: ellipsis;\n\t\t\t  display: -webkit-box;\n\t\t\t  -webkit-line-clamp: 2;\n\t\t\t  -webkit-box-orient: vertical;\n\t\t\t  line-clamp: 2;\n\t\t\t}\n\n          .carousel-list .produk-rating {\n            font-size: 14px;\n          }\n\n          .carousel-list .produk-price-main {\n            font-size: 15px;\n          }\n\n          .carousel-list .produk-discount {\n            font-size: 12px;\n          }\n\n          .carousel-list .product-info-wrap {\n            flex-direction: column;\n            align-items: flex-start;\n            gap: 12px;\n          }\n\n          .carousel-list .produk-btn {\n            display: none;\n          }\n\n          \/* ========================= *\/\n          \/* CAROUSEL ARROWS *\/\n          \/* ========================= *\/\n\n          .carousel-arrow {\n            position: absolute;\n            top: 50%;\n            transform: translateY(-50%);\n            width: 36px;\n            height: 36px;\n            border-radius: 50%;\n            background: #ffffff;\n            border: 1px solid #dadbe0;\n            box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            z-index: 10;\n            transition: opacity 0.2s, box-shadow 0.2s;\n            padding: 0;\n          }\n\n          .carousel-arrow:hover {\n\t\t\tbackground: #FFFFFF;\n            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n          }\n\n          .carousel-arrow.is-hidden {\n            opacity: 0;\n            pointer-events: none;\n          }\n\n          .carousel-arrow-left {\n            left: -18px;\n          }\n\n          .carousel-arrow-right {\n            right: -18px;\n          }\n\n          @media (max-width: 480px) {\n\t\t\t.carousel-arrow{\n\t\t\t\tdisplay: none;\n\t\t\t}\n            .carousel-arrow-left {\n              left: 4px;\n            }\n\n            .carousel-arrow-right {\n              right: 4px;\n            }\n          }\n    <\/style>\n\n    <!-- HTML -->\n    <div class=\"carousel-wrapper\" data-carousel-id=\"carousel-69d000b7375c5\" data-is-carousel=\"1\">\n                    <button type=\"button\" class=\"carousel-arrow carousel-arrow-left is-hidden\" aria-label=\"Scroll left\">\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"25\" height=\"25\" fill=\"#000000\" viewBox=\"0 0 256 256\"><path d=\"M216,88v80a8,8,0,0,1-8,8H120v48L24,128l96-96V80h88A8,8,0,0,1,216,88Z\" opacity=\"0.2\"><\/path><path d=\"M208,72H128V32a8,8,0,0,0-13.66-5.66l-96,96a8,8,0,0,0,0,11.32l96,96A8,8,0,0,0,128,224V184h80a16,16,0,0,0,16-16V88A16,16,0,0,0,208,72Zm0,96H120a8,8,0,0,0-8,8v28.69L35.31,128,112,51.31V80a8,8,0,0,0,8,8h88Z\"><\/path><\/svg>\n            <\/button>\n            <button type=\"button\" class=\"carousel-arrow carousel-arrow-right is-hidden\" aria-label=\"Scroll right\">\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"25\" height=\"25\" fill=\"#000000\" viewBox=\"0 0 256 256\"><path d=\"M136,224V176H48a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8h88V32l96,96Z\" opacity=\"0.2\"><\/path><path d=\"M237.66,122.34l-96-96A8,8,0,0,0,128,32V72H48A16,16,0,0,0,32,88v80a16,16,0,0,0,16,16h80v40a8,8,0,0,0,13.66,5.66l96-96A8,8,0,0,0,237.66,122.34ZM144,204.69V176a8,8,0,0,0-8-8H48V88h88a8,8,0,0,0,8-8V51.31L220.69,128Z\"><\/path><\/svg>\n            <\/button>\n                <div class=\"carousel-list\">\n            <div class=\"produk-container\" data-slugs=\"kuber-bali-atv-adventure,icon-atv-bali-adventure,bali-diving-school-scuba-diving-courses,batara-watersport-bali-tanjung-benoa-water-adventures,timbis-beach-paragliding-experience-bali,sunrise-volcano-jeep-experience-mount-batur,mount-batur-jeep-sunset-experience,4wd-jeep-mount-batur-sunrise-experience-by-bali-volcano-jeep\"><\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Script -->\n    <script>\n    (function() {\n\t\tfunction buildCatalogUrl(slug) {\n\t\t\t\/\/ UTM params hardcoded by the shortcode (these always win)\n\t\t\tconst hardcoded = {\n\t\t\t\tutm_source: \"blog\",\n\t\t\t\tutm_medium: \"in_line_product_cta\",\n\t\t\t};\n\n\t\t\t\/\/ UTM params from the current page URL (only used if hardcoded doesn't define them)\n\t\t\tconst pageParams = new URLSearchParams(window.location.search);\n\t\t\tconst utmKeys = [\"utm_source\", \"utm_medium\", \"utm_campaign\", \"utm_content\", \"utm_term\"];\n\t\t\tconst merged = new URLSearchParams();\n\n\t\t\tutmKeys.forEach(key => {\n\t\t\t\tif (hardcoded[key] !== undefined) {\n\t\t\t\t\t\/\/ Hardcoded value takes priority\n\t\t\t\t\tmerged.set(key, hardcoded[key]);\n\t\t\t\t} else if (pageParams.has(key)) {\n\t\t\t\t\t\/\/ Fall back to whatever the page URL has\n\t\t\t\t\tmerged.set(key, pageParams.get(key));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn \"https:\/\/satusatu.com\/en-ID\/catalog\/\" + slug + \"?\" + merged.toString();\n\t\t}\n\t\t\n        function renderCatalogItem(p) {\n            const location = p.location?.name || \"\";\n            const rating = p.rating?.average_rating ?? null;\n            const ratingCount = p.rating?.count_rating_display || \"\";\n            const soldDisplay = p.rating?.total_sold_display || \"\";\n            const currency = p.pricing?.currency_symbol || \"Rp\";\n            const price = p.pricing?.min_price || 0;\n            const originalPrice = p.pricing?.min_original_price || 0;\n            const discount = p.pricing?.discount || 0;\n\t\t\tconst catalogUrl = buildCatalogUrl(p.slug);\n\n            return `\n                <div class=\"produk-card\" data-url=\"${catalogUrl}\">\n                    <div class=\"produk-image\">\n                        <img decoding=\"async\" src=\"${p.image_url}\" alt=\"${p.title}\" \/>\n                        <div class=\"produk-location\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" fill=\"#000000\" viewBox=\"0 0 256 256\"><path d=\"M128,24a80,80,0,0,0-80,80c0,72,80,128,80,128s80-56,80-128A80,80,0,0,0,128,24Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,128,136Z\" opacity=\"0.2\"><\/path><path d=\"M128,64a40,40,0,1,0,40,40A40,40,0,0,0,128,64Zm0,64a24,24,0,1,1,24-24A24,24,0,0,1,128,128Zm0-112a88.1,88.1,0,0,0-88,88c0,31.4,14.51,64.68,42,96.25a254.19,254.19,0,0,0,41.45,38.3,8,8,0,0,0,9.18,0A254.19,254.19,0,0,0,174,200.25c27.45-31.57,42-64.85,42-96.25A88.1,88.1,0,0,0,128,16Zm0,206c-16.53-13-72-60.75-72-118a72,72,0,0,1,144,0C200,161.23,144.53,209,128,222Z\"><\/path><\/svg>\n                            <span>${location}<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"produk-content\">\n                        <div class=\"produk-title\">${p.title}<\/div>\n                        ${rating ? `\n                        <div class=\"produk-rating\">\n                            <div class=\"produk-rating-line\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"18\" height=\"18\" fill=\"#F87500\" viewBox=\"0 0 256 256\"><path d=\"M229.06,108.79l-48.7,42,14.88,62.79a8.4,8.4,0,0,1-12.52,9.17L128,189.09,73.28,222.74a8.4,8.4,0,0,1-12.52-9.17l14.88-62.79-48.7-42A8.46,8.46,0,0,1,31.73,94L95.64,88.8l24.62-59.6a8.36,8.36,0,0,1,15.48,0l24.62,59.6L224.27,94A8.46,8.46,0,0,1,229.06,108.79Z\" opacity=\"0.2\"><\/path><path d=\"M239.18,97.26A16.38,16.38,0,0,0,224.92,86l-59-4.76L143.14,26.15a16.36,16.36,0,0,0-30.27,0L90.11,81.23,31.08,86a16.46,16.46,0,0,0-9.37,28.86l45,38.83L53,211.75a16.38,16.38,0,0,0,24.5,17.82L128,198.49l50.53,31.08A16.4,16.4,0,0,0,203,211.75l-13.76-58.07,45-38.83A16.43,16.43,0,0,0,239.18,97.26Zm-15.34,5.47-48.7,42a8,8,0,0,0-2.56,7.91l14.88,62.8a.37.37,0,0,1-.17.48c-.18.14-.23.11-.38,0l-54.72-33.65a8,8,0,0,0-8.38,0L69.09,215.94c-.15.09-.19.12-.38,0a.37.37,0,0,1-.17-.48l14.88-62.8a8,8,0,0,0-2.56-7.91l-48.7-42c-.12-.1-.23-.19-.13-.5s.18-.27.33-.29l63.92-5.16A8,8,0,0,0,103,91.86l24.62-59.61c.08-.17.11-.25.35-.25s.27.08.35.25L153,91.86a8,8,0,0,0,6.75,4.92l63.92,5.16c.15,0,.24,0,.33.29S224,102.63,223.84,102.73Z\"><\/path><\/svg>\n                                <span>${rating} (${ratingCount}) &bull; ${soldDisplay} sold<\/span>\n                            <\/div>\n                        <\/div>` : ''}\n                        <div class=\"product-info-wrap\">\n                            <div>\n                                <div style=\"display:flex;gap:6px;\">\n                                    <div style=\"font-size:14px;\">From<\/div>\n                                    <div class=\"produk-price-main\">${currency} ${price.toLocaleString()}<\/div>\n                                <\/div>\n                                ${discount > 0 ? `\n                                <div>\n                                    <span class=\"produk-price-strike\">${currency} ${originalPrice.toLocaleString()}<\/span>\n                                    <span class=\"produk-discount\">-${discount}%<\/span>\n                                <\/div>` : ''}\n                            <\/div>\n                            <div>\n                                <a target=\"_blank\" href=\"${catalogUrl}\" class=\"produk-btn\">Check Availability<\/a>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function initSatuSatuCatalog(wrapperEl) {\n            const scrollEl = wrapperEl.querySelector(\".carousel-list\");\n            const container = wrapperEl.querySelector(\".produk-container\");\n            const slugs = container.getAttribute(\"data-slugs\");\n            const isCarousel = wrapperEl.getAttribute(\"data-is-carousel\") === \"1\";\n            const leftArrow = wrapperEl.querySelector(\".carousel-arrow-left\");\n            const rightArrow = wrapperEl.querySelector(\".carousel-arrow-right\");\n\n            fetch(\"https:\/\/api.satusatu.com\/content\/guest\/satusatu\/v1\/catalogs\/blog\/catalog-list?slugs=\" + slugs)\n                .then(res => res.json())\n                .then(data => {\n                    container.innerHTML = data.data.map(renderCatalogItem).join('');\n                    \/\/ Event handler for card click\n                    container.querySelectorAll('.produk-card').forEach(card => {\n                        card.addEventListener('click', () => {\n                            window.open(card.dataset.url, '_blank');\n                        });\n                    });\n\n                    if (isCarousel && scrollEl && leftArrow && rightArrow) {\n                        const scrollAmount = 240;\n                        function updateArrows() {\n                            const sl = scrollEl.scrollLeft;\n                            const sw = scrollEl.scrollWidth;\n                            const cw = scrollEl.clientWidth;\n                            leftArrow.classList.toggle(\"is-hidden\", sl <= 0);\n                            rightArrow.classList.toggle(\"is-hidden\", sl + cw >= sw - 1);\n                        }\n                        leftArrow.addEventListener(\"click\", e => {\n                            e.stopPropagation();\n                            scrollEl.scrollBy({ left: -scrollAmount, behavior: \"smooth\" });\n                        });\n                        rightArrow.addEventListener(\"click\", e => {\n                            e.stopPropagation();\n                            scrollEl.scrollBy({ left: scrollAmount, behavior: \"smooth\" });\n                        });\n                        scrollEl.addEventListener(\"scroll\", updateArrows);\n                        window.addEventListener(\"resize\", updateArrows);\n                        setTimeout(updateArrows, 200);\n                    }\n                });\n        }\n\n        document.addEventListener(\"DOMContentLoaded\", function() {\n            document.querySelectorAll(\"[data-carousel-id]\").forEach(initSatuSatuCatalog);\n        });\n    })();\n    <\/script>\n    <\/p>\n<hr data-path-to-node=\"2\" \/>\n<h2 data-path-to-node=\"3\">Day 1: Heritage, Primates, and the Artistic Pulse<\/h2>\n<p id=\"p-rc_c60f0a5319ae6fb9-42\" data-path-to-node=\"5\"><span class=\"citation-94 citation-end-94\">Your first day is about grounding yourself in the town center.<\/span> <span class=\"citation-93 citation-end-93\">Ubud is remarkably walkable, though the tropical humidity suggests an early start.<\/span><\/p>\n<ul data-path-to-node=\"6\">\n<li>\n<p id=\"p-rc_c60f0a5319ae6fb9-43\" data-path-to-node=\"6,0,0\"><b data-path-to-node=\"6,0,0\" data-index-in-node=\"0\"><span class=\"citation-92\">Sunrise at Campuhan Ridge Walk:<\/span><\/b><span class=\"citation-92 citation-end-92\"> Begin your journey at 6:30 AM on this iconic paved trail.<\/span> The path snakes between two river gorges, offering panoramic views of the &#8220;jungle bridges&#8221; and lush grasslands. It is the perfect low-impact way to wake up your senses.<\/p>\n<\/li>\n<li>\n<p id=\"p-rc_c60f0a5319ae6fb9-44\" data-path-to-node=\"6,1,0\"><b data-path-to-node=\"6,1,0\" data-index-in-node=\"0\">The Royal Heritage Core:<\/b><span class=\"citation-91\"> Head back to the center for the <\/span><b data-path-to-node=\"6,1,0\" data-index-in-node=\"57\"><span class=\"citation-91\">Puri Saren Agung (Ubud Palace)<\/span><\/b><span class=\"citation-91 citation-end-91\">.<\/span> This remains the seat of the local royal family and a masterclass in Balinese stone carving. <span class=\"citation-90\">Directly across the street, the <\/span><b data-path-to-node=\"6,1,0\" data-index-in-node=\"214\"><span class=\"citation-90\">Ubud Art Market<\/span><\/b><span class=\"citation-90\"> has been recently upgraded; look for hand-woven <\/span><i data-path-to-node=\"6,1,0\" data-index-in-node=\"278\"><span class=\"citation-90\">ata<\/span><\/i><span class=\"citation-90 citation-end-90\"> bags and silk sarongs.<\/span><\/p>\n<\/li>\n<li>\n<p id=\"p-rc_c60f0a5319ae6fb9-45\" data-path-to-node=\"6,2,0\"><b data-path-to-node=\"6,2,0\" data-index-in-node=\"0\">Sacred Monkey Forest Sanctuary:<\/b> Spend your afternoon under the giant banyan trees of this 12-hectare forest. <span class=\"citation-89 citation-end-89\">Home to over 1,200 long-tailed macaques and three 14th-century temples, it feels like stepping into a living history book.<\/span><\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,3,0\"><b data-path-to-node=\"6,3,0\" data-index-in-node=\"0\">Evening Traditional Dance:<\/b> Conclude your day with a Legong or Kecak fire dance at the palace. The hypnotic Gamelan music and intricate storytelling are essential for understanding the local worldview.<\/p>\n<\/li>\n<\/ul>\n<hr data-path-to-node=\"7\" \/>\n<h2 data-path-to-node=\"8\">Day 2: Spiritual Purifications and Emerald Vistas<\/h2>\n<p data-path-to-node=\"10\">On day two, move north toward the cooler highlands where the &#8220;Bali postcard&#8221; views come to life.<\/p>\n<ul data-path-to-node=\"11\">\n<li>\n<p id=\"p-rc_c60f0a5319ae6fb9-46\" data-path-to-node=\"11,0,0\"><b data-path-to-node=\"11,0,0\" data-index-in-node=\"0\"><span class=\"citation-88\">Tegalalang Rice Terraces:<\/span><\/b><span class=\"citation-88\"> These UNESCO-listed terraces utilize the <\/span><i data-path-to-node=\"11,0,0\" data-index-in-node=\"67\"><span class=\"citation-88\">Subak<\/span><\/i><span class=\"citation-88 citation-end-88\"> irrigation system, a communal water-sharing method dating back to the 9th century.<\/span> In 2026, the terraces offer more than just views; you can join guided farming walks to learn how the rice is actually grown.<\/p>\n<\/li>\n<li>\n<p id=\"p-rc_c60f0a5319ae6fb9-47\" data-path-to-node=\"11,1,0\"><b data-path-to-node=\"11,1,0\" data-index-in-node=\"0\"><span class=\"citation-87\">Pura Tirta Empul:<\/span><\/b><span class=\"citation-87 citation-end-87\"> A 15-minute drive north brings you to this holy water temple.<\/span> <span class=\"citation-86\">Participate in the <\/span><i data-path-to-node=\"11,1,0\" data-index-in-node=\"99\"><span class=\"citation-86\">Melukat<\/span><\/i><span class=\"citation-86 citation-end-86\"> purification ritual, where you move through crystal-clear spring pools to cleanse the spirit.<\/span> <span class=\"citation-85\">For a quieter, &#8220;hidden gem&#8221; alternative, consider <\/span><b data-path-to-node=\"11,1,0\" data-index-in-node=\"251\"><span class=\"citation-85\">Pura Gunung Kawi Sebatu<\/span><\/b><span class=\"citation-85 citation-end-85\">.<\/span><\/p>\n<\/li>\n<li>\n<p id=\"p-rc_c60f0a5319ae6fb9-48\" data-path-to-node=\"11,2,0\"><b data-path-to-node=\"11,2,0\" data-index-in-node=\"0\">Artisanal Workshops:<\/b> Spend your afternoon getting your hands dirty. <span class=\"citation-84\">Ubud is famous for its <\/span><b data-path-to-node=\"11,2,0\" data-index-in-node=\"91\"><span class=\"citation-84\">Silver Jewellery Workshops<\/span><\/b><span class=\"citation-84\"> in Celuk or <\/span><b data-path-to-node=\"11,2,0\" data-index-in-node=\"130\"><span class=\"citation-84\">Batik Making Classes<\/span><\/b><span class=\"citation-84 citation-end-84\">.<\/span> These 3-hour sessions allow you to create a personalized souvenir under the guidance of a master craftsman.<\/p>\n<\/li>\n<li>\n<p id=\"p-rc_c60f0a5319ae6fb9-49\" data-path-to-node=\"11,3,0\"><b data-path-to-node=\"11,3,0\" data-index-in-node=\"0\"><span class=\"citation-83\">Dinner at Hujan Locale:<\/span><\/b><span class=\"citation-83 citation-end-83\"> Experience &#8220;Modern Indonesian&#8221; cuisine where local ingredients are elevated into fine-dining masterpieces.<\/span><\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"13\">Day 3: Volcanic Sunsets and Waterfall Wonders<\/h2>\n<p id=\"p-rc_c60f0a5319ae6fb9-50\" data-path-to-node=\"15\"><span class=\"citation-82 citation-end-82\">Day three is for the adventurers.<\/span> This is the peak of your <b data-path-to-node=\"15\" data-index-in-node=\"59\">4 day Ubud itinerary<\/b>, requiring a mix of stamina and a love for nature.<\/p>\n<ul data-path-to-node=\"16\">\n<li>\n<p id=\"p-rc_c60f0a5319ae6fb9-51\" data-path-to-node=\"16,0,0\"><b data-path-to-node=\"16,0,0\" data-index-in-node=\"0\"><span class=\"citation-81\">Mount Batur Sunrise Trek:<\/span><\/b><span class=\"citation-81 citation-end-81\"> A 2:00 AM wake-up call is worth it when you reach the summit of this active volcano.<\/span> Watching the sky shift from indigo to fiery orange over Lake Batur is a spiritual experience in itself. If hiking isn&#8217;t for you, 4WD Jeep tours are a popular 2026 alternative.<\/p>\n<\/li>\n<li>\n<p id=\"p-rc_c60f0a5319ae6fb9-52\" data-path-to-node=\"16,1,0\"><b data-path-to-node=\"16,1,0\" data-index-in-node=\"0\">Waterfall Hopping:<\/b><span class=\"citation-80\"> After a post-hike nap, head to the &#8220;Triple Threat&#8221; of waterfalls: <\/span><b data-path-to-node=\"16,1,0\" data-index-in-node=\"85\"><span class=\"citation-80\">Kanto Lampo<\/span><\/b><span class=\"citation-80\">, <\/span><b data-path-to-node=\"16,1,0\" data-index-in-node=\"98\"><span class=\"citation-80\">Tibumana<\/span><\/b><span class=\"citation-80\">, and <\/span><b data-path-to-node=\"16,1,0\" data-index-in-node=\"112\"><span class=\"citation-80\">Tukad Cepung<\/span><\/b><span class=\"citation-80 citation-end-80\">.<\/span> <span class=\"citation-79 citation-end-79\">Tukad Cepung is particularly magical, as the water falls through a cave roof, creating dramatic sunbeams in the afternoon light.<\/span><\/p>\n<\/li>\n<li>\n<p id=\"p-rc_c60f0a5319ae6fb9-53\" data-path-to-node=\"16,2,0\"><b data-path-to-node=\"16,2,0\" data-index-in-node=\"0\"><span class=\"citation-78\">Wellness Reset:<\/span><\/b><span class=\"citation-78 citation-end-78\"> After a day of trekking and swimming, visit a local spa for a traditional Balinese massage.<\/span> <span class=\"citation-77\">Places like <\/span><b data-path-to-node=\"16,2,0\" data-index-in-node=\"120\"><span class=\"citation-77\">Biyukukung Spa<\/span><\/b><span class=\"citation-77 citation-end-77\"> offer treatment rooms overlooking quiet rice paddies, far from the town&#8217;s noise.<\/span><\/p>\n<\/li>\n<\/ul>\n<hr data-path-to-node=\"17\" \/>\n<h2 data-path-to-node=\"18\">Day 4: Slow Living and Culinary Mastery<\/h2>\n<p data-path-to-node=\"20\">Use your final day to embrace the &#8220;Slow Travel&#8221; philosophy that Ubud pioneered.<\/p>\n<ul data-path-to-node=\"21\">\n<li>\n<p id=\"p-rc_c60f0a5319ae6fb9-54\" data-path-to-node=\"21,0,0\"><b data-path-to-node=\"21,0,0\" data-index-in-node=\"0\"><span class=\"citation-76\">Morning Yoga:<\/span><\/b><span class=\"citation-76\"> Visit <\/span><b data-path-to-node=\"21,0,0\" data-index-in-node=\"20\"><span class=\"citation-76\">The Yoga Barn<\/span><\/b><span class=\"citation-76\"> or <\/span><b data-path-to-node=\"21,0,0\" data-index-in-node=\"37\"><span class=\"citation-76\">Radiantly Alive<\/span><\/b><span class=\"citation-76 citation-end-76\"> for a morning flow.<\/span> The wellness scene in Ubud is world-class, offering everything from Vinyasa to Tibetan sound healing.<\/p>\n<\/li>\n<li>\n<p id=\"p-rc_c60f0a5319ae6fb9-55\" data-path-to-node=\"21,1,0\"><b data-path-to-node=\"21,1,0\" data-index-in-node=\"0\">Cooking Class with Market Visit:<\/b><span class=\"citation-75 citation-end-75\"> Join a Balinese cooking school.<\/span> You\u2019ll typically start at a local morning market to pick fresh galangal, turmeric, and lemongrass before heading to a traditional kitchen to prepare a multi-course feast.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"21,2,0\"><b data-path-to-node=\"21,2,0\" data-index-in-node=\"0\">Museum Puri Lukisan:<\/b> Before you leave, visit the oldest art museum in Bali. It provides a quiet, serene garden setting to reflect on the evolution of Balinese painting styles.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"21,3,0\"><b data-path-to-node=\"21,3,0\" data-index-in-node=\"0\">Final Sunset at a Jungle Club:<\/b> End your trip at a spot like <b data-path-to-node=\"21,3,0\" data-index-in-node=\"60\">Cretya Ubud<\/b> or <b data-path-to-node=\"21,3,0\" data-index-in-node=\"75\">Tis Cafe<\/b>, where you can enjoy a cocktail in an infinity pool overlooking the very rice terraces you explored on Day 2.<\/p>\n<\/li>\n<\/ul>\n<hr data-path-to-node=\"22\" \/>\n<h3 data-path-to-node=\"23\">Pro-Tip: Booking Your Experiences<\/h3>\n<p id=\"p-rc_c60f0a5319ae6fb9-56\" data-path-to-node=\"24\">The best way to ensure your trip is seamless is to plan ahead. <span class=\"citation-74 citation-end-74\">In 2026, travelers are moving away from generic tour operators in favor of curated, local insights.<\/span> <span class=\"citation-73\">To find the most authentic tours and workshops, you can <\/span><b data-path-to-node=\"24\" data-index-in-node=\"219\"><span class=\"citation-73\">buy activities via <a href=\"https:\/\/satusatu.com\/en-US\">SatuSatu<\/a><\/span><\/b><span class=\"citation-73 citation-end-73\">.<\/span> <span class=\"citation-72 citation-end-72\">Their platform specializes in handpicked, locally-led experiences\u2014from private temple purifications to secret waterfall treks\u2014ensuring you see the real Bali while supporting the local community.<\/span><\/p>\n<h3 data-path-to-node=\"25\">4 Day Ubud Itinerary Summary Table<\/h3>\n<table data-path-to-node=\"26\">\n<thead>\n<tr>\n<td><strong>Day<\/strong><\/td>\n<td><strong>Focus<\/strong><\/td>\n<td><strong>Highlight<\/strong><\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><span data-path-to-node=\"26,1,0,0\"><b data-path-to-node=\"26,1,0,0\" data-index-in-node=\"0\">Day 1<\/b><\/span><\/td>\n<td><span data-path-to-node=\"26,1,1,0\">Culture &amp; Heritage<\/span><\/td>\n<td><span data-path-to-node=\"26,1,2,0\">Ubud Palace &amp; Monkey Forest<\/span><\/td>\n<\/tr>\n<tr>\n<td><span data-path-to-node=\"26,2,0,0\"><b data-path-to-node=\"26,2,0,0\" data-index-in-node=\"0\">Day 2<\/b><\/span><\/td>\n<td><span data-path-to-node=\"26,2,1,0\">Nature &amp; Spirit<\/span><\/td>\n<td><span data-path-to-node=\"26,2,2,0\">Tegalalang &amp; Tirta Empul Ritual<\/span><\/td>\n<\/tr>\n<tr>\n<td><span data-path-to-node=\"26,3,0,0\"><b data-path-to-node=\"26,3,0,0\" data-index-in-node=\"0\">Day 3<\/b><\/span><\/td>\n<td><span data-path-to-node=\"26,3,1,0\">Adventure<\/span><\/td>\n<td><span data-path-to-node=\"26,3,2,0\">Mt. Batur Sunrise &amp; Hidden Waterfalls<\/span><\/td>\n<\/tr>\n<tr>\n<td><span data-path-to-node=\"26,4,0,0\"><b data-path-to-node=\"26,4,0,0\" data-index-in-node=\"0\">Day 4<\/b><\/span><\/td>\n<td><span data-path-to-node=\"26,4,1,0\">Wellness &amp; Gastronomy<\/span><\/td>\n<td><span data-path-to-node=\"26,4,2,0\">Yoga session &amp; Balinese Cooking Class<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Let&#8217;s go explore Ubud Bali with SatuSatu!<\/p>\n    <!-- Styles -->\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Overpass:ital,wght@0,100..900;1,100..900&display=swap\" rel=\"stylesheet\">\n    <style>\n        \/* ========================= *\/\n          \/* BASE STYLES *\/\n          \/* ========================= *\/\n          .produk-container {\n              display: flex;\n              flex-direction: column;\n              gap: 12px;\n          }\n\n          .produk-card {\n            cursor: pointer;\n            display: flex;\n            margin: 0;\n            border: 1px solid #eee;\n            border-radius: 12px;\n            overflow: hidden;\n            font-family: Overpass, sans-serif;\n            background: #ffffff;\n          }\n\n          .produk-image {\n            position: relative;\n            flex-shrink: 0;\n          }\n\n          .produk-image img {\n            width: 100%;\n            height: 100%;\n            object-fit: cover;\n          }\n\n          .produk-location {\n            position: absolute;\n            left: 8px;\n            bottom: 8px;\n            background: #fff;\n            border-radius: 12px;\n            border: 1px solid #dadbe0;\n            padding: 4px 6px;\n            font-size: 10px;\n            line-height: 14px;\n          }\n\n          .produk-content {\n            flex: 1;\n            display: flex;\n            flex-direction: column;\n            gap: 12px;\n          }\n\n          .produk-title {\n            font-weight: 700;\n          }\n\n          .produk-rating {\n            font-size: 16px;\n            color: #333;\n            display: flex;\n            align-items: flex-start;\n            gap: 4px;\n          }\n\n          .produk-rating-line {\n            display: flex;\n            align-items: flex-start;\n            gap: 4px;\n          }\n\n          .produk-price-main {\n            color: #cb1c4f;\n            font-weight: 800;\n            font-size: 16px;\n          }\n\n          .produk-price-strike {\n            text-decoration: line-through;\n            font-size: 14px;\n            opacity: 0.7;\n            margin-right: 8px;\n          }\n\n          .produk-discount {\n            background: #cb1c4f;\n            color: #fff;\n            padding: 2px 6px;\n            border-radius: 4px;\n            font-size: 14px;\n          }\n\n          .produk-btn {\n            background: #cb1c4f;\n            color: #ffffff;\n            padding: 10px 16px;\n            border-radius: 8px;\n            text-decoration: none;\n            font-weight: 600;\n            margin-top: 8px;\n          }\n\n          .produk-btn:hover {\n            text-decoration: none;\n            color: #ffffff;\n          }\n\n          .product-info-wrap {\n            display: flex;\n            flex-wrap: nowrap;\n            justify-content: space-between;\n          }\n\n          \/* ========================= *\/\n          \/* DESKTOP (>= 800px) *\/\n          \/* ========================= *\/\n\n          @media (min-width: 800px) {\n            .produk-image {\n              width: 200px;\n            }\n\n            .produk-content {\n              padding: 20px;\n            }\n\n            .product-info-wrap {\n              flex-direction: row;\n              align-items: center;\n            }\n\n            .produk-btn {\n              display: inline-block;\n            }\n          }\n\n          \/* ========================= *\/\n          \/* TABLET (<= 768px) *\/\n          \/* ========================= *\/\n\n          @media (max-width: 768px) {\n            .produk-card {\n              flex-direction: column;\n            }\n\n            .produk-image {\n              width: 200px;\n              height: 220px;\n            }\n\n            .produk-content {\n              padding: 12px;\n            }\n\n            .produk-title {\n              font-size: 18px;\n            }\n\n            .produk-rating {\n              font-size: 14px;\n            }\n\n            .product-info-wrap {\n              flex-direction: column;\n              align-items: flex-start;\n              gap: 12px;\n            }\n\n            .produk-btn {\n              display: none;\n            }\n          }\n\n          \/* ========================= *\/\n          \/* MOBILE (<= 480px) *\/\n          \/* ========================= *\/\n\n          @media (max-width: 480px) {\n            .produk-image {\n              width: 100%;\n            }\n\n            .produk-content {\n              padding: 12px;\n            }\n\n            .produk-title {\n              font-size: 16px;\n              overflow: hidden;\n              text-overflow: ellipsis;\n            }\n\n            .produk-price-main {\n              font-size: 15px;\n            }\n\n            .produk-discount {\n              font-size: 12px;\n            }\n\n            .produk-btn {\n              display: none;\n            }\n          }\n\n          \/* ======================================= *\/\n          \/* CAROUSEL MODE (inside .carousel-list)  *\/\n          \/* ======================================= *\/\n\n          .carousel-wrapper {\n            position: relative;\n          }\n\n          .carousel-list {\n            overflow-x: auto;\n            overflow-y: hidden;\n            -webkit-overflow-scrolling: touch;\n            scroll-behavior: smooth;\n            scroll-snap-type: x mandatory;\n            scrollbar-width: none;\n          }\n\n          .carousel-list::-webkit-scrollbar {\n            display: none;\n          }\n\n          .carousel-list .produk-container {\n            display: flex;\n            flex-direction: row;\n            flex-wrap: nowrap;\n            width: max-content;\n            gap: 12px;\n          }\n\n          .carousel-list .produk-card {\n            flex: 0 0 auto;\n            width: 220px;\n            flex-direction: column;\n            scroll-snap-align: start;\n          }\n\n          .carousel-list .produk-image {\n            width: 100%;\n            height: 220px;\n          }\n\n          .carousel-list .produk-content {\n            padding: 12px;\n          }\n\n          .carousel-list .produk-title {\n\t\t\t  font-size: 16px;\n\t\t\t  overflow: hidden;\n\t\t\t  text-overflow: ellipsis;\n\t\t\t  display: -webkit-box;\n\t\t\t  -webkit-line-clamp: 2;\n\t\t\t  -webkit-box-orient: vertical;\n\t\t\t  line-clamp: 2;\n\t\t\t}\n\n          .carousel-list .produk-rating {\n            font-size: 14px;\n          }\n\n          .carousel-list .produk-price-main {\n            font-size: 15px;\n          }\n\n          .carousel-list .produk-discount {\n            font-size: 12px;\n          }\n\n          .carousel-list .product-info-wrap {\n            flex-direction: column;\n            align-items: flex-start;\n            gap: 12px;\n          }\n\n          .carousel-list .produk-btn {\n            display: none;\n          }\n\n          \/* ========================= *\/\n          \/* CAROUSEL ARROWS *\/\n          \/* ========================= *\/\n\n          .carousel-arrow {\n            position: absolute;\n            top: 50%;\n            transform: translateY(-50%);\n            width: 36px;\n            height: 36px;\n            border-radius: 50%;\n            background: #ffffff;\n            border: 1px solid #dadbe0;\n            box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            z-index: 10;\n            transition: opacity 0.2s, box-shadow 0.2s;\n            padding: 0;\n          }\n\n          .carousel-arrow:hover {\n\t\t\tbackground: #FFFFFF;\n            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n          }\n\n          .carousel-arrow.is-hidden {\n            opacity: 0;\n            pointer-events: none;\n          }\n\n          .carousel-arrow-left {\n            left: -18px;\n          }\n\n          .carousel-arrow-right {\n            right: -18px;\n          }\n\n          @media (max-width: 480px) {\n\t\t\t.carousel-arrow{\n\t\t\t\tdisplay: none;\n\t\t\t}\n            .carousel-arrow-left {\n              left: 4px;\n            }\n\n            .carousel-arrow-right {\n              right: 4px;\n            }\n          }\n    <\/style>\n\n    <!-- HTML -->\n    <div class=\"carousel-wrapper\" data-carousel-id=\"carousel-69d000b7375e1\" data-is-carousel=\"1\">\n                    <button type=\"button\" class=\"carousel-arrow carousel-arrow-left is-hidden\" aria-label=\"Scroll left\">\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"25\" height=\"25\" fill=\"#000000\" viewBox=\"0 0 256 256\"><path d=\"M216,88v80a8,8,0,0,1-8,8H120v48L24,128l96-96V80h88A8,8,0,0,1,216,88Z\" opacity=\"0.2\"><\/path><path d=\"M208,72H128V32a8,8,0,0,0-13.66-5.66l-96,96a8,8,0,0,0,0,11.32l96,96A8,8,0,0,0,128,224V184h80a16,16,0,0,0,16-16V88A16,16,0,0,0,208,72Zm0,96H120a8,8,0,0,0-8,8v28.69L35.31,128,112,51.31V80a8,8,0,0,0,8,8h88Z\"><\/path><\/svg>\n            <\/button>\n            <button type=\"button\" class=\"carousel-arrow carousel-arrow-right is-hidden\" aria-label=\"Scroll right\">\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"25\" height=\"25\" fill=\"#000000\" viewBox=\"0 0 256 256\"><path d=\"M136,224V176H48a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8h88V32l96,96Z\" opacity=\"0.2\"><\/path><path d=\"M237.66,122.34l-96-96A8,8,0,0,0,128,32V72H48A16,16,0,0,0,32,88v80a16,16,0,0,0,16,16h80v40a8,8,0,0,0,13.66,5.66l96-96A8,8,0,0,0,237.66,122.34ZM144,204.69V176a8,8,0,0,0-8-8H48V88h88a8,8,0,0,0,8-8V51.31L220.69,128Z\"><\/path><\/svg>\n            <\/button>\n                <div class=\"carousel-list\">\n            <div class=\"produk-container\" data-slugs=\"kuber-bali-atv-adventure,icon-atv-bali-adventure,bali-diving-school-scuba-diving-courses,batara-watersport-bali-tanjung-benoa-water-adventures,timbis-beach-paragliding-experience-bali,sunrise-volcano-jeep-experience-mount-batur,mount-batur-jeep-sunset-experience,4wd-jeep-mount-batur-sunrise-experience-by-bali-volcano-jeep\"><\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Script -->\n    <script>\n    (function() {\n\t\tfunction buildCatalogUrl(slug) {\n\t\t\t\/\/ UTM params hardcoded by the shortcode (these always win)\n\t\t\tconst hardcoded = {\n\t\t\t\tutm_source: \"blog\",\n\t\t\t\tutm_medium: \"in_line_product_cta\",\n\t\t\t};\n\n\t\t\t\/\/ UTM params from the current page URL (only used if hardcoded doesn't define them)\n\t\t\tconst pageParams = new URLSearchParams(window.location.search);\n\t\t\tconst utmKeys = [\"utm_source\", \"utm_medium\", \"utm_campaign\", \"utm_content\", \"utm_term\"];\n\t\t\tconst merged = new URLSearchParams();\n\n\t\t\tutmKeys.forEach(key => {\n\t\t\t\tif (hardcoded[key] !== undefined) {\n\t\t\t\t\t\/\/ Hardcoded value takes priority\n\t\t\t\t\tmerged.set(key, hardcoded[key]);\n\t\t\t\t} else if (pageParams.has(key)) {\n\t\t\t\t\t\/\/ Fall back to whatever the page URL has\n\t\t\t\t\tmerged.set(key, pageParams.get(key));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn \"https:\/\/satusatu.com\/en-ID\/catalog\/\" + slug + \"?\" + merged.toString();\n\t\t}\n\t\t\n        function renderCatalogItem(p) {\n            const location = p.location?.name || \"\";\n            const rating = p.rating?.average_rating ?? null;\n            const ratingCount = p.rating?.count_rating_display || \"\";\n            const soldDisplay = p.rating?.total_sold_display || \"\";\n            const currency = p.pricing?.currency_symbol || \"Rp\";\n            const price = p.pricing?.min_price || 0;\n            const originalPrice = p.pricing?.min_original_price || 0;\n            const discount = p.pricing?.discount || 0;\n\t\t\tconst catalogUrl = buildCatalogUrl(p.slug);\n\n            return `\n                <div class=\"produk-card\" data-url=\"${catalogUrl}\">\n                    <div class=\"produk-image\">\n                        <img decoding=\"async\" src=\"${p.image_url}\" alt=\"${p.title}\" \/>\n                        <div class=\"produk-location\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" fill=\"#000000\" viewBox=\"0 0 256 256\"><path d=\"M128,24a80,80,0,0,0-80,80c0,72,80,128,80,128s80-56,80-128A80,80,0,0,0,128,24Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,128,136Z\" opacity=\"0.2\"><\/path><path d=\"M128,64a40,40,0,1,0,40,40A40,40,0,0,0,128,64Zm0,64a24,24,0,1,1,24-24A24,24,0,0,1,128,128Zm0-112a88.1,88.1,0,0,0-88,88c0,31.4,14.51,64.68,42,96.25a254.19,254.19,0,0,0,41.45,38.3,8,8,0,0,0,9.18,0A254.19,254.19,0,0,0,174,200.25c27.45-31.57,42-64.85,42-96.25A88.1,88.1,0,0,0,128,16Zm0,206c-16.53-13-72-60.75-72-118a72,72,0,0,1,144,0C200,161.23,144.53,209,128,222Z\"><\/path><\/svg>\n                            <span>${location}<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"produk-content\">\n                        <div class=\"produk-title\">${p.title}<\/div>\n                        ${rating ? `\n                        <div class=\"produk-rating\">\n                            <div class=\"produk-rating-line\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"18\" height=\"18\" fill=\"#F87500\" viewBox=\"0 0 256 256\"><path d=\"M229.06,108.79l-48.7,42,14.88,62.79a8.4,8.4,0,0,1-12.52,9.17L128,189.09,73.28,222.74a8.4,8.4,0,0,1-12.52-9.17l14.88-62.79-48.7-42A8.46,8.46,0,0,1,31.73,94L95.64,88.8l24.62-59.6a8.36,8.36,0,0,1,15.48,0l24.62,59.6L224.27,94A8.46,8.46,0,0,1,229.06,108.79Z\" opacity=\"0.2\"><\/path><path d=\"M239.18,97.26A16.38,16.38,0,0,0,224.92,86l-59-4.76L143.14,26.15a16.36,16.36,0,0,0-30.27,0L90.11,81.23,31.08,86a16.46,16.46,0,0,0-9.37,28.86l45,38.83L53,211.75a16.38,16.38,0,0,0,24.5,17.82L128,198.49l50.53,31.08A16.4,16.4,0,0,0,203,211.75l-13.76-58.07,45-38.83A16.43,16.43,0,0,0,239.18,97.26Zm-15.34,5.47-48.7,42a8,8,0,0,0-2.56,7.91l14.88,62.8a.37.37,0,0,1-.17.48c-.18.14-.23.11-.38,0l-54.72-33.65a8,8,0,0,0-8.38,0L69.09,215.94c-.15.09-.19.12-.38,0a.37.37,0,0,1-.17-.48l14.88-62.8a8,8,0,0,0-2.56-7.91l-48.7-42c-.12-.1-.23-.19-.13-.5s.18-.27.33-.29l63.92-5.16A8,8,0,0,0,103,91.86l24.62-59.61c.08-.17.11-.25.35-.25s.27.08.35.25L153,91.86a8,8,0,0,0,6.75,4.92l63.92,5.16c.15,0,.24,0,.33.29S224,102.63,223.84,102.73Z\"><\/path><\/svg>\n                                <span>${rating} (${ratingCount}) &bull; ${soldDisplay} sold<\/span>\n                            <\/div>\n                        <\/div>` : ''}\n                        <div class=\"product-info-wrap\">\n                            <div>\n                                <div style=\"display:flex;gap:6px;\">\n                                    <div style=\"font-size:14px;\">From<\/div>\n                                    <div class=\"produk-price-main\">${currency} ${price.toLocaleString()}<\/div>\n                                <\/div>\n                                ${discount > 0 ? `\n                                <div>\n                                    <span class=\"produk-price-strike\">${currency} ${originalPrice.toLocaleString()}<\/span>\n                                    <span class=\"produk-discount\">-${discount}%<\/span>\n                                <\/div>` : ''}\n                            <\/div>\n                            <div>\n                                <a target=\"_blank\" href=\"${catalogUrl}\" class=\"produk-btn\">Check Availability<\/a>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function initSatuSatuCatalog(wrapperEl) {\n            const scrollEl = wrapperEl.querySelector(\".carousel-list\");\n            const container = wrapperEl.querySelector(\".produk-container\");\n            const slugs = container.getAttribute(\"data-slugs\");\n            const isCarousel = wrapperEl.getAttribute(\"data-is-carousel\") === \"1\";\n            const leftArrow = wrapperEl.querySelector(\".carousel-arrow-left\");\n            const rightArrow = wrapperEl.querySelector(\".carousel-arrow-right\");\n\n            fetch(\"https:\/\/api.satusatu.com\/content\/guest\/satusatu\/v1\/catalogs\/blog\/catalog-list?slugs=\" + slugs)\n                .then(res => res.json())\n                .then(data => {\n                    container.innerHTML = data.data.map(renderCatalogItem).join('');\n                    \/\/ Event handler for card click\n                    container.querySelectorAll('.produk-card').forEach(card => {\n                        card.addEventListener('click', () => {\n                            window.open(card.dataset.url, '_blank');\n                        });\n                    });\n\n                    if (isCarousel && scrollEl && leftArrow && rightArrow) {\n                        const scrollAmount = 240;\n                        function updateArrows() {\n                            const sl = scrollEl.scrollLeft;\n                            const sw = scrollEl.scrollWidth;\n                            const cw = scrollEl.clientWidth;\n                            leftArrow.classList.toggle(\"is-hidden\", sl <= 0);\n                            rightArrow.classList.toggle(\"is-hidden\", sl + cw >= sw - 1);\n                        }\n                        leftArrow.addEventListener(\"click\", e => {\n                            e.stopPropagation();\n                            scrollEl.scrollBy({ left: -scrollAmount, behavior: \"smooth\" });\n                        });\n                        rightArrow.addEventListener(\"click\", e => {\n                            e.stopPropagation();\n                            scrollEl.scrollBy({ left: scrollAmount, behavior: \"smooth\" });\n                        });\n                        scrollEl.addEventListener(\"scroll\", updateArrows);\n                        window.addEventListener(\"resize\", updateArrows);\n                        setTimeout(updateArrows, 200);\n                    }\n                });\n        }\n\n        document.addEventListener(\"DOMContentLoaded\", function() {\n            document.querySelectorAll(\"[data-carousel-id]\").forEach(initSatuSatuCatalog);\n        });\n    })();\n    <\/script>\n    \n","protected":false},"excerpt":{"rendered":"<p>Ubud is the emerald heart of Bali, a sanctuary where ancient traditions, mist-covered jungles, and a world-class culinary scene collide. While many travelers rush through on a day trip, the true magic of this highland town reveals itself slowly. By committing to a 4 day Ubud itinerary, you allow yourself to move past the surface-level&hellip;&nbsp;<\/p>\n","protected":false},"author":20,"featured_media":267,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"off","neve_meta_content_width":70,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[65,66,70],"tags":[424],"class_list":["post-1178","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bali-travel-guide","category-things-to-do-bali","category-bali-travel-planning","tag-4-day-ubud-itinerary"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>4 Day Ubud Itinerary, Let&#039;s Go Explore It! - SatuSatu Inspiration<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"4 Day Ubud Itinerary, Let&#039;s Go Explore It! - SatuSatu Inspiration\" \/>\n<meta property=\"og:description\" content=\"Ubud is the emerald heart of Bali, a sanctuary where ancient traditions, mist-covered jungles, and a world-class culinary scene collide. While many travelers rush through on a day trip, the true magic of this highland town reveals itself slowly. By committing to a 4 day Ubud itinerary, you allow yourself to move past the surface-level&hellip;&nbsp;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/\" \/>\n<meta property=\"og:site_name\" content=\"SatuSatu Inspiration\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-29T21:40:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-30T02:13:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"1200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Haris Prahara\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Haris Prahara\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/\"},\"author\":{\"name\":\"Haris Prahara\",\"@id\":\"https:\/\/satusatu.com\/inspiration\/#\/schema\/person\/77b97421172ac5a073302f938a01d49a\"},\"headline\":\"4 Day Ubud Itinerary, Let&#8217;s Go Explore It!\",\"datePublished\":\"2026-03-29T21:40:00+00:00\",\"dateModified\":\"2026-03-30T02:13:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/\"},\"wordCount\":955,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/satusatu.com\/inspiration\/#organization\"},\"image\":{\"@id\":\"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png\",\"keywords\":[\"4 Day Ubud Itinerary\"],\"articleSection\":[\"Bali Travel Guide\",\"Things to Do in Bali\",\"Travel Planning\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/\",\"url\":\"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/\",\"name\":\"4 Day Ubud Itinerary, Let's Go Explore It! - SatuSatu Inspiration\",\"isPartOf\":{\"@id\":\"https:\/\/satusatu.com\/inspiration\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png\",\"datePublished\":\"2026-03-29T21:40:00+00:00\",\"dateModified\":\"2026-03-30T02:13:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/#primaryimage\",\"url\":\"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png\",\"contentUrl\":\"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png\",\"width\":1600,\"height\":1200,\"caption\":\"The iconic Tegallalang Rice Terraces, showcasing Bali\u2019s lush agricultural landscape and tropical scenery.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/satusatu.com\/inspiration\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"4 Day Ubud Itinerary, Let&#8217;s Go Explore It!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/satusatu.com\/inspiration\/#website\",\"url\":\"https:\/\/satusatu.com\/inspiration\/\",\"name\":\"SatuSatu\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/satusatu.com\/inspiration\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/satusatu.com\/inspiration\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/satusatu.com\/inspiration\/#organization\",\"name\":\"SatuSatu\",\"url\":\"https:\/\/satusatu.com\/inspiration\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/satusatu.com\/inspiration\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/Variant1024.png\",\"contentUrl\":\"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/Variant1024.png\",\"width\":1024,\"height\":1024,\"caption\":\"SatuSatu\"},\"image\":{\"@id\":\"https:\/\/satusatu.com\/inspiration\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/satusatu.com\/inspiration\/#\/schema\/person\/77b97421172ac5a073302f938a01d49a\",\"name\":\"Haris Prahara\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/07e13ad566eb955fb830db318de93417f7d40a9da315c04e66762009e9ec6078?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/07e13ad566eb955fb830db318de93417f7d40a9da315c04e66762009e9ec6078?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/07e13ad566eb955fb830db318de93417f7d40a9da315c04e66762009e9ec6078?s=96&d=mm&r=g\",\"caption\":\"Haris Prahara\"},\"url\":\"https:\/\/satusatu.com\/inspiration\/author\/haris-prahara\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"4 Day Ubud Itinerary, Let's Go Explore It! - SatuSatu Inspiration","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/","og_locale":"en_US","og_type":"article","og_title":"4 Day Ubud Itinerary, Let's Go Explore It! - SatuSatu Inspiration","og_description":"Ubud is the emerald heart of Bali, a sanctuary where ancient traditions, mist-covered jungles, and a world-class culinary scene collide. While many travelers rush through on a day trip, the true magic of this highland town reveals itself slowly. By committing to a 4 day Ubud itinerary, you allow yourself to move past the surface-level&hellip;&nbsp;","og_url":"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/","og_site_name":"SatuSatu Inspiration","article_published_time":"2026-03-29T21:40:00+00:00","article_modified_time":"2026-03-30T02:13:10+00:00","og_image":[{"width":1600,"height":1200,"url":"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png","type":"image\/png"}],"author":"Haris Prahara","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Haris Prahara","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/#article","isPartOf":{"@id":"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/"},"author":{"name":"Haris Prahara","@id":"https:\/\/satusatu.com\/inspiration\/#\/schema\/person\/77b97421172ac5a073302f938a01d49a"},"headline":"4 Day Ubud Itinerary, Let&#8217;s Go Explore It!","datePublished":"2026-03-29T21:40:00+00:00","dateModified":"2026-03-30T02:13:10+00:00","mainEntityOfPage":{"@id":"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/"},"wordCount":955,"commentCount":0,"publisher":{"@id":"https:\/\/satusatu.com\/inspiration\/#organization"},"image":{"@id":"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/#primaryimage"},"thumbnailUrl":"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png","keywords":["4 Day Ubud Itinerary"],"articleSection":["Bali Travel Guide","Things to Do in Bali","Travel Planning"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/","url":"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/","name":"4 Day Ubud Itinerary, Let's Go Explore It! - SatuSatu Inspiration","isPartOf":{"@id":"https:\/\/satusatu.com\/inspiration\/#website"},"primaryImageOfPage":{"@id":"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/#primaryimage"},"image":{"@id":"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/#primaryimage"},"thumbnailUrl":"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png","datePublished":"2026-03-29T21:40:00+00:00","dateModified":"2026-03-30T02:13:10+00:00","breadcrumb":{"@id":"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/#primaryimage","url":"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png","contentUrl":"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png","width":1600,"height":1200,"caption":"The iconic Tegallalang Rice Terraces, showcasing Bali\u2019s lush agricultural landscape and tropical scenery."},{"@type":"BreadcrumbList","@id":"https:\/\/satusatu.com\/inspiration\/4-day-ubud-itinerary\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/satusatu.com\/inspiration\/"},{"@type":"ListItem","position":2,"name":"4 Day Ubud Itinerary, Let&#8217;s Go Explore It!"}]},{"@type":"WebSite","@id":"https:\/\/satusatu.com\/inspiration\/#website","url":"https:\/\/satusatu.com\/inspiration\/","name":"SatuSatu","description":"","publisher":{"@id":"https:\/\/satusatu.com\/inspiration\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/satusatu.com\/inspiration\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/satusatu.com\/inspiration\/#organization","name":"SatuSatu","url":"https:\/\/satusatu.com\/inspiration\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/satusatu.com\/inspiration\/#\/schema\/logo\/image\/","url":"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/Variant1024.png","contentUrl":"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/Variant1024.png","width":1024,"height":1024,"caption":"SatuSatu"},"image":{"@id":"https:\/\/satusatu.com\/inspiration\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/satusatu.com\/inspiration\/#\/schema\/person\/77b97421172ac5a073302f938a01d49a","name":"Haris Prahara","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/07e13ad566eb955fb830db318de93417f7d40a9da315c04e66762009e9ec6078?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/07e13ad566eb955fb830db318de93417f7d40a9da315c04e66762009e9ec6078?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/07e13ad566eb955fb830db318de93417f7d40a9da315c04e66762009e9ec6078?s=96&d=mm&r=g","caption":"Haris Prahara"},"url":"https:\/\/satusatu.com\/inspiration\/author\/haris-prahara\/"}]}},"uagb_featured_image_src":{"full":["https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png",1600,1200,false],"thumbnail":["https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png",150,113,false],"medium":["https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png",300,225,false],"medium_large":["https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png",768,576,false],"large":["https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png",1024,768,false],"1536x1536":["https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png",1536,1152,false],"2048x2048":["https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png",1600,1200,false],"neve-blog":["https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/SatuSatu-Experience-tegallalang-rice-terraces-ubud-bali.png",827,620,false]},"uagb_author_info":{"display_name":"Haris Prahara","author_link":"https:\/\/satusatu.com\/inspiration\/author\/haris-prahara\/"},"uagb_comment_info":0,"uagb_excerpt":"Ubud is the emerald heart of Bali, a sanctuary where ancient traditions, mist-covered jungles, and a world-class culinary scene collide. While many travelers rush through on a day trip, the true magic of this highland town reveals itself slowly. By committing to a 4 day Ubud itinerary, you allow yourself to move past the surface-level&hellip;&nbsp;","_links":{"self":[{"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/posts\/1178","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/comments?post=1178"}],"version-history":[{"count":2,"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/posts\/1178\/revisions"}],"predecessor-version":[{"id":2345,"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/posts\/1178\/revisions\/2345"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/media\/267"}],"wp:attachment":[{"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/media?parent=1178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/categories?post=1178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/tags?post=1178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}