a:6:{i:0;s:13399:"				<div class="h1"><h1>Dharamshala - Dalhousie - Khajjiar Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.tanishhimachaltours.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.tanishhimachaltours.com/travel-packages.htm" title="Travel Packages">Travel Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Dharamshala - Dalhousie - Khajjiar 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">
						3 Nights / 4 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Dalhousie, Khajjiar, Dharamshala, Amritsar</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 35500 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.tanishhimachaltours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Dharamshala - Dalhousie - Khajjiar 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="171566"/>
						</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/438757/258507.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/438757/258507.jpg"  width="150" height="150"    alt="Dharamshala - Dalhousie - Khajjiar Tour" title="Dharamshala - Dalhousie - Khajjiar Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Meal Plan : Lunch <br />
<br />
non Veg Meal<br />
<br />
cabs : Non-ac <br />
<br />
airfare <br />
<br />
others : other Exclusions (*car At Disposal <br />
<br />
all Kind of Personal Expenses such as Tips, Laundry, <br />
telephone Bills and Beverages. <br />
<br />
it also Does Not Include Any Meals Unless and Otherwise <br />
specifically Mentioned.. <br />
<br />
optional, Suggested or Unspecified Activities. <br />
<br />
camera Fee (still or Movie)<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> Amritsar to Dharamshala
								</p>
								<p class="aj">On Arrival At Amritsar Our Cab Will Pick You and Move Towards Dharamshala After Reaching Dharamshala have Some Fresh and Rest and Then Move to Visit Local Places of Dharamshala.<br />
mcleodganj Mcleod Ganj Often Called the Little Lhasa, At <br />
1770m is the Residence of His Holiness, the Dalai Lama. the Tibetan Government in Exile Has <br />
been Head Quartered Here for Over Three Decades. the Impressive Monastery Has Larger Than Life <br />
images of the Buddha, Padmasambhava and Avaloktwshwara. the Large Tibetan Community And <br />
the Presence of Traditional Architectural Designs Drawn from Tibet have Enhanced the Area. <br />
tibetian Handicrafts and Garments are Available On Sale Every Sunday. the Tibetian Institute Of <br />
performing Arts is Just a Km Away and Organises a Ten Day Festival from the Second Saturday Of <br />
april. Dal Lake : 11 Km from Dharamsala and Surrounded By Deodar Trees this is An Enchanting <br />
and Serene Picnic Spot. Bhagsunag Fall : Cuddled with Gigantic Hills, It is a Beautiful Place In <br />
mcleod Ganj and is a Charming Place for Tourism and Excursion. It is a Well Known Tourist Place <br />
and a Wonderful Place for Hindu Pilgrimage. the Dribble of Waterfall Provides a Spectacular Look <br />
during the Monsoon. It is Just 11 Kms from Dharamshala and Directly Connects with Fallen Here On this Spot. Dharamshala Stadium Himachal Pradesh Cricket Association Stadium, <br />
abbreviated as Hpca Stadium, is a Cricket Stadium Located in the City of Dharamsala in Himachal <br />
pradesh Drop You At Stadium and Enjoy the Great Stadium Look After Explore It Move Towards <br />
dalhousie Check in to the Hotel. Later in Evening Visit Local Mall Road and St John Church, And <br />
exploring the Area Around. Overnight Stay in Hotel At Dalhousie . .</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> Dharamshala - Dalhousie
								</p>
								<p class="aj">After Breakfast Early Morning Get Transferred to Dalhousie . On Arrival At Dalhousie Check in to the Hotel. Later in Evening Visit Local Mall Road and St John Church, and Exploring the Area Around. Overnight Stay in Hotel At Dalhousie . <br />
about Dalhousie <br />
dalhousie is a Hill Station in Chamba District, in the Northern State of Himachal Pradesh, India. It is Situated At the Western End of the Dhauladhar Range of Mountains. Surrounded By Beautiful Snow-capped Mountains, Dalhousie is Named After Its Founder Lord Dalhousie, the British Governor-general in India. with Several Victorian-style Mansions, Scottish Architecture and other Charming Colonial Buildings, this Hill Station Will Take You Back in Time. Dalhousie is Spread Over An Area of 14 Sq Km of Area and It Includes Five Hills, Namely Balun, Bakrota, Tehra, Patreyn and Kathlog. the Fragrant Pines, Oaks, Rhododendron and Oaks Along with Several other Types of Tress Cover the Slops of the Mountains. this Scenic Hill Station if Framed By the River Ravi Flowing At the Base of the Town.</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> Dalhousie : Khajjiar
								</p>
								<p class="aj">Today Morning , After the Breakfast, Visit Khajjiar (khajjiar is a Hill Station in Chamba District, Himachal Pradesh, India, Located Approximately 24 Km from Dalhousie. <br />
about Khajjiar - Mini Switzerland of India <br />
often Named as As the Mini Switzerland of India (at a Short Distance from Dalhousie ) is One of the Finest Saucer Shaped Meadows Lined By Tall Deodar Trees, Pine Trees and a Khajjiar Lake is One of the Most Amazing and Serene Picnic Spots with the Back Drop of the Snow Capped Himalayas in the Middle with Over An 500 Year Old Wooden Nag Temple Near to the Lake. Khajjiar Has the Thick Forest of the Kalatop Khajjiar Sanctuary Surrounding Its Soft Green Grass. the Moment One Enters the Picturesque Khajjiar, One is Welcomed By a Yellow Swiss Sign for ‘hiking Path’ Which Reads “mini Switzerland”. <br />
) Visitors Can Enjoy Activities like Horse-riding, Paragliding and Zorbing Here. House Riding is a Common Activity Enjoyed in Most Areas in and Around the Town. Overnight Stay At the Hotel. Overnight Stay At Hotel Followed By Dinner</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> Dalhousie to Amritsar
								</p>
								<p class="aj">After the Breakfast, Check Out the Hotel and Depart Back with Your Journey to Amritsar . in Evening Sea Waga Border and Golden Temple and Then Cab Will Drop You Airport Complete Your Journey with Memorable Moments.</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>Meals</li>
																		<li>Sightseeing</li>
																<li>Meal plan : Breakfast ,Dinner.</li><li>
Cabs : AC ( Note : A/C will won’t be operational in hills )</li><li>
Flower Bed decoration, Candle  light dinner, Honemoon cake , Kesar Badam milk</li>
													</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Meal Plan : Lunch </li><li>
non Veg Meal</li><li>
cabs : Non-ac </li><li>
airfare </li><li>
others : other Exclusions (*car At Disposal </li><li>
all Kind of Personal Expenses such as Tips, Laundry, </li><li>
telephone Bills and Beverages. </li><li>
it also Does Not Include Any Meals Unless and Otherwise </li><li>
specifically Mentioned.. </li><li>
optional, Suggested or Unspecified Activities. </li><li>
camera Fee (still or Movie)</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p>Terms &amp; Condition<br />
1. The rates are subjects to change without any prior notice. -Accommodation in the itinerary at the mentioned hotels&nbsp; or the similar hotels . 2. The confirmation is subjects to availability. -Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad Weather, ill health, strike, roadblocks and/or any factors beyond control. -It is a suggestion for you that please book this offer as soon as possible because we are not holding any booking and it is totally depend on the availability of rooms and flight.<br />
3. From the booking date till 30 days prior to the departure date, 30 % of the package cost is chargeable.<br />
4. From 30 days to 15 days prior to the departure date, 50 % of the package cost is chargeable.<br />
5. From 15 days to 7 days prior to departure date, 75 % of the package cost is chargeable.<br />
6. For cancellations made within 5 days prior to the departure date, 100% of the package cost is chargeable.<br />
7. No refund will be made for any unused accommodation, missed meals, transportation segments, sightseeing tours or any other service due to Bad weather, ill health, Strike, Road Blocks or any other factor beyond our Control. Such unused items are neither refundable nor exchangeable. - Room allocation is done by the hotel&nbsp; depending upon availability at the time of check-in. the category of room as specified on your confirmation voucher.<br />
8. No refund shall be claimed, if the services &amp; amenities of hotel were not up to your expectations, it will be considered on case to case basis.<br />
9. Room Heater charges will be extra charged as per hotel&nbsp; rates in every hotel.<br />
10. Meal plan will be veg in every hotel.( Non veg will be included on travellers request ).<br />
11. Rohtang Pass Permit and sighscene will be provided as per govt. Terms and conditions.<br />
12. Below 5 Years child will be complementry.More&nbsp;then 5 yrs Child will be charged as adults cost.<br />
13. All payments of package cost should be cleared before Last day check out of the tour.

<p>&nbsp;												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.tanishhimachaltours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Dharamshala - Dalhousie - Khajjiar 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="171566"/>
						</form>
						</div>
						
						";i:1;s:78:"Book Dharamshala - Dalhousie - Khajjiar Tour - 3 Nights / 4 Days Tour Packages";i:2;s:164:"book dharamshala - dalhousie - khajjiar tour - 3 nights / 4 days tour packages, hill station tour packages, dalhousie, khajjiar, dharamshala, amritsar tour packages";i:3;s:217:"Book Dharamshala - Dalhousie - Khajjiar Tour - 3 Nights / 4 Days tour packages from Tanish Himachal Tours - Get attractive 3 Nights / 4 Days Hill Station  tour packages for  Dalhousie, Khajjiar, Dharamshala, Amritsar.";i:4;s:831:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dalhousie, Khajjiar, Dharamshala, Amritsar"        
		                 },
		      "description": "Meal Plan : Lunch 

non Veg Meal

cabs : Non-ac 

airfare 

others : other Exclusions (*car At Disposal 

all Kind of Personal Expenses such as Tips, Laundry, 
telephone Bills and Beverages. 

it also Does Not Include Any Meals Unless and Otherwise 
specifically Mentioned.. 

optional, Suggested or Unspecified Activities. 

camera Fee (still or Movie)",
		      "name": "Dharamshala - Dalhousie - Khajjiar Tour",
		      "telephone": "+91-9736035555"
		    }
		    </script>
			";i:5;N;}