a:6:{i:0;s:17434:"				<div class="h1"><h1>Shimla - Narkanda - Sangla - Kaza 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>Shimla - Narkanda - Sangla - Kaza 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">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Manali, Narkanda, Shimla, Sangla, Kaza</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.tanishhimachaltours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Shimla - Narkanda - Sangla - Kaza 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="172085"/>
						</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/259183.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/438757/259183.jpg"  width="150" height="90"    alt="Shimla - Narkanda - Sangla - Kaza Tour" title="Shimla - Narkanda - Sangla - Kaza Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Meal plan : Lunch <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, telephone bills and beverages. <br />
<br />
It also does not include any meals unless and otherwise 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> Delhi-shimla
								</p>
								<p class="aj">After Arriving At the Delhi Airport, Our Cab Meets You and Helps You with An Assisted Transfer to Shimla and Enjoy Zig Zag Curves and Beauty of Forests in Between Kalka to Shimla . After Reach At Shimla . Check-in At the Hotel. Fondly Referred to as the “queen of Hills’ Shimla is the Capital City of Himachal Pradesh, Former Summer Capital of British India & Now a Capital of Himachal Pradesh, Set Amidst the Snow Capped Shivalik Mountain Ranges Offering Some Stunning Views of the Mighty Himalayas,Which Boasts of Mesmerizing Scenery and a Laid-back Atmosphere.during Your Leisure Time, Explore the Nearby Places On Your Own such as Visiting the Mall, the Ridge,Jakhoo Temple,Viceregal Lodge and So On. Stay Overnight At Shimla. <br />
• Jakhoo <br />
• the Mall <br />
• Christ Church <br />
• Lakkar Bazaar</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> Shimla Narkanda Sangla
								</p>
								<p class="aj">After Breakfast Local Sight Seen of Narkanda.in Narkanda We Visit Hatu and Tannu Jubbar Lake. the Hatu Peak is One of the Highest Peaks in Narkanda and Offers a Panoramic View of the Beautiful Valley Below., After Local Enjoy Move Our Wheels Towards Sangla. Overnight Stay At Sangla.</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> Sangla Nako Tabo
								</p>
								<p class="aj">Early in the Morning, Witness the Beautiful Sunrise Over the Kinnaur Kailash Peaks. After that Drive to Tabo. On Your Way, Visit Kinnaur’s Most Picturesque Hamlet and the Nako Lake. Nako is a Heritage Village Built Around a Small Lake and Has An Important Buddhist Gompa and a Small Temple. a Footprint like Impression On a Rock is Ascribed to the Saint Guru Padmasambhava. Explore the Scenic Spiti Valley that Has Few Signs of Vegetation. the Beauty of Spiti Lies in Its Unspoiled, Untainted Raw Landscape. Rudyard Kipling Describes Spiti in ‘kim’ in These Words: “at Last They Entered a World Within a World - a Valley of Leagues Where the High Hills Were Fashioned of the Mere Rubble and Refuse from Off the Knees of the Mountains…surely the Gods Live Here.” On Arrival At Tabo, Check in to the Hotel. the Ancient Village of Tabo is Situated On the Left Bank of the River Spiti. It is the Land of One of the Most Famous Buddhist Monasteries, Regarded Next to the Tholong Gompa in Tibet. It is also Known as the ‘ajanta of Himalayas’.dinner & O/n Stay Into the Hotel At Tabo.</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> TABO KAZA
								</p>
								<p class="aj">Join the Morning Prayers At the Tabo Monastery Which Was Constructed in 996 Ad. It is a Complex that Consists of 9 Temples, 23 Chortens, a Monk’s Chamber and An Extension that Houses the Nun’s Chamber. Above the Enclave is a Series of Caves Which are Used By the Monks. the Monastery Contains Large Number of Scriptures and Pieces of Art Including Wall Paintings and Stucco. There is also a Modern Gompa and a Painting School Founded By the Dalai Lama. Check Out of the Hotel in Tabo and Head to Kaza (3870 Metres Above Sea Level). On Your Way to Kaza (the Capital of Spiti Valley), Visit Dhankar Gompa, the Traditional Capital of Spiti. this Hilltop Fort that Overlooks the Spiti Valley Used to Be a Jail Earlier. Today, More Than 160 Lamas Reside Here. Notable Sights At Dhankar Gompa Include a Statue of Vairochana (dhayan Buddha) Consisting of 4 Figures Seated Back to Back in Addition to Various Crumbling Thangkas. also Enjoy to Visit Pin Valley On the Way. Enjoy to See the Beautiful Valley Gifted By God to Himachal Pradesh. Evening Time Reached At Kaza. On Arrival At Kaza, Check in to the Hotel & a Comfortable Overnight Stay & Dinner At the Kaza.</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> Kaza City Tour
								</p>
								<p class="aj">Early in the Morning After Breakfast Get Ready for Visit Local Sight-seeing. Visit to Ki Monastery, Kibber Village, Comick Village & Nature of Beautiful Kaza. Full Day Sight-seeing and Back to Hotel. Dinner & O/n Stay Into Hotel At Kaza. Kibber Village Kibber also Kyibar is a Village High in the Spiti Valley in the Himalayas At 4270 Metres or 14,200 Ft in Himachal Pradesh in Northern India. It Contains a Monastery and the Kibber Wildlife Sanctuary. Kibber Lies in a Narrow Valley On the Summit of a Limestone Rock. It is Located 16 Kilometers from Kaza and a Bus Service Connects Them in the Milder Summer Months. Agriculture Forms the Backbone of the Local Economy and Lush Green Fields are Abundant. Villagers Count On the 3 Day Traditional Trade Route Over Parang La to Ladakh to Barter Their Horses for Yaks or to Sell for Cash. the Village Has Around 80 Houses, Unique, Given that They are Made of Stone Instead of Mud or Adobe Brick Used Extensively Elsewhere in the Spiti Valley. Kibber Has a Civil Dispensary, a High School, a Post Office, a Telegraph Office and a Community Tv Set in the Village. Kibber Monastery Was Founded By Serkang Rimpochhe of Tabo. Ki Monestry Kye Gompa (also Spelled Ki, Key or Kee - Pronounced like English Key) is a Tibetan Buddhist Monastery Located On Top of a Hill At An Altitude of 4,166 Metres (13,668 Ft) Above Sea Level, Close to the Spiti River, in the Spiti Valley of Himachal Pradesh, Lahaul and Spiti District, India. It is the Biggest Monastery of Spiti Valley and a Religious Training Centre for Lamas. It Reportedly Had 100 Monks in 1855. Arrive Kaza in Evening and Check Into the Hotel. Dinner and O/n Stay in Kaza.</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> KAZA CHANDERTAL or KAZA NAKO
								</p>
								<p class="aj">After breakfast start early from Kaza, travel to ChanderTal Lake via Kunzum la pass.Today we will trek 18 kms from Batal to reach Chandratal and it will take us about 5-6 hrs, while on this trek we will get a nice view of the Lahaul range, peaks like Minar(6172 M), Talagiri(6279 M), Tara Pahar(6227 M) and Mulkila (6517 M). Dinner and overnight stay in tents..Overnight stay at the chandertal camps <br />
OR <br />
After breakfast leave for Nako, get ready for visit to another valley of Nako. After arrival see another beauty of nature. In afternoon visit back to Nako. In evening reach Nako check into the hotel. Dinner at stay at Nako.</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> Nako Narkanda or Chandertal Manali
								</p>
								<p class="aj">Early in the Morning After Breakfast Get Ready for Visit to Another Valley of Sangla. and Drive to Narkabda. Arrive Narkanda and Visit to Hatu Peak in Narkanda. Hatu Peak Hatu Peak Lies On the Top of the Peak is a Small Wooden Temple Called Hatu Temple. According to Local Belief the Famous Hatu Mata Temple is the Temple of ‘mandodari’ Wife of ‘ravana’. People Come in Great Number On the First Sunday of Jyeshtha to Pay Ritual Here. Goat Sacrifice is Still in Practice Near the Temple.there is An Ancient Stove like Formation of Rocks Nearby the Temple. Locals Believe that It Was Used By the Pandavas Brothers to Cook Their Food During Their Agyaat Vaas. in Evening Back to Narkanda. Check Into the Hotel. Dinner & O/n Stay Into the Hotel At Narkanda. <br />
or <br />
after Breakfast We Move Towards Manali Ontour We Visit Rohtang.rohtang Pass(situated <br />
at the Height of 3978 Meters On Eastern Pir Panjal Range of the Himalyas, About 51 Km <br />
from Manali Connects the Kullu Valley with the Lahul and Spiti Valley) ,On the Way Sight <br />
seeing At Nehru Kund, Rahla Falls, Enjoy the Scenic View of Snow Covered Peaks At <br />
rohtang / ,Solang Valley and After Rohtang Check Into Hotel Manali.overnight Stay At Manali.</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> Narkanda Delhi or Manali Delhi
								</p>
								<p class="aj">After Breakfast Checkout from Hotel and Transfer to Delhi Airport or Railway Station to Board the Flight /train 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>Meals</li>
																		<li>Sightseeing</li>
																<li>Meal plan : Breakfast and Dinner</li><li>
Cabs : AC ( Note : A/C will won’t be operational in hills )</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, telephone bills and beverages. </li><li>
It also does not include any meals unless and otherwise 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="Shimla - Narkanda - Sangla - Kaza 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="172085"/>
						</form>
						</div>
						
						";i:1;s:77:"Book Shimla - Narkanda - Sangla - Kaza Tour - 7 Nights / 8 Days Tour Packages";i:2;s:164:"book shimla - narkanda - sangla - kaza tour - 7 nights / 8 days tour packages, family tour packages, new delhi, manali, narkanda, shimla, sangla, kaza tour packages";i:3;s:217:"Book Shimla - Narkanda - Sangla - Kaza Tour - 7 Nights / 8 Days tour packages from Tanish Himachal Tours - Get attractive 7 Nights / 8 Days Family  tour packages for  New Delhi, Manali, Narkanda, Shimla, Sangla, Kaza.";i:4;s:831:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Manali, Narkanda, Shimla, Sangla, Kaza"        
		                 },
		      "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": "Shimla - Narkanda - Sangla - Kaza Tour",
		      "telephone": "+91-9736035555"
		    }
		    </script>
			";i:5;N;}