a:6:{i:0;s:14333:"				<div class="h1"><h1>Uttaranchal Escape 7 Night-08 Days Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.chaturveditravels.com/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Uttaranchal Escape 7 Night-08 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">Tour Code </td>
						<td class="p5px pl0px vat">CTT/47 Uttaranchal E</td>
						</tr>
												<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, Nainital, Kausani, Corbett</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 25999 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.chaturveditravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Uttaranchal Escape 7 Night-08 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="27858"/>
						</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_8/229281/56029.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/229281/56029.jpg"  width="150" height="150"    alt="Uttaranchal Escape" title="Uttaranchal Escape" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Any Airfare, Train Fare, Overland Journey Which Is Not Mentioned In The Itinerary.<br />
Any Personal Nature Items Like Laundry, Bar Bills, Table Bills, Camera Fee, Tips Or Any Other Item.<br />
Guide / Entry Fees / Boatings /Horse Ridings Etc. During Sight Seeings<br />
Any Medical /Rescue Evacuation Due To Mishaps. <br />
Optional Activities Mentioned In The Itinerary <br />
Any Other Things That Is Not Included In The “Package Cost Includes” Column.<b><b>Note:<br />
Any Changes In Govt. Taxes, Hotel Tariff, Etc Will Be Intimated Before Confirming The Package. <br />
Cost Incidental To Any Change In The Itinerary/ Stay On Account Of Flight Cancellation Due To Bad Weather, Ill Health, Roadblocks And/Or Any Factors Beyond Control. <br />
Government Service Tax @ 3.09 Extra <br />
Every Passenger Is Traveling On His Own Responsibility. The Company Will Not Be Responsible For Any Loss Of Luggage Or Any Accidents. We Are Not Responsible For Theft Or Damage To Your Luggage.<br />
Also Note That Video & Audio Systems Are Prohibited In Commercial Vehicles As Per Law And We Do Not Guarantee For It Always.<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> Arrive Delhi
								</p>
								<p class="aj">Arrive Delhi Meet assist at the airport/railway station and transfer to hotel check in to hotel, Later proceed for half day sightseeing tour of Delhi covering Laxmi Narayan Temple, Qutab Minar, India Gate, President house. Later back to hotel.free for leisure. overnight stay at hotel at Delhi.</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 - Corbett (296kms - 7hrs)
								</p>
								<p class="aj">After breakfast  check out from hotel then drive to Corbett National park.<br />
corbett National park: A promosing land for the world species at Ramnagar in Nainital distric in uttarakhand.The Corbett national park is the most dwindling part of nature resising at the himalayal foot hill & Shivalik ranges and is being called as the perfect tigers land.indias first notised wildlife sanctuary and national park established in the year 1936,brings opportunity to be hold the largest tigers population in the vicinity.corbett remains open to mid nov to mid jun,the main reason for closure of the park during the rest of the year is that mansoon make most of the roads get washed away.After mansoon, the repaire work start and it is only by nov.That roads are back in motive conditions.<br />
Arrive at Corbett transfer to hotel, check in to hotel Rest of the day is free to explore  scenic sights & leisure,overnight stay at hotel at 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 3:</b> Corbett National Park
								</p>
								<p class="aj">After breakfast leave for Jungle Safari in Corbett National Park(Optional by Paying Additional cost). Corbett is haven for tigers. Later back to hotel.free for leisure.  overnight stay at hotel at 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 4:</b> Corbett - Kausani( 260kms - 6hrs)
								</p>
								<p class="aj">After breakfast check out from hotel then drive to Kausani.<br />
Kausani; nature own reserve and idle to spend a quiet holiday in the lap of nature with stunning view of the Himalayan ranges. Mahatma Gandhi, during his stay at Kausani, penned his memorable commentary on the 'Gita-Anashakti Yoga' inspired by the scenic grandeur of this richly gifted spot. Mahatma Gandhi was so much impresses that he started calling it “Switzerland of India”. The guesthouse where Mahatma Gandhi stayed is now known as the Anashakti Ashram. Famous Hindi poet Sumitra Nandan Pant was born at Kausani. Some of her early poems composed here have described the nature in its manifestations.<br />
Enroute visit Ranikhet: The salubrious atmosphere, tall conifer trees, green meadows and placid surroundings makes Ranikhet a unique hill station. The magnetism of each season in Ranikhet is always capable of luring tourists, making it an all season destination. <br />
Arrive at Kausani transfer to hotel ,check in to hotel.Rest of the day is free at  leisure,overnight stay at hotel at 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 5:</b> Kausan
								</p>
								<p class="aj">Early morning enjoy sunrise view.After breakfast free for leisure. Afternoon picnic near the River Kosi and day to explore the beauty of nature sightseeing. Evening sunset view of Himalayas. And explore various scenic sights or visit mall road .Later back to hotel. Rest of the day free at leisure, overnight stay at hotel at 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 6:</b> Kausani - Nainital (120kms - 3hrs.)
								</p>
								<p class="aj">After breakfast check out from hotel then drive to Nainital.<br />
Nainital : is referred to as the lake of three sages, or the Tri Rishi Sarovar as mentioned in the Manas Khand chapter of the Skanda Purana. As recorded in history, the three sages, Atri, Pulastya, and Pulaha stopped over at Nainital on their pilgrimage, to quench their thirst. Finding no water, they dug a hole and transferred some water into it to from the sacred lake of Tibet, Mansarovar. Thus the famous lake of Nainital came into existence. Another legend has it that the left eye or Nain of Lord Shiva’s wife Sati fell in this center and formed an emerald eye shaped lake, and thus emerged the city of Nainital.Recent history records reveal that Nainital was brought into limelight by P. Barron, a British sugar merchant, in 1839. The beauty of Nainital with the central lake cushioned among the forests attracted this person to build a house named Pilgrim’s Cottage and settle in Nainital. Enroute visit Almora.<br />
Almora : is a scenic hill station in the northern state of Uttarakhand.which is shaped like a horse shoe, Almora is a quaint town in Kumaon Hills in the Himalayan range. around with beautiful thick forests of fir and pine trees covering the hills. Almora is a town of temples, with temple of Goddess Nanda Devi placed in the centre of the town.Almora is an agricultural base and a trade centre of dynamic activity.  <br />
Arrive at Nainital transfer to hotel, check in to hotel, Evening free to explore various scenic sights or visit mall road. Overnight stay at hotel at 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 7:</b> Nainital 
								</p>
								<p class="aj">After breakfast, Full day is at leisure to explore the hill retreat of Nainital. It is blessed with scenic natural splendour and varied natural resources . visit to lakes tour of Bhim Tal, Sat Tal, Naukuchia Tal , Snow point,Thandi sadak,cable car & Mall road. Later back to hotel, Rest of the day free at leisure,overnight stay at hotel at  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 8:</b> Nainital - Delhi (320kms - 7hrs.)
								</p>
								<p class="aj">After an early breakfast check out from hotel then drive to Delhi. On arrival in Delhi, transfer to airport/railway station 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>
																		<li>Transport</li>
																		<li>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Any Airfare, Train Fare, Overland Journey Which Is Not Mentioned In The Itinerary.</li><li>
Any Personal Nature Items Like Laundry, Bar Bills, Table Bills, Camera Fee, Tips Or Any Other Item.</li><li>
Guide / Entry Fees / Boatings /Horse Ridings Etc. During Sight Seeings</li><li>
Any Medical /Rescue Evacuation Due To Mishaps. </li><li>
Optional Activities Mentioned In The Itinerary </li><li>
Any Other Things That Is Not Included In The “Package Cost Includes” Column.Note:</li><li>
Any Changes In Govt. Taxes, Hotel Tariff, Etc Will Be Intimated Before Confirming The Package. </li><li>
Cost Incidental To Any Change In The Itinerary/ Stay On Account Of Flight Cancellation Due To Bad Weather, Ill Health, Roadblocks And/Or Any Factors Beyond Control. </li><li>
Government Service Tax @ 3.09 Extra </li><li>
Every Passenger Is Traveling On His Own Responsibility. The Company Will Not Be Responsible For Any Loss Of Luggage Or Any Accidents. We Are Not Responsible For Theft Or Damage To Your Luggage.</li><li>
Also Note That Video & Audio Systems Are Prohibited In Commercial Vehicles As Per Law And We Do Not Guarantee For It Always.</li></ul><br />
												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.chaturveditravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Uttaranchal Escape 7 Night-08 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="27858"/>
						</form>
						</div>
						
						";i:1;s:78:"Book Uttaranchal Escape 7 Night-08 Days Tour - 7 Nights / 8 Days Tour Packages";i:2;s:164:"book uttaranchal escape 7 night-08 days tour - 7 nights / 8 days tour packages, forts and palaces tour packages, new delhi, nainital, kausani, corbett tour packages";i:3;s:209:"Chaturvedi Travels and Tours offers Uttaranchal Escape 7 Night-08 Days Tour - 7 Nights / 8 Days tour package, budget Forts and Palaces tour packages for New Delhi, Nainital, Kausani, Corbett at exciting price.";i:4;s:1517:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Nainital, Kausani, Corbett"        
		                 },
		      "description": "Any Airfare, Train Fare, Overland Journey Which Is Not Mentioned In The Itinerary.
Any Personal Nature Items Like Laundry, Bar Bills, Table Bills, Camera Fee, Tips Or Any Other Item.
Guide / Entry Fees / Boatings /Horse Ridings Etc. During Sight Seeings
Any Medical /Rescue Evacuation Due To Mishaps. 
Optional Activities Mentioned In The Itinerary 
Any Other Things That Is Not Included In The “Package Cost Includes” Column.<b><b>Note:
Any Changes In Govt. Taxes, Hotel Tariff, Etc Will Be Intimated Before Confirming The Package. 
Cost Incidental To Any Change In The Itinerary/ Stay On Account Of Flight Cancellation Due To Bad Weather, Ill Health, Roadblocks And/Or Any Factors Beyond Control. 
Government Service Tax @ 3.09 Extra 
Every Passenger Is Traveling On His Own Responsibility. The Company Will Not Be Responsible For Any Loss Of Luggage Or Any Accidents. We Are Not Responsible For Theft Or Damage To Your Luggage.
Also Note That Video & Audio Systems Are Prohibited In Commercial Vehicles As Per Law And We Do Not Guarantee For It Always.",
		      "name": "Uttaranchal Escape 7 Night-08 Days Tour",
		      "telephone": "+91-9826355115"
		    }
		    </script>
			";i:5;N;}