a:6:{i:0;s:9153:"				<div class="h1"><h1>Auli Tour Package from Delhi</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.gomyjourney.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.gomyjourney.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Auli Tour Package from Delhi</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/17434/133292.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/17434/133292.jpg"  width="150" height="150"    alt="Auli Tour Package from Delhi" title="Auli Tour Package from Delhi" /></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, Haridwar, Rishikesh, Auli, Jyotirmath</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.gomyjourney.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Auli Tour Package from Delhi - 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="74679"/>
						</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: Delhi - Haridwar (230 kms, 5-6 hrs drive)
									</p>
									<div class="data p10px">In the morning, after breakfast, begin your drive to Haridwar. On arrival, complete the check-in formalities at the hotel. You are now free. One of the holiest places for Hindus, Haridwar is largely visited by devotees of Lord Shiva and River Goddess Ganga. The venue of Magh Mela and world-renowned Kumbh Mela, Haridwar is a treat for your spiritual and religious self. In the evening, visit the largest of sacred bathing ghats of Haridwar: Har-ki-Pauri for attending the spectacular Ganga Aarti, a sight that you will remember for your lifetime.<br />
<br />
Stay overnight.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 2: Haridwar – Joshimath (276 km, 8-9 hours' drive)
									</p>
									<div class="data p10px">Post breakfast, get on the road and start driving to Joshimath. On the way, halt at Devprayag (one of the Panch Prayag of River Alaknanda where it meets with River Bhagirathi), Rudraprayag (the meeting point of River Alaknanda and River Mandakini) and Karnprayag (the confluence of Rivers Alaknanda and Pindar). As you reach Joshimath, check in at the hotel Hotel. If time and energy permits, you can explore the surroundings. The gateway to Hem Kund and Badrinath, Joshimath receives a huge number of Sikh and Hindu between May and October. It is also the base for a number of popular treks such as Kuari Pass Trek and Valley of Flower trek.<br />
<br />
Overnight stay.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 3: Joshimath – Auli (16 km, 2 hours' drive)
									</p>
									<div class="data p10px">On the 3rd day after breakfast, start your drive to Auli 16 km. Lying between the altitude range of 2500 m to2050 m, Auli is one of premier Skiing Resort in India. If you do not wish to travel by road, the other option is to take the 3.9 km cable car ride. The longest cable car ride in Asia, it takes you to a scenic Ski resort. On the way, treat your eyes to the mesmerizing views of the surroundings. On arriving, complete the check-in. Later on, you can enjoy Skiing on the slopes of Auli with the assistance of the resort's instructors. The day is going to be an exciting one.<br />
<br />
Overnight stay at one of the resorts in Auli.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 4: Auli
									</p>
									<div class="data p10px">You can partake in Skiing at Auli, on a full board basis. Skiing equipment will be made available to you. If you are a beginner, you are going to get full assistance. The ski slopes offer a panoramic view of high Himalayan peaks including Nanda Devi, 7818 m. A 500 m long ski-lift and an 800 m long chair-lift connect the upper and lower snow slopes of Auli.<br />
<br />
You can visit Gurso Bugyal, a picturesque location from where you get to enjoy magnificent views of Trishul Peak, Dron Parvat and Nanda Devi adding on to its beauty is the green surrounding that makes it look more enthralling. Within close vicinity, lies Chattrakund, a pristine lake that is known for its crystal clear blue waters. It is also an ideal picnic spot for those who love nature and its silence. Another important attraction you may visit in Auli is Auli Artificial Lake which is one of the highest man-made lakes in the World. Surrounded by mighty peaks of Himalayas, the lake was developed by government to produce artificial snow.<br />
<br />
Overnight stay in Auli.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 5: Auli - Rishikesh (254 km, 7-8 hours' drive)
									</p>
									<div class="data p10px">Today, you visit the popular religious sites of the area- Narsingh Temple and Shankracharaya Math. Later in the day, hit the road to Rishikesh- the yoga capital of the World, which is home to several Ashrams. As you reach, check into the hotel. Rishikesh shot to fame in the world when the Beatles came here to visit the Maharishi Mahesh Yogi's Ashram. If time and energy permits, you can explore the surroundings on your own. Rishikesh is just 24 km from Haridwar. The place is not only known for its ashrams, yoga and meditation opportunities, but it is also popular as a river rafting destination.<br />
<br />
Stay Overnight.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 6: Departure
									</p>
									<div class="data p10px">After breakfast on the 6th day of the tour, partake in sightseeing of Rishikesh including Ram Jhula- a popular landmark erected in 1986, this iron suspension bridge over River Ganges is placed at Muni ki Reti; Laxman Jhula- another iron bridge over the Ganges, it is 450 feet in length; Triveni Ghat- the confluence of holy Rivers Ganga, Yamuna and Saraswati, it is also a revered bathing spot; Parmarth Niketan Ashram- founded in 1942 by Pujya Swami Shukdevanandji Maharaj, it is placed on the banks of the Ganges; Sivananda Ashram- another popular ashram offering Yoga and Meditation along with propounding a simple way of life; and Gita Kutir Tapovan Ashram- founded in 1974 by Sri Gita Nand ji Maharaj- the ashram works for social welfare of saints, yogis and monks. Thereafter, start driving 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:67:"Book Auli Tour Package from Delhi - 5 Nights / 6 Days Tour Packages";i:2;s:153:"book auli tour package from delhi - 5 nights / 6 days tour packages, valley tour packages, new delhi, haridwar, rishikesh, auli, jyotirmath tour packages";i:3;s:191:"Go My Journey Pvt Ltd offers Auli Tour Package from Delhi - 5 Nights / 6 Days tour package, budget Valley tour packages for New Delhi, Haridwar, Rishikesh, Auli, Jyotirmath at exciting price.";i:4;s:448:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Haridwar, Rishikesh, Auli, Jyotirmath"        
		                 },
		      "description": "",
		      "name": "Auli Tour Package from Delhi",
		      "telephone": "+91-9711877344"
		    }
		    </script>
			";i:5;N;}