a:6:{i:0;s:12447:"				<div class="h1"><h1>Jagannath Puri Rath Yatra Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.shreetoursandtravels.in/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Jagannath Puri Rath Yatra Package</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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Bhubaneswar, Puri</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.shreetoursandtravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Jagannath Puri Rath Yatra Package - 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="120080"/>
						</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_12/356221/194560.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/356221/194560.jpg"  width="150" height="150"    alt="Jagannath Puri Rath Yatra Package" title="Jagannath Puri Rath Yatra Package" /></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
								</p>
								<p class="aj">Upon arrival in Puri, check into your hotel. One of the four destinations of the most revered Chardham Yatra, Puri is listed among the holiest destinations of Hindu pilgrimage. The sacred place is best-known as the abode of Lord Jagannath.<br />
<br />
Later in the day, proceed to Chilika Lake.<br />
<br />
Spread across 600 to 1100 sq. kilometers depending upon the season of your visit, Chilika Lake is Asia’s largest brackish water lagoon separated from Bay of Bengal by a 60 kilometers long mashy islands and sand bar known as Rajhansa. Chilika Lake is a designated Ramsar Site due to its rich biodiversity. The lake has also recorded over million plus birds including migratory birds like pink flamingoes, crane and herons that come here for nesting during winter season. Partake in fun activities.<br />
<br />
If time allows today, you could also visit the Puri Beach and stroll around in the market for some shopping. Return back to hotel for your night 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> Rath Yatra Darshan
								</p>
								<p class="aj">On the second day of your Jagannath Rath Yatra tour package, proceed to witness one of the grandest religious spectacles on the planet. Witness the Rath Yatra proceedings from a roof top position which will also offer great photo ops if you are a shutterbug.<br />
<br />
Rath Yatra celebrates the Hindu belief that Lord Jagannath takes an yearly break in midsummer to retire to his Aunt’s house along with his sister Subhadara and elder brother Balabhadra. All three deities are brought back to the main street in Puri and loaded in their grand chariots and then the great procession proceeds towards Gundicha Temple where the lord enjoy vacation at his aunt’s house.<br />
<br />
Such is the force of the procession and the presence of devotees in huge number that this annual ritual led to the coining of the English term juggernaut which means ‘an unstoppable force’. During the yatra, Puri is colored in the most vivid hues of sheer joy & enjoyment and flocked by devotees and travelers from all part of India and across the globe.<br />
<br />
Then return to your hotel for the night 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 3:</b> Puri- Konark
								</p>
								<p class="aj">On the third day, post an unhurried breakfast, check-out from the hotel and drive to Konark. On the way to Konark, visit Raghurajpur – the heritage crafts village of Odisha. Art of palm leaf engravings, tussar paintings, stone carvings and papier mache toys are produced in this village.<br />
<br />
Later, after getting an insight into the artwork of this place, continue your journey towards Konark, which is a town in the Puri district. On arrival in Konark, check-in at a hotel and rest for some time.<br />
<br />
You may visit the major attractions of the place including Konark Sun temple; a World Heritage Site designed in a shape of a colossal chariot with seven horses and ten wheels carrying Sun god Surya across heavens, the A.S.I Museum (Archaeological Survey of India); home to more than 260 antiques retrieved from the clearance work of Sun temple and Chandrabhaga beach; it is believed that a holy dip in Chandrabhaga can cure leprosy.  You can also have a great surfing experience at Kushabhadra River.<br />
<br />
About Sun Temple<br />
<br />
The Sun Temple of Konark, spelt by some as Konarak and sometimes called the “Black Pagoda” was built in approximately 1250 AD by King Narasimhadeva I of the Eastern Ganga Dynasty. The word Konark is derived from the Sanskrit words, Kona (corner) and Arka (sun) which was dedicated to the Sun god Surya.<br />
<br />
Constructed to honor the sun god, Sun Temple in Konark is designed as a representation of this deity’s horse-drawn chariot, complete with horses and giant wheels. The temple is conceived as a colossal chariot of the sun god Surya pulled by seven horses and twelve pairs of exquisitely carved wheels, carrying the god across heavens.</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> Konark – Bhubaneswar
								</p>
								<p class="aj">On the fourth day, after a delicious breakfast, check-out from the hotel and drive towards Bhubaneswar. On the way to this destination visit Pipili, a village widely known for its skilled artisans, who are into appliqué handicrafts. You may also visit Dhauli Hill which is situated on the banks of Daya River. This hill is renowned for its Rock Edicts of Ashoka. On the top of the hill is a white pagoda which was built in the year 1970 and is a must visit attraction.<br />
<br />
Then head to Chausathi Yogini Temple which was used by a tantric for his worship of Goddess Kali. Dating back to 9th century, this temple is circular in shape and open from the top.<br />
<br />
Later, proceed towards Bhubaneswar – the state capital, which has a history dating back to 3000 years.<br />
<br />
On arrival at this destination, check-in at a hotel and stay overnight.</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
								</p>
								<p class="aj">Fifth day is set out to explore Bhubaneswar. After breakfast, leave the hotel to enjoy a sightseeing tour to this splendid destination. With temples in almost every street, this city is popularly known as the ‘Temple City of India’.<br />
<br />
On a trip to this destination, you can pay a visit to some of the most renowned temples, which include Lingaraj Temple, Ananta Vasudeva Temple and Rajarani Temple. These temples display a great work of architecture, prevailing in the earlier times. Some of the newly constructed temples that also deserve a visit include Iskcon and Ram Mandir.<br />
<br />
Later, visit Udayagiri and Khandagiri Caves, which are partly natural and partly artificial. The inscriptions done on these caves are believed to be from 1st and 2nd centuries BC.<br />
<br />
While exploring this destination, do not forget to visit the luxuriant Nandankanan Zoological Park (closed on Mondays and government holidays). This park comprises a zoo and a botanical garden and it sprawls across an area of 400 hectares. You can also enjoy a lion and tiger safari ride at this park.<br />
<br />
After sightseeing, get back to the hotel and stay overnight.</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 6:</b> Departure
								</p>
								<p class="aj">On sixth day, check out from the hotel and proceed to Bhubaneswar airport/railway station for your onward journey.</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.shreetoursandtravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Jagannath Puri Rath Yatra Package - 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="120080"/>
						</form>
						</div>
						
						";i:1;s:72:"Book Jagannath Puri Rath Yatra Package - 5 Nights / 6 Days Tour Packages";i:2;s:129:"book jagannath puri rath yatra package - 5 nights / 6 days tour packages, heritage tour packages, bhubaneswar, puri tour packages";i:3;s:167:"Shree Tours & Travels offers Jagannath Puri Rath Yatra Package - 5 Nights / 6 Days tour package, budget Heritage tour packages for Bhubaneswar, Puri at exciting price.";i:4;s:422:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Bhubaneswar, Puri"        
		                 },
		      "description": "",
		      "name": "Jagannath Puri Rath Yatra Package",
		      "telephone": "+91-9871034578"
		    }
		    </script>
			";i:5;N;}