a:6:{i:0;s:13020:"				<div class="h1"><h1>Delightful Uttarakhand Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.apexholidaysandadventures.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.apexholidaysandadventures.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Delightful Uttarakhand 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">
						8 Nights / 9 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Haridwar, Nainital, Dehradun, Kausani, Bhimtal, Corbett, Auli, Jyotirmath, Binsar</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.apexholidaysandadventures.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Delightful Uttarakhand 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="70019"/>
						</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_15/426591/126983.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/426591/126983.jpg"  width="150" height="150"    alt="Delightful Uttarakhand Tour" title="Delightful Uttarakhand 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> Delhi (Arrival) - Haridwar
								</p>
								<p class="aj">On reaching Delhi International Airport, meet our  representative who assists while you begin your road trip to Haridwar (6-7 hours journey). On reaching Haridwar, check-in to the resort. Haridwar is one of the seven holiest places for Hindus. The destination is popular for its spiritual and tranquil ambiance. People from all over the world visit the place to take a dip in the holy water of Ganga, which is believed to wash away all the sins.<br />
Stay overnight 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 2:</b> Dehradun - Haridwar - Auli
								</p>
								<p class="aj">This morning, you start driving from Haridwar to Auli. Set amid the snow-capped Garhwal Himalayas, Auli is a beautiful destination known for its scenic and unexplored beauty. The place is best known for its ski resorts, which makes it popular amongst skiers. The destination offers breathtaking views of the snow covered mountains all around.<br />
After reaching Joshimath, get ready to travel through Asia’s longest ropeway which connects Joshimath-Auli. On reaching Auli, take a transfer to the Hotel, Auli. En-route, enjoy looking at the picture perfect locations. You also get to enjoy spectacular views of Nanda Devi Peak.<br />
In the evening, enjoy bonfire with music and dinner. 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 3:</b> Joshimath - Auli
								</p>
								<p class="aj">In the morning, leave for a sightseeing tour in and around Joshimath, a small and beautiful hill town of Uttarakhand. The alluring valley is set at the foothills of the Himalayas and lies en-route from Haridwar to the sacred shrine of Badrinath (Lord Shiva).<br />
Visit major attractions of Joshimath like Narsimha Temple- dedicated to Lord Narasimha, the temple is one of the "Divya Desams" or the 108 Vishnu temples that were give immense respect by the 12 Alvars (poet-saints), Shankracharya Cave, Tapovan Temple and Hot Sulfur Water Spring. After sightseeing, board the ropeway back to Auli. Later, enjoy a bonfire along with music and stay overnight at 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 4:</b> Auli - Kausani
								</p>
								<p class="aj">On this 4th day of the tour, start driving to Kausani. Kausani is a picturesque hill station set amid the snow covered mountains and lush greenery. Also known as ‘Mini-Switzerland of India’, Kausani is the perfect getaway from the hustle and bustle of city life. The place offers a serene and rejuvenating ambiance to all the travelers where they can unwind. Visit attractions of Kausani like Anashakti Ashram- a study cum research center, which also has a museum and accommodation unit and Chay-Baghaat- tea gardens located at the outer ridge of the town. There are a number of view points at Kausani, where you can enjoy the sunset views over the Himalayan ranges. After sightseeing, return to the hotel for dinner and 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 5:</b> Kausani - Binsar
								</p>
								<p class="aj">This morning, you leave for your next destination, Binsar. Binsar is popular for its wildlife sanctuary. Nature lovers and wildlife enthusiasts visit the destination from all over for its exotic wildlife, variety of trees, bushes and grasses. After having your lunch at the resort, go for a stroll around the place or just relax in your room. Have your dinner and stay overnight 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 6:</b> Binsar – Bhimtal
								</p>
								<p class="aj">You leave for your next destination- Bhimtal this morning. Popular as the only natural Lake District in India, Bhimtal is best known for its picturesque lake. Located close to Nainital, Bhimtal offers a cool and pleasant ambiance to all the tourists.<br />
On your way to Bhimtal, visit Ghorakhal and Naukuchiatal and Sattal Lake. Naukuchiatal is a beautiful natural lake. The lake is popular for activities like angling, hiking, paragliding and more. Sattal Lake is an interconnected group of seven freshwater lakes which are located in the lower Himalayan range. Later visit Bhimtal Lake, which is one of the largest lakes in this region. The lake has a large Victorian dam on one side and terraced flower gardens on the other side. The lake is the centre of tourist attractions like Bhimeshwar Mahadev Temple, Victorian dam, Fish Aquarium on Island, Butterfly Museum, Nag Temple at Karkotaka Hill (5 Km trek), Pilot Baba Ashram at Gethiya and Folk Art Museum. Return to the hotel for dinner 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 7:</b> Bhimtal - Nainital
								</p>
								<p class="aj">After having breakfast in the morning, head to your next destination, Nainital. Well known as the ‘Lake district of Uttarakhand’, Nainital is dotted with ancient temples. The destination is blessed with natural beauty, pleasing weather and serene ambiance. On reaching, visit tourist attractions like Hanuman Mandir, Waterfalls and Observatory. Later, go for a cable car ride to Tiffin Top and enjoy boat ride at Naini Lake. You can then go for shopping at Tibetan market and Bhutiya Bazaar at Mall Road.<br />
Enjoy your dinner 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 8:</b> Nainital - Corbett
								</p>
								<p class="aj">This morning, you start driving towards Jim Corbett National Park and Tiger Reserve. Jim Corbett National Park is one of the oldest national parks in India, which was established in the year 1936. This national park is a favorite among tourists and wildlife lovers. On your way, visit Khurpatal and Waterfalls. On reaching, go for jeep safari in the national park and explore the exotic flora and fauna of the park. Those who are lucky enough may get a chance to spot a tiger. Later, return to the hotel for bonfire and dinner. Stay overnight at the resort.</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 9:</b> Corbett – Haridwar- Delhi-Departure
								</p>
								<p class="aj">This is the last day of the Delightful Uttarakhand Tour. Today, you drive to Haridwar/Dehradun to board flight for Delhi. On reaching Delhi, drive to the international airport to board flight back home.</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.apexholidaysandadventures.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Delightful Uttarakhand 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="70019"/>
						</form>
						</div>
						
						";i:1;s:66:"Book Delightful Uttarakhand Tour - 8 Nights / 9 Days Tour Packages";i:2;s:196:"book delightful uttarakhand tour - 8 nights / 9 days tour packages, valley tour packages, new delhi, haridwar, nainital, dehradun, kausani, bhimtal, corbett, auli, jyotirmath, binsar tour packages";i:3;s:256:"Book Delightful Uttarakhand Tour - 8 Nights / 9 Days tour packages from Apex Holidays and Adventures - Get attractive 8 Nights / 9 Days Valley  tour packages for  New Delhi, Haridwar, Nainital, Dehradun, Kausani, Bhimtal, Corbett, Auli, Jyotirmath, Binsar.";i:4;s:491:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Haridwar, Nainital, Dehradun, Kausani, Bhimtal, Corbett, Auli, Jyotirmath, Binsar"        
		                 },
		      "description": "",
		      "name": "Delightful Uttarakhand Tour",
		      "telephone": "+91-8554854111"
		    }
		    </script>
			";i:5;N;}