a:6:{i:0;s:25266:"				<div class="h1"><h1>Hidden Jewel spiti</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>Hidden Jewel spiti</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">Shimla, Kinnaur, Lahaul & Spiti</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 15500 Per Person						</td>
						</tr>
													<tr>
							<td class="b p5px dif w125px vat">Min & Max. PAX </td>
							<td class="p5px pl0px dif vat"> 
							Min : 12, Max : 24					    	</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="Hidden Jewel spiti - 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="196227"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
										</tr>
					</table>
					</div>
					<br />
					
					Day 1 : DELHI -SHIMLA<br />
<br />
Meeting and assistance on arrival at Delhi Airport/railway stationand drive to Shimla by overnight journey. A popular tourist destination, Shimla is often referred to as the "Queen of Hills," a term coined by the British. Located in the north-west Himalayas at an average altitude of 2,205 meters (7,234 ft), the city of Shimla, draped in forests, experiences pleasant summers and cold, snowy winters.Reach Shimla next morning overnight journey.<br />
<br />
Day 2 : SHIMLA ARRIVAL KUFRI NARKANDA SARAHAN<br />
<br />
On arrival at shimla have fresh up and we move towards beautiful Narkanda . Enroute take ,Kufri is a small hill station in Shimla district of Himachal Pradesh state in India. It is located 13 km from the state capital Shimla on the National Highway No.22. The region around Shimla including Kufri was once a part of the Kingdom of Nepal until the area was ceded to the British Raj as part of the Sugauli Treaty. This region remained obscure from the rest of the world until the British 'discovered' it in 1819. It is the Kufri bungalow which is very famous for its statues and architecture.Kufri to the Mahasu Peak- the highest peak in Kufri.The Indira Tourist Park is near the Himalayan Nature Park and provides panoramic view of the locations around After kufri continue drive towards 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. This peak is 7 kms away from Narkanda and can be reached by trekking the mountain slopes. After this we move towards Sarahan. Sarahan……… known as the Gateway to Kinnaur.<br />
The chief landmark of this village is the impressive golden-spired Bhimakali temple that rises majestically against a snowy Himalayan backdrop. Perched at 1,920 metres, this Himachali hamlet commands a superb view of the surrounding Alpine countryside -- Rolling Meadows, apple orchards, flower-dotted valleys, silent forests, the swift Sutlej River and the haughty peaks.Overnight stay at Sarahan<br />
<br />
Day 3 : SARAHAN SANGLA CHITKUL KALPA<br />
<br />
After breakfast, we shall make a steep climb up to the magnificent five-storied high Kamru Fort at Kamru village. The main holy deity of the Kamru Fort is Kamakhyi Devi, whose idol had been brought from Guwahati, in Assam.<br />
Later, we shall drive to the beautiful town of Kalpa via Rekong Peo, (approx. 51 kms/ 3 hours’ drive) the district headquarters. One can enjoy spectacular views of the sacred Kinner Kailash Peak, one of the most beautiful peaks in the Himalayas on the way. After breakfast, we shall go for a sightseeing excursion to the beautiful village of Chitkul, the last inhabited village near the Indo-Tibet border. The drive to Chitkul is extremely scenic amidst snow -clad mountains, apple orchids and wooden houses. One can witness the unique architecture, local lifestyle and also visit the beautiful 500 years old Goddess Chitkul Mathi temple here.<br />
Situated at the height of 2758 m above the sea level and 110 km from Sarahan, Kalpa is a beautiful and main village of Kinnaur. Across the river faces the majestic mountains of the Kinner Kailash range. These are spectacular sights early in the morning as the rising sun touches the snowy peaks with crimson and golden light.Continue our journey towards Kalpa.overnight stay at kalpa.<br />
<br />
Day 4 : KALPA NAKO TABO<br />
<br />
After breakfast local visit of Nako. 11000+ ft asl Nako lies in Upper Kinnaur on the edge of remote spiti valley and an important centre of Tibetan Buddhism.Nako has seven temples of different periods distributed all over the village, including a monastic complex on its western edge.Nako is situated right on the Tibetan border over a beautiful lake.Drive to Nako and the evening and morning views of the lake and surrounding snow peaks is simply stunning.<br />
We shall take a detour here to Giu village famous for its naturally preserved mummy that is almost 500 years old. The mummy is said to be of a Tibetan Buddhist Lama and is in a sitting posture. We shall continue our drive and end our journey for the day at Tabo.<br />
<br />
Day 5 : TABO DHANKAR PIN VALLEY KAZA<br />
<br />
After breakfast, we shall visit Tabo monastery, which houses the priceless collection of thangkas (scroll paintings), manuscripts, well-preserved statues, frescos and extensive murals which cover almost every wall.<br />
We visit the Old monastery followed by the new one. Grander than the old monastery, the place is a picture of calm. From here we proceeded toward the nearby caves (phukpas) for which we have to hike a bit from the main road. These caves are used by monks for meditation and one of them also has an elaborate mural inside. From here one gets a bird’s eye view of Tabo village and the surrounding scenery.<br />
Later, we shall drive towards Pin valley National Park, drive towards the village of Kaza. Today we visit some extraordinary sites.The Dhankar monastery, a near 1,000 year old symbol of Vajrayana Buddhist architecture, is one of the 100 most endangered monuments in the world (as recognized by the World Monuments Fund)! It is constructed on a 300 metre high ledge in a rocky mountain near the confluence of Pin and Spiti rivers. An architectural marvel of its time, today owing to its age and an earthquake<br />
that struck the region in 1975, it is in the imminent danger of collapsing. There is also a dilapidated fort (there are some wonderful murals inside its rooms), that once enveloped the entire complex, the remnants of which can be explored by hiking. As a matter of fact, it is this fort which lends the place its name. Dhankar literally means – fort on a cliff!<br />
This journey, beside the Lingti valley, provides you with sights of some of the finest canyons and rock formations in India (some of which, atop the mountain, appear like the ramparts of a fort!). The Lalung monastery, also about a millennium old, is fondly called the Golden Temple (Serkhang) since it has statues (supposedly 1,200 years old!) which are plated in gold.<br />
Arrive Kaza and relax and go over the memories of the beauty experienced till now. Day 6 : KAZA CITY TOUR<br />
After breakfast, we visit the world famous Ki Monastery. The car will first stop at the base of the monastery hill for the ultimate photo opportunity of this remarkable structure. With over 1000 years’ worth stories to tell, the Ki Monastery situated at a height of 13,668 feet was founded by a disciple of the famous Atisha, in the 11th century .Then we will move farther down the valley to the picturesque village of Kibber. Located at a height of 4205 metres and 18 km from Kaza, this formerly highest permanently inhabited village of this region, is also a popular base camp to embark on adventure and treks to adjoining mountains of high altitude. The expanses of beautiful landscapes and immeasurable beauty of the snow-tipped mountains makes the place a haven for nature-lovers and photographers alike.<br />
Later, we drive to some of the highest inhabited regions of the world.<br />
The highest village in Asia, Comik, which literally translates to ‘eye of a snow cock’, is situated at a height of 4513 metres. This farming village has a population of 84 people, living in utter isolation, cut-off from the rest of the world for most parts of the year. This little hamlet ensures to bring you thousands of miles away from your familiar settings to a place of soft brown pastures and snow-white mountain peaks. After Komik, we head to the picturesque village of Langza. Once you are here, you can walk about the village and visit the ancient Lang (Temple) which is estimated to be around 1000 years old. At Langza, trek back to the prehistoric era when Spiti was submerged by the Tethys Sea as you explore a land very rich with fossils of Marine animals and plants which were here millions of years ago.overnight stay at kaza.<br />
<br />
Day 7 : KAZA CHANDERTAL<br />
<br />
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 />
<br />
Day 8 : CHANDERTAL MANALI<br />
After breakfast Chander Tal –Manali by road and way back via Rohtang Pass ( Rohtang pass situated at the height of 3978 meters on eastern Pir Panjal range of the Himalyas, about 51 km from Manali connects the Kullu valley) , Enjoy the scenic view of snow covered peaks at Rohtang / ,Solang ,Nehru Kund, Rahala Falls ,Gulaba .Leave back to kasol. Overnight Stay at kasol<br />
<br />
Day 9 : KASOL DELHI DROP<br />
<br />
Early morning we move towards Manikaran on tour we enjoy parbati valley huge mountains and the furious flow of parbati river with beautiful deodar trees which you never forgot in your whole life.<br />
Manikaran, located at an altitude of 1737 m, is a famous pilgrimage centre for both Sikhs and Hindus, situated 45 km from Kullu, in the state of Himachal Pradesh. The name ‘Manikaran’ refers to jewel. According to a legend, Goddess Parvati, wife of Shiva, the Hindu god of destruction, lost a precious jewel in a water body in this region. When Parvati asked Shiva to look for it, He asked His followers to hunt for it. When they were unable to find the jewel, Shiva flew into a rage an opened his third eye. This action caused disruption in the earth which led to the creation of innumerable precious stones and jewels.<br />
Parvati Valley is situated in the northern Indian state of Himachal Pradesh. From the confluence of the Parvati River with the River Beas, the Parvati Valley runs eastwards, through a steep-sided valley from the town of Bhuntar, in the Kullu district of Himachal Pradesh in Northern India.<br />
After visiting Manikaran cab will move towards delhi to drop you at Airpot/Railway station.<br />
<br />
Tour Ends !!!!!!!!!<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 to shimla
								</p>
								<p class="aj">Meeting and assistance on arrival at Delhi Airport/railway stationand drive to Shimla by overnight journey. A popular tourist destination, Shimla is often referred to as the "Queen of Hills," a term coined by the British. Located in the north-west Himalayas at an average altitude of 2,205 meters (7,234 ft), the city of Shimla, draped in forests, experiences pleasant summers and cold, snowy winters.Reach Shimla next morning overnight journey.</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> Day 2 : SHIMLA ARRIVAL KUFRI NARKANDA SARAHAN
								</p>
								<p class="aj">On arrival at shimla have fresh up and we move towards beautiful Narkanda . Enroute take ,Kufri is a small hill station in Shimla district of Himachal Pradesh state in India. It is located 13 km from the state capital Shimla on the National Highway No.22. The region around Shimla including Kufri was once a part of the Kingdom of Nepal until the area was ceded to the British Raj as part of the Sugauli Treaty. This region remained obscure from the rest of the world until the British 'discovered' it in 1819. It is the Kufri bungalow which is very famous for its statues and architecture.Kufri to the Mahasu Peak- the highest peak in Kufri.The Indira Tourist Park is near the Himalayan Nature Park and provides panoramic view of the locations around After kufri continue drive towards 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. This peak is 7 kms away from Narkanda and can be reached by trekking the mountain slopes. After this we move towards Sarahan. Sarahan……… known as the Gateway to Kinnaur.<br />
The chief landmark of this village is the impressive golden-spired Bhimakali temple that rises majestically against a snowy Himalayan backdrop. Perched at 1,920 metres, this Himachali hamlet commands a superb view of the surrounding Alpine countryside -- Rolling Meadows, apple orchards, flower-dotted valleys, silent forests, the swift Sutlej River and the haughty peaks.Overnight stay at Sarahan</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> Day 3 : SARAHAN SANGLA CHITKUL KALPA
								</p>
								<p class="aj">After breakfast, we shall make a steep climb up to the magnificent five-storied high Kamru Fort at Kamru village. The main holy deity of the Kamru Fort is Kamakhyi Devi, whose idol had been brought from Guwahati, in Assam.<br />
Later, we shall drive to the beautiful town of Kalpa via Rekong Peo, (approx. 51 kms/ 3 hours’ drive) the district headquarters. One can enjoy spectacular views of the sacred Kinner Kailash Peak, one of the most beautiful peaks in the Himalayas on the way. After breakfast, we shall go for a sightseeing excursion to the beautiful village of Chitkul, the last inhabited village near the Indo-Tibet border. The drive to Chitkul is extremely scenic amidst snow -clad mountains, apple orchids and wooden houses. One can witness the unique architecture, local lifestyle and also visit the beautiful 500 years old Goddess Chitkul Mathi temple here.<br />
Situated at the height of 2758 m above the sea level and 110 km from Sarahan, Kalpa is a beautiful and main village of Kinnaur. Across the river faces the majestic mountains of the Kinner Kailash range. These are spectacular sights early in the morning as the rising sun touches the snowy peaks with crimson and golden light.Continue our journey towards Kalpa.overnight stay at kalpa.</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> Day 4 : KALPA NAKO TABO
								</p>
								<p class="aj">After breakfast local visit of Nako. 11000+ ft asl Nako lies in Upper Kinnaur on the edge of remote spiti valley and an important centre of Tibetan Buddhism.Nako has seven temples of different periods distributed all over the village, including a monastic complex on its western edge.Nako is situated right on the Tibetan border over a beautiful lake.Drive to Nako and the evening and morning views of the lake and surrounding snow peaks is simply stunning.<br />
We shall take a detour here to Giu village famous for its naturally preserved mummy that is almost 500 years old. The mummy is said to be of a Tibetan Buddhist Lama and is in a sitting posture. We shall continue our drive and end our journey for the day 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 5:</b> Day 5 : TABO DHANKAR PIN VALLEY KAZA
								</p>
								<p class="aj">After breakfast, we shall visit Tabo monastery, which houses the priceless collection of thangkas (scroll paintings), manuscripts, well-preserved statues, frescos and extensive murals which cover almost every wall.<br />
We visit the Old monastery followed by the new one. Grander than the old monastery, the place is a picture of calm. From here we proceeded toward the nearby caves (phukpas) for which we have to hike a bit from the main road. These caves are used by monks for meditation and one of them also has an elaborate mural inside. From here one gets a bird’s eye view of Tabo village and the surrounding scenery.<br />
Later, we shall drive towards Pin valley National Park, drive towards the village of Kaza. Today we visit some extraordinary sites.The Dhankar monastery, a near 1,000 year old symbol of Vajrayana Buddhist architecture, is one of the 100 most endangered monuments in the world (as recognized by the World Monuments Fund)! It is constructed on a 300 metre high ledge in a rocky mountain near the confluence of Pin and Spiti rivers. An architectural marvel of its time, today owing to its age and an earthquake<br />
that struck the region in 1975, it is in the imminent danger of collapsing. There is also a dilapidated fort (there are some wonderful murals inside its rooms), that once enveloped the entire complex, the remnants of which can be explored by hiking. As a matter of fact, it is this fort which lends the place its name. Dhankar literally means – fort on a cliff!<br />
This journey, beside the Lingti valley, provides you with sights of some of the finest canyons and rock formations in India (some of which, atop the mountain, appear like the ramparts of a fort!). The Lalung monastery, also about a millennium old, is fondly called the Golden Temple (Serkhang) since it has statues (supposedly 1,200 years old!) which are plated in gold.<br />
Arrive Kaza and relax and go over the memories of the beauty experienced till now.</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> Day 6 : KAZA CITY TOUR
								</p>
								<p class="aj">After breakfast, we visit the world famous Ki Monastery. The car will first stop at the base of the monastery hill for the ultimate photo opportunity of this remarkable structure. With over 1000 years’ worth stories to tell, the Ki Monastery situated at a height of 13,668 feet was founded by a disciple of the famous Atisha, in the 11th century .Then we will move farther down the valley to the picturesque village of Kibber. Located at a height of 4205 metres and 18 km from Kaza, this formerly highest permanently inhabited village of this region, is also a popular base camp to embark on adventure and treks to adjoining mountains of high altitude. The expanses of beautiful landscapes and immeasurable beauty of the snow-tipped mountains makes the place a haven for nature-lovers and photographers alike.<br />
Later, we drive to some of the highest inhabited regions of the world.<br />
The highest village in Asia, Comik, which literally translates to ‘eye of a snow cock’, is situated at a height of 4513 metres. This farming village has a population of 84 people, living in utter isolation, cut-off from the rest of the world for most parts of the year. This little hamlet ensures to bring you thousands of miles away from your familiar settings to a place of soft brown pastures and snow-white mountain peaks. After Komik, we head to the picturesque village of Langza. Once you are here, you can walk about the village and visit the ancient Lang (Temple) which is estimated to be around 1000 years old. At Langza, trek back to the prehistoric era when Spiti was submerged by the Tethys Sea as you explore a land very rich with fossils of Marine animals and plants which were here millions of years ago.overnight stay at kaza.</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>MAP (Room + Breakfast + Lunch/Dinner)</li>
																		<li>2 Star Hotel</li>
																<li>Accomodation : Hotel </li><li>
Meal plan : Breakfast </li><li>
Meal plan : Dinner </li><li>
Transport : Arrival - Airport Transfer </li><li>
Transport : Departure - Airport Transfer </li><li>
Transport : Cab for Transport </li><li>
Sightseeing : Local Sightseeing </li><li>
Sightseeing : Cab for sightseeing </li><li>
Government Taxes/VAT/ Service Charges</li>
													</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Welcome Drink on Arrival </li><li>
Transport : Arrival - Airport Transfer </li><li>
Transport : Departure - Airport Transfer </li><li>
MEAL PLAN : LUNCH TRANSPORT </li><li>
 FLIGHT TICKETS</li><li>
TRANSPORT : ARRIVAL - AIRPORT TRANSFER TRANSPORT : DEPARTURE - AIRPORT TRANSFER TRANSPORT RAIL TICKETS</li><li>
NON VEG MEAL</li><li>
CABS : NON-AC 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">Specific Departure Dates :</p>2020-06-25<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>50% Advance Percentage of total booking amount~^#^~Retention Amount varies as per the number of days left before your package start date.~^#^~												</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="Hidden Jewel spiti - 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="196227"/>
						</form>
						</div>
						
						";i:1;s:57:"Book Hidden Jewel spiti - 5 Nights / 6 Days Tour Packages";i:2;s:120:"book hidden jewel spiti - 5 nights / 6 days tour packages,  tour packages, shimla, kinnaur, lahaul & spiti tour packages";i:3;s:173:"Book Hidden Jewel spiti - 5 Nights / 6 Days tour packages from Tanish Himachal Tours - Get attractive 5 Nights / 6 Days   tour packages for  Shimla, Kinnaur, Lahaul & Spiti.";i:4;s:10371:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Shimla, Kinnaur, Lahaul & Spiti"        
		                 },
		      "description": "Day 1 : DELHI -SHIMLA

Meeting and assistance on arrival at Delhi Airport/railway stationand drive to Shimla by overnight journey. A popular tourist destination, Shimla is often referred to as the "Queen of Hills," a term coined by the British. Located in the north-west Himalayas at an average altitude of 2,205 meters (7,234 ft), the city of Shimla, draped in forests, experiences pleasant summers and cold, snowy winters.Reach Shimla next morning overnight journey.

Day 2 : SHIMLA ARRIVAL KUFRI NARKANDA SARAHAN

On arrival at shimla have fresh up and we move towards beautiful Narkanda . Enroute take ,Kufri is a small hill station in Shimla district of Himachal Pradesh state in India. It is located 13 km from the state capital Shimla on the National Highway No.22. The region around Shimla including Kufri was once a part of the Kingdom of Nepal until the area was ceded to the British Raj as part of the Sugauli Treaty. This region remained obscure from the rest of the world until the British 'discovered' it in 1819. It is the Kufri bungalow which is very famous for its statues and architecture.Kufri to the Mahasu Peak- the highest peak in Kufri.The Indira Tourist Park is near the Himalayan Nature Park and provides panoramic view of the locations around After kufri continue drive towards 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. This peak is 7 kms away from Narkanda and can be reached by trekking the mountain slopes. After this we move towards Sarahan. Sarahan……… known as the Gateway to Kinnaur.
The chief landmark of this village is the impressive golden-spired Bhimakali temple that rises majestically against a snowy Himalayan backdrop. Perched at 1,920 metres, this Himachali hamlet commands a superb view of the surrounding Alpine countryside -- Rolling Meadows, apple orchards, flower-dotted valleys, silent forests, the swift Sutlej River and the haughty peaks.Overnight stay at Sarahan

Day 3 : SARAHAN SANGLA CHITKUL KALPA

After breakfast, we shall make a steep climb up to the magnificent five-storied high Kamru Fort at Kamru village. The main holy deity of the Kamru Fort is Kamakhyi Devi, whose idol had been brought from Guwahati, in Assam.
Later, we shall drive to the beautiful town of Kalpa via Rekong Peo, (approx. 51 kms/ 3 hours’ drive) the district headquarters. One can enjoy spectacular views of the sacred Kinner Kailash Peak, one of the most beautiful peaks in the Himalayas on the way. After breakfast, we shall go for a sightseeing excursion to the beautiful village of Chitkul, the last inhabited village near the Indo-Tibet border. The drive to Chitkul is extremely scenic amidst snow -clad mountains, apple orchids and wooden houses. One can witness the unique architecture, local lifestyle and also visit the beautiful 500 years old Goddess Chitkul Mathi temple here.
Situated at the height of 2758 m above the sea level and 110 km from Sarahan, Kalpa is a beautiful and main village of Kinnaur. Across the river faces the majestic mountains of the Kinner Kailash range. These are spectacular sights early in the morning as the rising sun touches the snowy peaks with crimson and golden light.Continue our journey towards Kalpa.overnight stay at kalpa.

Day 4 : KALPA NAKO TABO

After breakfast local visit of Nako. 11000+ ft asl Nako lies in Upper Kinnaur on the edge of remote spiti valley and an important centre of Tibetan Buddhism.Nako has seven temples of different periods distributed all over the village, including a monastic complex on its western edge.Nako is situated right on the Tibetan border over a beautiful lake.Drive to Nako and the evening and morning views of the lake and surrounding snow peaks is simply stunning.
We shall take a detour here to Giu village famous for its naturally preserved mummy that is almost 500 years old. The mummy is said to be of a Tibetan Buddhist Lama and is in a sitting posture. We shall continue our drive and end our journey for the day at Tabo.

Day 5 : TABO DHANKAR PIN VALLEY KAZA

After breakfast, we shall visit Tabo monastery, which houses the priceless collection of thangkas (scroll paintings), manuscripts, well-preserved statues, frescos and extensive murals which cover almost every wall.
We visit the Old monastery followed by the new one. Grander than the old monastery, the place is a picture of calm. From here we proceeded toward the nearby caves (phukpas) for which we have to hike a bit from the main road. These caves are used by monks for meditation and one of them also has an elaborate mural inside. From here one gets a bird’s eye view of Tabo village and the surrounding scenery.
Later, we shall drive towards Pin valley National Park, drive towards the village of Kaza. Today we visit some extraordinary sites.The Dhankar monastery, a near 1,000 year old symbol of Vajrayana Buddhist architecture, is one of the 100 most endangered monuments in the world (as recognized by the World Monuments Fund)! It is constructed on a 300 metre high ledge in a rocky mountain near the confluence of Pin and Spiti rivers. An architectural marvel of its time, today owing to its age and an earthquake
that struck the region in 1975, it is in the imminent danger of collapsing. There is also a dilapidated fort (there are some wonderful murals inside its rooms), that once enveloped the entire complex, the remnants of which can be explored by hiking. As a matter of fact, it is this fort which lends the place its name. Dhankar literally means – fort on a cliff!
This journey, beside the Lingti valley, provides you with sights of some of the finest canyons and rock formations in India (some of which, atop the mountain, appear like the ramparts of a fort!). The Lalung monastery, also about a millennium old, is fondly called the Golden Temple (Serkhang) since it has statues (supposedly 1,200 years old!) which are plated in gold.
Arrive Kaza and relax and go over the memories of the beauty experienced till now. Day 6 : KAZA CITY TOUR
After breakfast, we visit the world famous Ki Monastery. The car will first stop at the base of the monastery hill for the ultimate photo opportunity of this remarkable structure. With over 1000 years’ worth stories to tell, the Ki Monastery situated at a height of 13,668 feet was founded by a disciple of the famous Atisha, in the 11th century .Then we will move farther down the valley to the picturesque village of Kibber. Located at a height of 4205 metres and 18 km from Kaza, this formerly highest permanently inhabited village of this region, is also a popular base camp to embark on adventure and treks to adjoining mountains of high altitude. The expanses of beautiful landscapes and immeasurable beauty of the snow-tipped mountains makes the place a haven for nature-lovers and photographers alike.
Later, we drive to some of the highest inhabited regions of the world.
The highest village in Asia, Comik, which literally translates to ‘eye of a snow cock’, is situated at a height of 4513 metres. This farming village has a population of 84 people, living in utter isolation, cut-off from the rest of the world for most parts of the year. This little hamlet ensures to bring you thousands of miles away from your familiar settings to a place of soft brown pastures and snow-white mountain peaks. After Komik, we head to the picturesque village of Langza. Once you are here, you can walk about the village and visit the ancient Lang (Temple) which is estimated to be around 1000 years old. At Langza, trek back to the prehistoric era when Spiti was submerged by the Tethys Sea as you explore a land very rich with fossils of Marine animals and plants which were here millions of years ago.overnight stay at kaza.

Day 7 : KAZA CHANDERTAL

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

Day 8 : CHANDERTAL MANALI
After breakfast Chander Tal –Manali by road and way back via Rohtang Pass ( Rohtang pass situated at the height of 3978 meters on eastern Pir Panjal range of the Himalyas, about 51 km from Manali connects the Kullu valley) , Enjoy the scenic view of snow covered peaks at Rohtang / ,Solang ,Nehru Kund, Rahala Falls ,Gulaba .Leave back to kasol. Overnight Stay at kasol

Day 9 : KASOL DELHI DROP

Early morning we move towards Manikaran on tour we enjoy parbati valley huge mountains and the furious flow of parbati river with beautiful deodar trees which you never forgot in your whole life.
Manikaran, located at an altitude of 1737 m, is a famous pilgrimage centre for both Sikhs and Hindus, situated 45 km from Kullu, in the state of Himachal Pradesh. The name ‘Manikaran’ refers to jewel. According to a legend, Goddess Parvati, wife of Shiva, the Hindu god of destruction, lost a precious jewel in a water body in this region. When Parvati asked Shiva to look for it, He asked His followers to hunt for it. When they were unable to find the jewel, Shiva flew into a rage an opened his third eye. This action caused disruption in the earth which led to the creation of innumerable precious stones and jewels.
Parvati Valley is situated in the northern Indian state of Himachal Pradesh. From the confluence of the Parvati River with the River Beas, the Parvati Valley runs eastwards, through a steep-sided valley from the town of Bhuntar, in the Kullu district of Himachal Pradesh in Northern India.
After visiting Manikaran cab will move towards delhi to drop you at Airpot/Railway station.

Tour Ends !!!!!!!!!",
		      "name": "Hidden Jewel spiti",
		      "telephone": "+91-9736035555"
		    }
		    </script>
			";i:5;N;}