a:6:{i:0;s:11963:"				<div class="h1"><h1>Kinnar Kailash Parikrama Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.geetcompany.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.geetcompany.com/holiday-tour-packages.htm" title="Holiday Tour Packages">Holiday Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Kinnar Kailash Parikrama Tour</p>
				<br />
				
									<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>
					
					<table class="w100 formTable imgWidth">
					<tr>
					
											<td class="p10px vat imgWidth150 w150px">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<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_1/22362/22489.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/22362/22489.jpg"  width="150" height="150"    alt="Kinnar Kailash Parikrama Tour" title="Kinnar Kailash Parikrama Tour" /></a></p></div></li>
																		<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_1/22362/22491.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/22362/22491.jpg"  width="150" height="150"    alt="Kinnar Kailash Parikrama Tour" title="Kinnar Kailash Parikrama Tour" /></a></p></div></li>
																		<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_1/22362/22494.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/22362/22494.jpg"  width="150" height="150"    alt="Kinnar Kailash Parikrama Tour" title="Kinnar Kailash Parikrama Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											
					<td class="p10px">
											<p class="mb5px"><b>Duration :</b> 
						12 Nights / 13 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Manali, Narkanda, Sarahan, Shimla, Rampur</p>
												<p><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.geetcompany.com/travel-inquiry.htm">
						<input type="hidden" name="subject" value="Kinnar Kailash Parikrama Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="5756"/>
						</form>
						</p>
											</td>
					</tr>
					</table>
										<br />
					
					<div class="packageTabs myTabs horizontal mc"><!--MY TABS STARTS-->
					<ul class="fo lsn m0px p0px">
					
											<li id="tab2"><a href="#data2">Itinerary</a></li>
												<li id="tab4"><a href="#data4">Tour Detail</a></li>
												<li id="tab6"><a href="#data6">Terms &amp; Conditions</a></li>
											</ul>
					
					
											<div class="ic bdr" id="data2"><!--DATA2 START-->
						<br />
						<ul class="lsn m0px p0px">
									<li>
									<p class="b mb5px">Day 1: Kalka - Shimla
									</p>
									<div class="data p10px">On arrival at Kalka Airport / Railway Station and you will be met, assisted and drive to Shimla (located 90 kms). Shimla was the former summer capital of British India, set amidst the snow capped Sivalik Mountains. which offers some of the most stunning views of the mighty Himalayas. On arrival at Shimla check-in at the hotel.<br />
<br />
Overnight in Shimla (8 hrs Journey).</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 2: Shimla - Narkanda - Hattu Peak - Rampur - Jeori - Sarahan (175 Kms)
									</p>
									<div class="data p10px">After breakfast drive from Shimla enroute visit Kufri, Theog, Matiana, Narkanda hike to Hattu Peak (3135 Meter Peak) walk back to the Jeep lunch either in Narkanda / Sainj, after lunch on to Rampur, drive through Jeori reach Sarahan for a over night stay.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 3: Sarahan - Jeori - Wangtu - Karcham - Sangla - Chitkul. (125 Km/4-5hrs)
									</p>
									<div class="data p10px">After breakfast, drive to Jeori past the Wangtu bridge then drive towards, Karcham reach Sangla walk the market place if time allows visit the Kamru Fort & the Temple of the village deity in Sangla village. Afternoon drive to Chitkul (3460 Meters) last village on India & Chinese border walk for half a day around Chitkul Village.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 4: Chitkul - Sangla - Kalpa (90 Km/3 hrs )
									</p>
									<div class="data p10px">After breakfast drive back through Sangla to powari visit the monastery in Reckong - Peo with a 60 ft tall statue of Buddha drive to Kalpa for a over nite stay visit the monastery & the orphanage in Kalpa. The view of Kinner Kailash 6050 meters will be an enchanting site.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 5: Kalpa - Nako - Tabo (165 Km/4-5 hrs)
									</p>
									<div class="data p10px">After breakfast drive through Reckong - Peo through powari, the landscape changes to Desert Mountains pass through the desert terrain drive through Puh to reach Nako Visit the Lake & the Monastery of Nako walk through the Village of Nako. Afternoon drive through the desert mountain range with villages & Desert Mountains in the surroundings reach Tabo (3050) meters a more than 1000 year old monastery visit the Monastery oven night in a guest house in Tabo.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 6: Tabo - Dhankar - Kaza (65 Kms/3-4 hrs)
									</p>
									<div class="data p10px">After breakfast drive to Dhankar the old capital of Spiti visit the museum, and drive towards the headquarters of spiti Kaza.<br />
<br />
Overnight stay in Kaza.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 7: Kaza-Ki monastery - Kibber - Kaza (40 kms/2 hrs)
									</p>
									<div class="data p10px">After breakfast drive towards beautiful monastery Key, then drive towards world, s highest Motorable village Kibber (4205m) have lunch in Kibber, after lunch go for village walk in Kibber.<br />
<br />
Overnight stay in Kaza.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 8: Kaza - Langza - Komic - Kaza (40 kms/2 hrs)
									</p>
									<div class="data p10px">Leave after breakfast drive to reach Langza, Hikkim and Komic, these three villages are situated at an altitude of 4265 mtrs - 4500 mtrs.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 9: Kaza - Losar - Kunzum La - Keylong (200 kms/9-10 hrs)
									</p>
									<div class="data p10px">Early in the morning start from Kaza and drive towards Losar, have breakfast in Losar, reach Kunzum Pass (4551 mtrs) after that drive down towards river Chandra and reach Tandi where we have confluence of two rivers called Chandra and Bhaga and make its Chandrabhaga river, by the evening arrive Keylong.<br />
<br />
Overnight stay in hotel.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 10: Keylong - Trilolinath Temple - Udeypur - Keylong
									</p>
									<div class="data p10px">After breakfast drive to Trilokinath Temple It is a place worshiped by both the Buddhists and the Hindus. Hindus worship the deity in the temple, situated at a distance of 53 km. from Keylong, as that of Shiv and the Buddhist as that of Avalokiteshwar. Udeypur, home of the Mrikula Devi Temple, which is famous for wood carvings. This sub-divisional headquaters is situated at the junction of the mighty Mayar nullah with the main river Chandrabhaga.<br />
<br />
Overnight at Keylong.<br />
<br />
If Kunzum pass is Block you can Drive same day Via Jalori Pass Extra Amount Rs : 4,000.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 11: Keylong - Rohtang pass - Manali (201 Km)
									</p>
									<div class="data p10px">Early in the morning after breakfast drive towards Loser, drive towards Rohtang Pass (3978 m) reach Manali for overnight.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 12: Manali Local
									</p>
									<div class="data p10px">After breakfast enjoy local sight seeing of Manali, visit the four-tiered Hidimba Temple amidst Deodar trees. Imbibe the local ambience on the Mall, shop for souvenirs at the Tibetan / Hong Kong Market. "HIDIMBA TEMPLE" Built in 1553 with a superbly crafted four tiered pagoda roof, it is famous for its exquisitely carved doorway. "CLUB HOUSE" The Club House with its comprehensive facilities that include a roller skating rink, an auditorium, billiards rooms, a library, a bar and restaurant makes wonderful outing for the day." Tibetan Monastery, Van Vihar, and "VASHISHT" Well known for its hot springs. There are old temples dedicated to the sage Vashisth and to Lord Rama.<br />
<br />
Overnight stay at the hotel in Manali.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 13: Manali - Kalka (Departure)
									</p>
									<div class="data p10px">After breakfast, enjoy your day till the time of departure transfer to railway Station to board your scheduled train for onward destination. Back to home with sweet memories.</div>					
									</li>
									<br />					
							</ul>						<!--DATA2 EMD--></div>
											
						<div class="ic bdr" id="data4"><!--DATA4 START-->
						<br />
						2 Rooms for 4 Adults and 3 Kids 11/12/5 Yrs.<br />
<br />
Remarks<br />
<br />
The rates are subjects to change without any prior notice.<br />
Accommodation in the itinerary at the mentioned hotels or the similar hotels.<br />
The confirmation is subjects to availability.Any monument entry fees / camera fees.<br />
Any meal, which is not mentioned above.<br />
Any guide charges.<br />
Any air / train fare.<br />
3.09 % extra service tax on the total bill.<br />
Hotel accommodation for Shimla.							<p class="b mb5px dif">Inclusions :</p>
							<ul>
																	<li>Hotel</li>
																				<li>Transport</li>
																	</ul>
							<br />
														<p class="b mb5px dif">Exclusions :</p> <ul><li>Any monument entry fees / camera fees.</li><li>
Any meal, which is not mentioned above.</li><li>
Any guide charges.</li><li>
Any air / train fare.</li><li>
3.09 % extra service tax on the total bill.</li><li>
Hotel accommodation for Shimla.</li></ul><br />
													<!--DATA4 EMD--></div>
												<div class="ic bdr" id="data6"><!--DATA6 START-->
						<br />
						* Some Advance Percentage of total booking amount * Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount. * Retention Amount varies as per the number of days left before your package start date. ~^#^~						<!--DATA6 EMD--></div>
											
					<!--MY TABS END--></div>
					";i:1;s:70:"Book Kinnar Kailash Parikrama Tour - 12 Nights / 13 Days Tour Packages";i:2;s:165:"book kinnar kailash parikrama tour - 12 nights / 13 days tour packages, religious & pilgrimage tour packages, manali, narkanda, sarahan, shimla, rampur tour packages";i:3;s:213:"Book Kinnar Kailash Parikrama Tour - 12 Nights / 13 Days tour packages from Geet & Company - Get attractive 12 Nights / 13 Days Religious & Pilgrimage  tour packages for  Manali, Narkanda, Sarahan, Shimla, Rampur.";i:4;s:885:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Manali, Narkanda, Sarahan, Shimla, Rampur"        
		                 },
		      "description": "2 Rooms for 4 Adults and 3 Kids 11/12/5 Yrs.

Remarks

The rates are subjects to change without any prior notice.
Accommodation in the itinerary at the mentioned hotels or the similar hotels.
The confirmation is subjects to availability.Any monument entry fees / camera fees.
Any meal, which is not mentioned above.
Any guide charges.
Any air / train fare.
3.09 % extra service tax on the total bill.
Hotel accommodation for Shimla.",
		      "name": "Kinnar Kailash Parikrama Tour",
		      "telephone": "+91-9896771268"
		    }
		    </script>
			";i:5;N;}