a:6:{i:0;s:6869:"				<div class="h1"><h1>Rishikesh With Auli Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.abhisarikaholidays.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.abhisarikaholidays.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Rishikesh With Auli Tour</p>
				<br />
				
									<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>
					
					<table class="w100 formTable imgWidth">
					<tr>
					
											<td class="p10px vat imgWidth150 w150px">
						<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_1/28170/192120.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/28170/192120.jpg"  width="150" height="150"    alt="Rishikesh With Auli Tour" title="Rishikesh With Auli Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											
					<td class="p10px">
											<p class="mb5px"><b>Duration :</b> 
						5 Nights / 6 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> New Delhi, Rishikesh, Auli</p>
												<p><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.abhisarikaholidays.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Rishikesh With Auli Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="118475"/>
						</form>
						</p>
											</td>
					</tr>
					</table>
										<br />
					
					<div class="packageTabs myTabs horizontal mc"><!--MY TABS STARTS-->
					<ul class="fo lsn m0px p0px">
					
											<li id="tab2"><a href="#data2">Itinerary</a></li>
												<li id="tab4"><a href="#data4">Tour Detail</a></li>
												<li id="tab6"><a href="#data6">Terms &amp; Conditions</a></li>
											</ul>
					
					
											<div class="ic bdr" id="data2"><!--DATA2 START-->
						<br />
						<ul class="lsn m0px p0px">
									<li>
									<p class="b mb5px">Day 1: Arrival
									</p>
									<div class="data p10px">start the early morning road trip from Delhi to Rishikesh. Afternoon arrival. Complete the check-in formalities and rest for a while. Rishikesh is a beautiful pristine town, famed as the ‘Yoga Capital of India’. The place is dotted with several temples and ashrams. The evening is scheduled for attending the very popular Ganga Aarti at Triveni Ghat. This truly is one of the best lifetime memories.<br />
<br />
Dinner and overnight stay the hotel.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 2: Rishikesh - Auli
									</p>
									<div class="data p10px">Breakfast is followed by check -out formalities at the hotel. Start driving towards Auli, one of the best ski resorts in the world. On the way, halt at Devprayag- the confluence of River Alaknanda and River Bhagirathi, and Rudraprayag- the meeting point of Rivers Alaknanda and Mandakini. Later, continue your journey. Evening arrival in Auli. Check-in at the hotel. Thereafter, enjoy a visit to the local market. Auli is a beautiful hill station in Uttarakhand state<br />
<br />
Dinner and overnight stay the hotel.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 3: Auli (Skiing)
									</p>
									<div class="data p10px">after breakfast, get all set for enjoying Skiing, one of the best winter sports in India. The Ski slopes of Himalayas are pretty challenging and offer breathtaking views of the mighty Himalayan peaks. These slopes are quite popular amid avid-skiers who come here from all around the world. However, if you are a beginner, there are experts to teach you. All the equipment is available on rent here.<br />
<br />
Overnight stay.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 4: Auli - Rishikesh
									</p>
									<div class="data p10px">Today, have an early morning check- out from the hotel. Start your return journey to Rishikesh. Evening arrival. Complete the check- in at the hotel. The day is at leisure. You can explore the place on your own.<br />
<br />
Overnight stay in Rishikesh.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 5: Rishikesh Sightseeing
									</p>
									<div class="data p10px">Post breakfast, get ready for sightseeing including the popular attractions of Rishkesh such as Ram Jhula, Laxman Jhula, Neelkanth Mahadev Mandir, Bharat Mandir, and Parmarth Niketan Ashram. Later, head towards Shivpuri to partake in adventure activities such as river rafting, bungee jumping and camping. The day is going to be a mix of stress-free sightseeing and thrilling activities.<br />
<br />
Stay overnight.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 6: Departure
									</p>
									<div class="data p10px">Have a leisurely breakfast, and complete the check- out formalities from the hotel. Now, start your road journey back to Delhi. As you reach Delhi, get transferred to the Airport / Railway Station for your onward journey.</div>					
									</li>
									<br />					
							</ul>						<!--DATA2 EMD--></div>
											
						<div class="ic bdr" id="data4"><!--DATA4 START-->
						<br />
													<p class="b mb5px dif">Inclusions :</p>
							<ul>
																	<li>Hotel</li>
																				<li>Sightseeing</li>
																	</ul>
							<br />
													<!--DATA4 EMD--></div>
												<div class="ic bdr" id="data6"><!--DATA6 START-->
						<br />
						* 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. ~^#^~						<!--DATA6 EMD--></div>
											
					<!--MY TABS END--></div>
					";i:1;s:63:"Book Rishikesh With Auli Tour - 5 Nights / 6 Days Tour Packages";i:2;s:129:"book rishikesh with auli tour - 5 nights / 6 days tour packages, heritage tour packages, new delhi, rishikesh, auli tour packages";i:3;s:165:"Abhisarika Holidays offers Rishikesh With Auli Tour - 5 Nights / 6 Days tour package, budget Heritage tour packages for New Delhi, Rishikesh, Auli at exciting price.";i:4;s:422:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Rishikesh, Auli"        
		                 },
		      "description": "",
		      "name": "Rishikesh With Auli Tour",
		      "telephone": "+91-9435143321"
		    }
		    </script>
			";i:5;N;}