a:6:{i:0;s:11971:"				<div class="h1"><h1>Mussoorie 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>Mussoorie 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 / 38 Mussoorie T</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						3 Nights / 4 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Mussoorie, Dehradun</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 14099 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="Mussoorie 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="27840"/>
						</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/56049.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/229281/56049.jpg"  width="150" height="150"    alt="famous massoorie" title="famous massoorie" /></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 />
Major Meals I.E. Lunch & Dinner At Haridwar <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> Delhi - Mussoorie (280kms - 6-7hrs)
								</p>
								<p class="aj">Travel By surface from Delhi to Mussoorie.<br />
Mussoorie: is a wonderful hill station in Uttaranchal.It is situated at the foothills of the Himalayas and is known as the Queen of the Hills. Mussoorie derives its name from the plants of Mussoorie or shrubmansoor which are available in large quantities in this region. The lush green hills, the varied flora and fauna and the majestic view of the Shivalik ranges and the Doon Valley attracts hundreds of tourists both domestic and international to Mussoorie each year. Mussoorie is famous not only for its scenic beauty but it has also developed into an important center of education and business. Mussoorie is also famous for the Lal Bahadur Shastri National Academy of Administration where officers are trained for the Indian Administrative Service and the Indian Police Service. Arrive at Mussoorie ,transfer to hotel, check in to hotel, rest of the day free for Leisure. overnight stay at hotel at 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 2:</b> Mussoorie
								</p>
								<p class="aj">After breakfast, visit to Kempty fall, kempty fall, municipal garden,Gun hill,  Company Garden, Mall road etc. <br />
Lal Tibba : This is regarded as the highest point in Mussoorie situated in area called “Landour”. Which is know to be the oldest inhabited place of Mussoorie<br />
Gun Hill : Gun hiil is the second highest point in Mussoorie.it is also known as picnic spot for the locals.From this points,Mussoorie appears to be changing colors in every minute.It looks amazing from here<br />
Municipal Garden : This is also known as Botanical Gardens of Mussoorie were established by geologist Dr. H.Fackner in the last century..<br />
Kempty Fall : Kempty fall is just 12 kms down from Mussoorie on Mussoorie - Dehradun midway ,the beautifull falls were declared as a tourist destination by John Mekinan after after 1835.The name Kempty is derived from 'Camp - tea', as the Britishers would organise their tea parties here. Past Kempty Fall, 12 - km downhill. Later back to hotel,free for leisure.overnight stay at hotel at 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 3:</b> Mussoorie - Dehradun (35kms - 2hrs.)
								</p>
								<p class="aj">After breakfast,check out from hotel, then Drive to Dehradun. <br />
Dehradun :the capital of State Uttarakhand situated on the north - west corner of the state and nestled in the mountain ranges of Himalayas.Dehradun has always been an important place for the Indians as well as for the Britishers when it was ruled by them.This is a significant place in terms of having the premier educational and Training Institutes like Indian Miltary Academy, RIMC(Rashtriya Indian Military College), Indira Gandhi National Forest Academy(IGNFA), Lal Bahadur Shahstri National Academy of Administration (LBSNAA ) etc It has also The headquarters of many National Institutes and Organizations like ONGC, Survey Of India, Forest Research Institute, Indian Institute of Petroleum etc are located in the city.<br />
Arrive at Dehradun transfer to hotel ,check in to hotel.Take rest. Later visit  to FRI , Tapkeshwar temple, Dear Park & Shiv ratan kander ,famous Bazar Paltan Bazar. Later back to hotel, Rest of the day free at leisure . overnight stay at hotel at Dehradun</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> Dehradun - Sahastradhara - Delhi (270 km - 6 hrs)
								</p>
								<p class="aj">After breakfast, check out from hotel, then proceed to Half day Sight Seeing of Sahastradhara: laterally meaning, the 'thousand fold spring' is situated at a distance of 11 kms. from Dehra Dun. The place makes an ideal picnic spot and is of immense attraction to visitors. The Baldi river and the caves provide a breathtaking view.The water here has a fall of about 9 metres and leaves an incrustation of lime of all its touches. Particles thus accumulating over the centuries have formed a projecting ledge, and a sort of cave, from the roof of which falls a perpetual shower. There is also a sulphur spring in which visitors often take bath. Its water is said to cure skin infections and possess other medicinal properties. Later Back Drive to Delhi for ownward 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>
Major Meals I.E. Lunch & Dinner At Haridwar </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="Mussoorie 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="27840"/>
						</form>
						</div>
						
						";i:1;s:53:"Book Mussoorie Tour - 3 Nights / 4 Days Tour Packages";i:2;s:110:"book mussoorie tour - 3 nights / 4 days tour packages, valley tour packages, mussoorie, dehradun tour packages";i:3;s:170:"Book Mussoorie Tour - 3 Nights / 4 Days tour packages from Chaturvedi Travels and Tours - Get attractive 3 Nights / 4 Days Valley  tour packages for  Mussoorie, Dehradun.";i:4;s:1520:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Mussoorie, Dehradun"        
		                 },
		      "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.
Major Meals I.E. Lunch & Dinner At Haridwar 
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": "Mussoorie Tour",
		      "telephone": "+91-9826355115"
		    }
		    </script>
			";i:5;N;}