a:6:{i:0;s:12673:"				<div class="h1"><h1>Auli Skiing Tour (Winter Special)</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.heavensgroup.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.heavensgroup.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Auli Skiing Tour (Winter Special)</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">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Haridwar, Joshimath, Rishikesh, Auli</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.heavensgroup.co.in/travel-inquiry.htm">
						<input type="hidden" name="subject" value="Auli Skiing Tour (Winter Special) - 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="45246"/>
						</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_10/278544/89436.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/278544/89436.jpg"  width="150" height="150"    alt="Auli Skiing Tour (Winter Special)" title="Auli Skiing Tour (Winter Special)" /></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 at Delhi
								</p>
								<p class="aj">On your arrival at New Delhi airport meet our tour representative and get transferred to your pre- booked hotel.<br />
<br />
The capital city of India welcomes all the tourists with a number of attractions and heritage sites which form a major part of Indian tourism. Delhi is majorly known for its street food and fine-quality restaurants which attracts a lot of food lovers and other tourists to the destination. Even if you are planning your first trip, the city will surely not disappoint you in any way. The city offers something for every traveler.<br />
<br />
Enjoy breakfast and proceed to visit some of the important tourist places and major UNESCO sites of the country including Red Fort, Qutub Minar and Humayun’s Tomb.<br />
<br />
As the name suggests, Red Fort (closed on Mondays) is a red sand stone structure that paints a picture of Mughal era in India. Red Fort is the place from where the Prime Minister of India addresses the nation every year on the occasion of Independence Day (15 August). The star attraction of the monument is the sound and light show which tells about the history of Mughal era in the evenings.<br />
<br />
Qutub Minar is another prime attraction, we take you to. Built by Qutub-ud-din-Aibak in 1192, it is one of the finest and tallest minarets in the world. It is a monument that signifies the might of Islam. Also, you visit the Humayun’s Tomb, which was originally commissioned by Humayun’s first wife, Bega Begum. The first garden tomb of India, Humayun’s Tomb speaks much about the decline of the Mughal era and rise of British Empire during those times.<br />
<br />
Get back to the 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> Delhi - Haridwar (230 km/ 5 to 6 hours drive)
								</p>
								<p class="aj">Today, have breakfast and leave for Haridwar, one the holy Hindu cities of Uttarakhand.<br />
<br />
Haridwar is one of the seven holiest places for Hindus. It is the first place where the holy river Ganga enters into the Northern plains. People from all over the world visit the destination to take a dip in the holy waters of the river, which is believed to wash away the sins of every individual. Haridwar is also one of the four cities where Kumbh Mel air organized.<br />
<br />
Check-in at the hotel. Relax for some time in the hotel room. Later, in the evening visit Har-ki-Pauri, a holy Ghat on river Ganga, for Ganga Arti (river worship ceremony). It is going to be a memorable experience. Treat your eyes to the mesmerizing view of the shadow of the lamps falling in the water of the river.<br />
<br />
Return back to the 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 3:</b> Haridwar - Joshimath (276 km/ 8 to 9 hours drive)
								</p>
								<p class="aj">On third day of your Auli Skiing tour, savor breakfast and drive to Joshimath. On your way to Joshimath visit Devprayag, Rudraprayag and Karnprayag.<br />
<br />
Also referred to as Jyotirmath, Joshimath is the gateway to one of the sacred pilgrimage sites, Badrinath. Devprayag (confluence of two holy rivers- Bhagirathi and Aalknanada), Rudraprayag (Alaknanda meets Mandakini) and Karnpryag (Alaknanda is joined by Pinda river) are the three extremely popular, out of Panch Prayags.<br />
<br />
Upon reaching Joshimath, 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 4:</b> Joshimath - Auli (16 km/ 2 hours drive)
								</p>
								<p class="aj">Today morning have breakfast and straight away drive to Auli which is around 16km; one of the major Skiing destinations in Uttarakhand. Set in the snow-capped Garhwal Himalayas, Auli is a great destination for nature lovers and adventure enthusiasts. To reach Auli, you can also take the 3.9 km long cable car (longest in Asia) to reach the beautiful Auli Ski Resort. On reaching Auli, enjoy skiing with professional instructors present at the site. Stay overnight at Auli Tourist Bungalow.</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> Explore Auli
								</p>
								<p class="aj">This morning, step out to explore the scenic beauty of Auli and indulge in skiing. With all your skiing equipment, go ahead for experiencing skiing at its best. The Auli ski resort has one Poma lift (open cable car) and one chair car. You will be getting instructions from qualified instructors at the site. The perfectly set ski slopes of Auli offer a panoramic view of the high Himalayan peaks like Nanda Devi (7818 m).</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> Explore Auli
								</p>
								<p class="aj">Continue your skiing at the Auli Ski Resort. Ski through the most spectacular snow slopes of Asia and enjoy the view of snow capped peaks all around. Feel the excitement building up while you roll away in the snow. Overnight stay in Auli.</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 7:</b> Joshimath - Rishikesh (254 km, 7-8 hrs drive)
								</p>
								<p class="aj">This morning you return to Joshimath. Seek blessings at Narsingh Temple- the winter of Lord Badri, this temple is otherwise dedicated to Lord Narsingh- 4th incarnation of Lord Vishnu- half lion and half human and Shankaracharya Math- a math eastablished by Adi Shankaracharya during the 8th century. Later, start driving back to Rishikesh. On reaching, check-in at the hotel. Have a comfortable overnight stay at 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 8:</b> Rishikesh - Delhi (230 km, 5-6 hrs drive)
								</p>
								<p class="aj">Munch some healthy breakfast in the morning and then leave for a sightseeing tour of Rishikesh. Begin with a visit to Ram Jhulla and Laxman Jhulla- 2 popular suspension bridges over river Ganges; Sivananda Ashram- soak the serenity and simple lifestyle lead here; Triveni Ghat- the confluence of 3 holy rivers Ganga, Yamuna and Saraswati; Parmarth Niketan- a world-popular Ashram and Gita Kutir- another ashram popular for its meditation sessions. Later, start driving to Delhi. You will be transferred to the airport/railway station for further departure.<br />
<br />
The tour ends here.</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.heavensgroup.co.in/travel-inquiry.htm">
						<input type="hidden" name="subject" value="Auli Skiing Tour (Winter Special) - 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="45246"/>
						</form>
						</div>
						
						";i:1;s:72:"Book Auli Skiing Tour (Winter Special) - 7 Nights / 8 Days Tour Packages";i:2;s:163:"book auli skiing tour (winter special) - 7 nights / 8 days tour packages, hill station tour packages, new delhi, haridwar, joshimath, rishikesh, auli tour packages";i:3;s:193:"Heavens Group offers Auli Skiing Tour (Winter Special) - 7 Nights / 8 Days tour package, budget Hill Station tour packages for New Delhi, Haridwar, Joshimath, Rishikesh, Auli at exciting price.";i:4;s:452:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Haridwar, Joshimath, Rishikesh, Auli"        
		                 },
		      "description": "",
		      "name": "Auli Skiing Tour (Winter Special)",
		      "telephone": "+91-9034015553"
		    }
		    </script>
			";i:5;N;}