a:6:{i:0;s:14213:"				<div class="h1"><h1>Explore North Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.grabyourholidays.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.grabyourholidays.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Explore North 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">
						9 Nights / 10 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Mussoorie, Haridwar, Nainital, Kausani, Rishikesh, Corbett</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.grabyourholidays.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Explore North 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="83254"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<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_16/457916/147372.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457916/147372.jpg"  width="150" height="150"    alt="Explore North Tour" title="Explore North Tour" /></a></p></div></li>
																		<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_16/457916/147373.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457916/147373.jpg"  width="150" height="150"    alt="Explore North Tour" title="Explore North Tour" /></a></p></div></li>
																		<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_16/457916/147375.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457916/147375.jpg"  width="150" height="150"    alt="Explore North Tour" title="Explore North Tour" /></a></p></div></li>
																		<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_16/457916/147376.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457916/147376.jpg"  width="150" height="150"    alt="Explore North Tour" title="Explore North Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Meals except given in inclusions<br />
Monuments Entrances Fee.<br />
Any domestic or international airfare<br />
Medical and insurance of any kind. Any expenses arising out of unforeseen circumstances like flight delay/cancellation/hike in fare, strike or any other natural calamities<br />
Personal nature Expenses i.e. Telephone Calls, Laundry, Soft / Hard Drinks Meals, Tipping etc. Camera Fee at.<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 – Nainital (310kms / 8hrs)
								</p>
								<p class="aj">Arrive & Pick up from Delhi Railway Station/Airport, continue drive to Nainital. Lunch on the way. On arrival check in Hotel. Evening free for boat ride at Naini Lake (At their own). Dinner and overnight stay at Hotel in Nainital.</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> Nainital (Local Sight Seeing)
								</p>
								<p class="aj">After breakfast drive for lake tour of Bhim Tal, Sat Tal and Naukuchia Tal. Drive back to Hotel. Lunch at Hotel. After lunch boat ride at Naini Lake & Rope way (At their own). Evening enjoy Mall Road by walk. Dinner and overnight stay at Hotel in Nainital.</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> Nainital – Kausani (125kms/5 hrs.)
								</p>
								<p class="aj">After leisure breakfast check out from Nainital hotel later drive to Kausani via Almora. Kausani is ideal for those who seek to escape from the din and dust, hustle and bustle of big cities and wish to spend a quiet holiday in the lap of nature. Check in Hotel. After fresh up visit Sun set at View Point, Gandhi Ji Ashram. Dinner and overnight stay at Hotel in Kausani.</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> Kausani (Local Sight Seeing)
								</p>
								<p class="aj">Day at Leisure or visit local sight-seeing i.e. Baijnath & Bageshwar. Dinner and overnight stay at Hotel in Kausani.<br />
There are many places of tourism and historic importance in Bageshwar. There are many old temples dating back to tenth century. Among them are the Baijnath temple and Bagnath temple; the latter is situated in the middle of the town just across the confluence of Saryu and Gomti. Chandika and Neeleshwar temples are other important temples in the district. These are on the top of the city (hills) and provide a nice glimpse of the city.<br />
Baijnath is a town in Kangra district of Himachal Pradesh. It is about 50 kilometres from Dharamshala which is the district headquarters.The very famous ancient temple of Lord Shiva (Baijnath) is situated here which is believed to be one of twelve jyotirlingas according to popular legends also giving the town its name</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 – Corbett National Park (190km/6hrs)
								</p>
								<p class="aj">After breakfast, drive from Kausani to Corbett National Park enroute visiting Ranikhet sightseeing of places in and around Ranikhet like Hairakhan Temple, Chaubatia and Bhaludam etc. later drive to Corbett National Park. Dinner and overnight stay at Hotel in Corbett.</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> Corbett National Park
								</p>
								<p class="aj">After leisurely breakfast Visit Corbett National Park. Located in the foothills of the Himalayas is the majestic Corbett National Park. Home to a variety of flora and fauna, it is famous for its wild population of Tigers, Leopards and Elephants. Dinner and overnight stay at Hotel in Corbett.</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> Corbett – Haridwar (265 kms / 7hrs)
								</p>
								<p class="aj">After having early breakfast check out from the hotel and drive to Haridwar on arrival check in at your pre-booked hotel in Haridwar. Evening visit Har-ki-Pauri to Join Ganga Arti. Dinner and overnight stay at Hotel in Haridwar.</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> Haridwar to Mussoorie via Rishikesh (85 kms/ 4hrs
								</p>
								<p class="aj">After having breakfast drive to Rishikesh visit Laxman Jhula, Ram Jhula & other temple later continue drive to Mussoorie being at an average altitude of 1,880 metres (6,170 ft.), Mussoorie, with its green hills and varied flora and fauna, is a fascinating hill resort. Commanding snow ranges to the north-east and glittering views of the Doon Valley and Shivalik ranges in the south, the town was once said to present a ‘fairyland’ atmosphere to tourists on arrival check in at Hotel in Mussoorie. After fresh up visit Mall Road. Dinner and overnight stay at Hotel in Mussoorie.</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> Mussoorie (Local Sight Seeing)
								</p>
								<p class="aj">After having breakfast visit Kempty fall (15 kms from Mussoorie on the Yamunotri Road is the most fascinating and the biggest water fall, Kempty located in a beautiful valley of Mussoorie.), Company Garden, Mall road, Rope way (One can enjoy a thrilling ropeway ride to Gun Hill, the second highest peak of Mussoorie(2122 mts). The peak offers a panoramic view of the Himalayan ranges. ). Dinner and overnight stay at Hotel in Mussoorie.</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 10:</b> Mussoorie – Delhi (285 kms 8 hrs.)
								</p>
								<p class="aj">Morning after having Breakfast drive via Dehradun to Delhi on arrival at Delhi transfer to Railway Station / Airport to connect the Train/ Flight for onward destination.</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">Exclusions :</p> <ul><li>Meals except given in inclusions</li><li>
Monuments Entrances Fee.</li><li>
Any domestic or international airfare</li><li>
Medical and insurance of any kind. Any expenses arising out of unforeseen circumstances like flight delay/cancellation/hike in fare, strike or any other natural calamities</li><li>
Personal nature Expenses i.e. Telephone Calls, Laundry, Soft / Hard Drinks Meals, Tipping etc. Camera Fee at.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p>* Rates are subject to availability.&nbsp;<br />
* Rates can change without prior notice.&nbsp;<br />
*&nbsp;Peak Season / Weekend Surcharges may be applicable at the time of confirmation

<p>note:&nbsp;&quot;Each clients travelling in India or abroad has to ensure they carry all the related travel documents like valid passports, visa or other valid ID and address proof. Due to lack of any of these documents no hotels will allow check-in. We will not be responsible for any such kind of lose in services and full retention will be charged&quot;.												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.grabyourholidays.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Explore North 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="83254"/>
						</form>
						</div>
						
						";i:1;s:58:"Book Explore North Tour - 9 Nights / 10 Days Tour Packages";i:2;s:165:"book explore north tour - 9 nights / 10 days tour packages, valley tour packages, new delhi, mussoorie, haridwar, nainital, kausani, rishikesh, corbett tour packages";i:3;s:216:"Book Explore North Tour - 9 Nights / 10 Days tour packages from Grab Your Holidays - Get attractive 9 Nights / 10 Days Valley  tour packages for  New Delhi, Mussoorie, Haridwar, Nainital, Kausani, Rishikesh, Corbett.";i:4;s:840:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Mussoorie, Haridwar, Nainital, Kausani, Rishikesh, Corbett"        
		                 },
		      "description": "Meals except given in inclusions
Monuments Entrances Fee.
Any domestic or international airfare
Medical and insurance of any kind. Any expenses arising out of unforeseen circumstances like flight delay/cancellation/hike in fare, strike or any other natural calamities
Personal nature Expenses i.e. Telephone Calls, Laundry, Soft / Hard Drinks Meals, Tipping etc. Camera Fee at.",
		      "name": "Explore North Tour",
		      "telephone": "+91-8888872247"
		    }
		    </script>
			";i:5;N;}