a:6:{i:0;s:13293:"				<div class="h1"><h1>Delhi - Corbett - Kausani - Nainital - Delhi 05 Night / 06 Days Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.getsholidayindiatour.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.getsholidayindiatour.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Delhi - Corbett - Kausani - Nainital - Delhi 05 Night / 06 Days 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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Nainital, Kausani, 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.getsholidayindiatour.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Delhi - Corbett - Kausani - Nainital - Delhi 05 Night / 06 Days 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="117882"/>
						</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_17/507555/191265.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/507555/191265.jpg"  width="150" height="150"    alt="Delhi - Corbett - Kausani - Nainital - Delhi 05 Night / 06 Days Tour" title="Delhi - Corbett - Kausani - Nainital - Delhi 05 Night / 06 Days Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Rates per person on twin sharing in Indian Rupees based on base category room at all hotels. <br />
Transport using Indigo/Dezire for 02/03 pax; Innova for 04 Till 06 Pax only & instead of till 06 pax, rates shall be on request basis.<br />
Daily Breakfast & Dinner at respective Hotels/Resort included (Veg at religious destinations)<br />
Transport cost included with all toll tax, parking, interstate taxes, drivers allowance. <br />
Sightseeing as per the itineraries.<br />
Rates are valid Till March 2018.<br />
<br />
Note: The above mentioned rates are not valid during Christmas & New Year, Long Weekends, National holidays & festive period. All rates are subject to change without prior notice.GST @ 5% extra on total billing.<br />
Airfare/Transport is not on disposable basis.<br />
Jeep Safari, Boat rides, Pony rides, Cable Car rides, Train Fares, Air Fares, Personal expenses are not included.<br />
Meals except including in the costs, Boating, Ropeway etc during sightseeing are not included. <br />
AC would not run on Hill drives.<br />
Entrance fees to the places of interest to visit.<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 - Corbett (260 Kms)
								</p>
								<p class="aj">Arrive Delhi and drive to Corbett National Park, India's first and finest national park. <br />
The Corbett Park inhabits a wide variety of flora & fauna. Corbett is famous for its population of Tigers, Elephants and other wild animals. On arrival check in to the hotel. 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> Corbett - Ranikhet - Kausani (155 Kms)
								</p>
								<p class="aj">Early morning Jeep Safari of National Park (your own cost). Later back to hotel after breakfast check out from the hotel and depart for Kausani en route visit Ranikhet. There are very few places in the Himalayas which can compare with the beauty of Kausani. Kausani offers the magic of the deep pine forests and the majestic mountains. Kausani the birthplace of the famed poet Sumitra Nandan Pant is often referred to as the 'Switzerland of India. On arrival Kausani check in at hotel. Evening free to explore the Kausani town. 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 3:</b> In Kausani
								</p>
								<p class="aj">Morning after breakfast at hotel. Fullday visiting Baijnath temples, Someshwar, Tea Gadens, Tea Factory, Ana Shakti Ashram, Pant Museum. At sunset enjoy a thrilling view of Himalayas. 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 4:</b> Kausani - Nainital (112 Kms / 3 to 4 hrs)
								</p>
								<p class="aj">Morning after breakfast drive to Nainital, the attractive hill station of Uttaranchal, and the largest town of Kumaon. Located around a beautiful lake it is one of the most enchanting tourist destinations of India. En route visit Bhimtal, Naukuchiyatal, & Sattal, later proceed to Nainital. On arrival check in to the hotel. 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 5:</b> : In Nainital
								</p>
								<p class="aj">Morning after breakfast you will proceed for a local tour of Nainital visit Snow View, Naini Peak, Nanda Devi Temple & Hanuman Garhi. Evening walk on Mall road, and shopping around Mall road. 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> Nainital - Delhi (300 kms)
								</p>
								<p class="aj">Morning after breakfast at hotel check out hotel and drive to Delhi on arrival drop at Delhi airport / railway station to board the flight/train and return back home.	   <br />
Tour Conclude</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>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>GST @ 5% extra on total billing.</li><li>
Airfare/Transport is not on disposable basis.</li><li>
Jeep Safari, Boat rides, Pony rides, Cable Car rides, Train Fares, Air Fares, Personal expenses are not included.</li><li>
Meals except including in the costs, Boating, Ropeway etc during sightseeing are not included. </li><li>
AC would not run on Hill drives.</li><li>
Entrance fees to the places of interest to visit.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>Prices valid for minimum 02 - 06 people traveling together in one vehicle.</li>
	<li>Check-in / check-out time at all the properties would at 12:00 hrs (noon)</li>
	<li>Early check at all the properties would be subject to the availability at that time.</li>
	<li>All the above mentioned rates are per person rates on twin/double sharing basis.</li>
	<li>Child cost is on the basis of sharing room and bed with their parents.</li>
	<li>The above rates are applicable for resident Indian citizens only.</li>
</ul>

<p>&nbsp;<br />
<strong>BOOKING PROCEDURE:-</strong>

<ul>
	<li>All booking request for the packages has to be sent to us only by writing e-mail at: <a href="mailto:uttarakhand@utsindia.net">uttarakhand@utsindia.net</a> <a>/domestic@utsindia.net</a>.</li>
	<li>Details required for Confirmation:</li>
	<li>Please provide the following details along with your booking request:</li>
	<li>Clients or Group Name.</li>
	<li>Total No of people along with adult sharing the rooms and child with or without bed.</li>
	<li>Gender, Age, Valid photo id proof with address of all travelling passengers</li>
	<li>Date of Arrival and Departure with flight details (if travelling via air).</li>
	<li>Reference No: As soon as we receive a booking request a file no. will be sent to you, please note the same for future correspondence.</li>
	<li>Re-Confirmation: All bookings should to be reconfirmed with us minimum 30 - 15 days prior to the date off arrival along with confirmed arrival details, failure on which will be considered as cancellation.</li>
	<li>Service Voucher: The client has to carry an &quot;Exchange Service Voucher&quot; issued by the &ldquo;Discover Ladakh Adventure Tours &amp; Travel&rdquo; which will be provided to to the guest at the time of booking confirmation.</li>
</ul>

<p><strong>PAYMENTS:-</strong>

<ul>
	<li>On confirmation: 50% (advance ) to be deposited at the time of booking confirmation.</li>
	<li>Re-confirmation:&nbsp; 50 (2nd installment) should be deposited 30 - 15 days before tour starts.</li>
	<li>Payment Mode: Payments can be remitted through any of the following mode and is subject to realization:</li>
	<li>Demand Draft: In favor of &ldquo;Intense India Tours.&rdquo; payable at New Delhi</li>
	<li>At Par Cheque: Issue in the name of &ldquo;Intense India Tours.&rdquo; .</li>
	<li>Cash / Cheque Deposit in the following:</li>
</ul>

<p><strong>CANCELLTION POLICY:</strong>

<ul>
	<li>Cancellation request has to be sent to us by e-mail only.</li>
	<li>30 -15 Days prior to departure 25% of tour cost</li>
	<li>14 -07 Days prior to departure 50% of tour cost</li>
	<li>07- 03 Days prior to departure 75% of tour cost</li>
	<li>02 Days or No show - 100% of tour cost</li>
</ul>

<p><strong>Note:</strong> Cancelation policy is subject to amend as per policy of hotel booked for your stay in Uttarakhand.<br />
&nbsp;<br />
<strong>REFUND:-</strong>

<ul>
	<li>Refund will be paid to the source through which the guest is booked. Any refund will take at least 15 days to process &amp; will be sent to you by a/c payee cheque only.</li>
	<li>NO REFUND WILL BE MADE AGAINST ANY UN UTILIZED SERVICES, WHAT SO EVER MAY BE THE REASON</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.getsholidayindiatour.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Delhi - Corbett - Kausani - Nainital - Delhi 05 Night / 06 Days 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="117882"/>
						</form>
						</div>
						
						";i:1;s:107:"Book Delhi - Corbett - Kausani - Nainital - Delhi 05 Night / 06 Days Tour - 5 Nights / 6 Days Tour Packages";i:2;s:182:"book delhi - corbett - kausani - nainital - delhi 05 night / 06 days tour - 5 nights / 6 days tour packages, valley tour packages, new delhi, nainital, kausani, corbett tour packages";i:3;s:237:"Book Delhi - Corbett - Kausani - Nainital - Delhi 05 Night / 06 Days Tour - 5 Nights / 6 Days tour packages from Gets Holiday India Tour - Get attractive 5 Nights / 6 Days Valley  tour packages for  New Delhi, Nainital, Kausani, Corbett.";i:4;s:1522:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Nainital, Kausani, Corbett"        
		                 },
		      "description": "Rates per person on twin sharing in Indian Rupees based on base category room at all hotels. 
Transport using Indigo/Dezire for 02/03 pax; Innova for 04 Till 06 Pax only & instead of till 06 pax, rates shall be on request basis.
Daily Breakfast & Dinner at respective Hotels/Resort included (Veg at religious destinations)
Transport cost included with all toll tax, parking, interstate taxes, drivers allowance. 
Sightseeing as per the itineraries.
Rates are valid Till March 2018.

Note: The above mentioned rates are not valid during Christmas & New Year, Long Weekends, National holidays & festive period. All rates are subject to change without prior notice.GST @ 5% extra on total billing.
Airfare/Transport is not on disposable basis.
Jeep Safari, Boat rides, Pony rides, Cable Car rides, Train Fares, Air Fares, Personal expenses are not included.
Meals except including in the costs, Boating, Ropeway etc during sightseeing are not included. 
AC would not run on Hill drives.
Entrance fees to the places of interest to visit.",
		      "name": "Delhi - Corbett - Kausani - Nainital - Delhi 05 Night / 06 Days Tour",
		      "telephone": "+91-8532003202"
		    }
		    </script>
			";i:5;N;}