a:6:{i:0;s:11294:"				<div class="h1"><h1>Orissa Golden Triangle Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.rudravijaytravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.rudravijaytravels.com/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Orissa Golden Triangle Tour</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Bhubaneswar, Konark, Puri, Chillika, Pipil, Dhauli</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.rudravijaytravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Orissa Golden Triangle Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="86982"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/385766/151971.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/385766/151971.jpg"  width="150" height="150"    alt="Orissa Golden Triangle Tour" title="Orissa Golden Triangle Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
											<div class="headHr">
			            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
			            </div>
			            
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 1:</b> Arrival – Bhubaneswar
								</p>
								<p class="aj">The Orissa Golden Triangle tour starts with your arrival at Bhubaneswar airport. A tour representative shall escort you to the hotel. Check-in and freshen up. Afternoon is spent enjoying sightseeing.<br />
<br />
The tour starts with Khandagiri Udaygiri caves. These caves are the earliest group of Jain rock cut shelters. The caves hold importance for its history, rock-cut architecture, art and religion. Once the dwelling retreats or cells of the Jain ascetics, here visitors can feel the wisdom of the learned.<br />
<br />
The next sight you visit is The Lingaraj temple. The thousand year old spectacular specimen of Hindu architecture is awe-inspiring. It is one of the most revered places to visit. Pay respect to the Linga form of Lord Shiva. The Kedar Gouri temple and Sai Baba temple is a short way from the temple complex. The unique architecture, the peacefulness lingering in air spellbinds all visitors. Take the blessings of the divine.<br />
<br />
Evening is free for leisure. Explore the intriguing markets of Bhubaneswar where you can strike some wonderful bargains or relish some delicacies of the city. Check out the cultural dance and music programs. The city is a quick insight into the unique diversity of the Orissa. Return to hotel for overnight stay.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 2:</b> Bhubaneswar – Konark – Puri
								</p>
								<p class="aj">Start your day with a hearty breakfast. After your meal check-out of the hotel and proceed to Konark. The mystical city hosts the UNESCO world heritage site of the Konark Sun Temple. The 13th century temple is an intriguing sight. The colossal chariot shaped temple is a marvel of architecture. Dedicated to the Sun God, the ruined temple is a treasure. The exquisite carvings and skills of artisans still shines through.Get lost in the intrinsic charm still lingering in the ambiance.<br />
<br />
Next you visit the Chandrabhaga beach. The beautiful expanse of silvery soft sands lapped by the azure waters of the Bay of Bengal. The beach is mentioned in many mythological tales. Spend time enjoying the natural beauty.<br />
<br />
Afterwards, proceed to Puri. Check-in the hotel. Freshen up as you are scheduled to visit Puri Jagannath temple and Gundicha temple. The Puri Jagannath temple is one of the holy places in Hindu faith. Mentioned as one of the divine Char dhams, the temple is dedicated to the "Lord of the Universe' Jagannath. Pay your respects and move to the Gundecha temple. This temple is a vital site as the Rath Yatra Festival takes the Gods and Goddess of Jagannath temple during the festival. Get blessed by the divine powers. Evening is kept free.<br />
<br />
Relax at the Golden sand beach of Puri. The views of sunset are breathtaking. Enjoy long walks on the soft sands. Check out the beach eateries where delicacies of the fresh catch can be tasted. Check out tribal handicrafts and other specialties. Shop for some delights. Return to hotel for overnight stay at Puri.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 3:</b> Puri – Chillika – Puri
								</p>
								<p class="aj">Start your day early. Enjoy a sumptuous breakfast in the hotel. Depart for Satpara, Chillika.Asia's largest brackish water lagoon, Chilika is recognized as one of the most important wetlands in the world. It is known for the spotting of beautifulIrwadi Dolphins.The lake is also home to a phenomenal variety of birds. Spectacular display of colorful avian charms in a thousand different hues presented by over 160 species awaits here. Spend the day exploring the pleasures of the wetland.<br />
<br />
After a well-spent day in the natural beauty, return to Puri in the evening. Overnight stay in the hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 4:</b> Puri – Pipili – Dhauli – Bhubaneswar
								</p>
								<p class="aj">Start you day with a leisurely breakfast in the hotel. After meal, check out from hotel and drive to Bhubaneswar. En-route stop at Pipili. The small city is famous for designing beautiful Applique handicrafts. It is a town of artisans famous for their colorful fabrics. Stop and shop for these wonderful garbs.<br />
<br />
Next stop is Dhauli. This city is associated with great legends of Emperor Ashoka. Located on the banks of river Daya. It is said the bloodbath war of Kalinga had turned the river red. The gruesome destruction had converted the heart of the emperor and made him a propagator of peace. The city has a Peace pagoda, Edicts of Ashoka's messages and ancient temples. Spend time exploring.<br />
<br />
Upon arrival check-in to the hotel and relax. In the afternoon proceed for sightseeing of Nandakanan, Ram Mandir and Rajarani temple etc. Nandankanan hosts a wonderful zoo inhabiting some of the wild species of the region. Carved out of the Chandaka forest, animals here are kept in their natural habitat. Come close to white Royal Bengal tigers, Gharials and other species. The flora species of the region are also unrivalled. Next visit the divine temples.<br />
<br />
Recover from the incredible experience during the overnight stay at Bhubaneswar.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 5:</b> Bhubaneswar – Departure
								</p>
								<p class="aj">After a delicious breakfast, check-out of the hotel and drive to Bhubaneswar airport/railway station. Return home with fond remembrances of Orissa.</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
																		<li>Sightseeing</li>
															</ul>
						<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount. 
* Retention Amount varies as per the number of days left before your package start date. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.rudravijaytravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Orissa Golden Triangle Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="86982"/>
						</form>
						</div>
						
						";i:1;s:66:"Book Orissa Golden Triangle Tour - 4 Nights / 5 Days Tour Packages";i:2;s:156:"book orissa golden triangle tour - 4 nights / 5 days tour packages, heritage tour packages, bhubaneswar, konark, puri, chillika, pipil, dhauli tour packages";i:3;s:192:"Rudra Vijay Travels offers Orissa Golden Triangle Tour - 4 Nights / 5 Days tour package, budget Heritage tour packages for Bhubaneswar, Konark, Puri, Chillika, Pipil, Dhauli at exciting price.";i:4;s:449:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Bhubaneswar, Konark, Puri, Chillika, Pipil, Dhauli"        
		                 },
		      "description": "",
		      "name": "Orissa Golden Triangle Tour",
		      "telephone": "+91-9996545392"
		    }
		    </script>
			";i:5;N;}