a:6:{i:0;s:21507:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>Chandigarh- Kulu- Manali-keylong- Jispa-sarchu- Sangam River- Nubra Valley- Pangong Lake Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.spacebartravel.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.spacebartravel.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
																
					<b class="ffv p2px">&rsaquo;</b> Chandigarh- Kulu- Manali-keylong- Jispa-sarchu- Sangam River- Nubra Valley- Pangong Lake Tour</p>
					</div>
					</div>
					</div>
					<script>jQuery('#breadcrumbA').append(jQuery('#append2PageTittle').html());jQuery('#append2PageTittle').remove()</script>
									<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
								
						<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">
					
											<p class="mb5px"><b>Duration :</b> 
						8 Nights / 9 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Chandigarh City, Kullu, Manali, Jispa, Tabo, Kalpa</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.spacebartravel.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Chandigarh- Kulu- Manali-keylong- Jispa-sarchu- Sangam River- Nubra Valley- Pangong Lake 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="196110"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_24/696543/311145.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_24/696543/311145.jpg"  width="150" height="112"    alt="Chandigarh- Kulu- Manali-keylong- Jispa-sarchu- Sangam River- Nubra Valley- Pangong Lake Tour" title="Chandigarh- Kulu- Manali-keylong- Jispa-sarchu- Sangam River- Nubra Valley- Pangong Lake Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<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> On Arrival at Chandigarh Airport/Railway station
										</p>
										<p class="aj">Our representative will pick you up and drive towards Manali via Kullu Valley. 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 2:</b> Manali- Rohtang Pass- Sarchu
										</p>
										<p class="aj">Depart Manali early in the morning our first halt is Marhia barren landscape offering extensive views of the valley and the mountains. We proceed to Rotang Pass 3,790 Mtrs is most popular with visitors, being one of the highest road point and gateway to LAHUL and SPITI Valleys. Futher drive to Darcha is situated at the junction of Yotchen Nullah and the Zanskar Chhu which takes off from the Shinkun La. Both these Nullahs meet with the main river Bhaga at this place continue to Sarchu and check into your Camp. Overnight in Camp.</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> Sarchu Nakeela- Lachungla  Pass- MorePlain and reach Leh
										</p>
										<p class="aj">Depart in the morning at dawn. Our journey through Nakeela & Lachungla Pass 16,617Ft’, Reach Pang by afternoon Lunch breaks at Pang, en-route. More Plains (Biggest and Highest Plateau on Earth on Stretch of 42 Kms), Taklangla Pass(2nd Highest Motorable Road in the World at a Height of 17,585Ft’) & reaching Upshi, from here the road follows the Indus River, Passing villages with their Terraced Fields and neat- Whitewashed houses. On a way one notice the ruins have an ancient fort of palace or the distant glimpse of Gompa on Hill. And at last reaching Leh. Overnight in Leh Hotel.</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> Tour of Hemis, Thiksey, Shey Monastery,3Idiot School Campus, Sindhu Darshan
										</p>
										<p class="aj">After a leisurely breakfast, we drive to visit Hemis Monastery situated 45 kms west of Leh, , Hemis the largest and the wealthiest Monastery in Ladakh, from Hemis visit Thiksey Monastery located on a Hill-lock with formidable views of the Indus Valley. Thiksey is especially note worthy for its gigantic seated of the Maitreya and its (Dukhang) assembly hall which houses hundreds of rectangular prayer books. Stacked between wooden covers and bound in silk. After that we continue drive through series of the Buddha Stupa (Chorten) to visit Shey Palace the former summer palace of the Ladakh King. And visit 3 Idiot school campus at last you will see Sindhu Darshan and then back to Hotel. Overnight at Leh Hotel.</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> Tour of Khardongla Pass Nubra Valley- Hunder Sand Dunes.
										</p>
										<p class="aj">Drive 120 Kms 4/5 hrs, After breakfast drive to Khardongla Pass (18,380Ft’) the World’s highest Motorable road and gateway to Siachen Glacier, the views from the top of the Pass are amazing. Deskit Monastery (118 kms) founded by Lama Sherab Zangpo in 1420 A.D. Check inn at Camp or Hotel and after that we will visit Hundar village(7kms from Deskit) and Double-Hamped Bactrian Camel Safari in Sand Dunes at Hundar. Dinner and overnight at Hotel/Camp in Nubra.</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> Nubra Valley to Pangong Lake via Shayok.
										</p>
										<p class="aj">After breakfast at Hotel we drive to next destination Pangong Lake via Shayok and on to Tang Tse and Spangmik (Pangong ). It’s a short cut and it’s a beautiful route. The road follows the Shayok river and climbs up a mountain before finally decending into Shayok village. Its took us less than an hour to reach Shayok, and we were delighted at the sight of the rather big village surrounded by barren mountains, the entire setting being very pictures. Afternoon we reach at Pangong Lake and enjoy your day at Pangong Lake. Overnight stay at Camp.</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> Pangong Lake- Leh
										</p>
										<p class="aj">After breakfast drive to Leh. Dinner and Overnight at Hotel in Leh</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> Local Sigh Seeing of Sangam River
										</p>
										<p class="aj">After breakfast proceed to Indus & Zanskar River Sangam, drive along the Indus river visiting, Pathar Sahib Gurdwara and Magnectic Hill(Where the cars defy gravity) and futher on to Leh Hall of Fame(which has a Museum of the Kargil War Memorial House) overnight stay at the Hotel.</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 9:</b> Drop at Leh Airport
										</p>
										<p class="aj">On time departure transfer to Leh Airport.</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>EP (No Meal)</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>Some Advance Percentage of total booking amount</li><li>
Airfare/Transport fare to be paid full at one time in advance.</li></ul>					
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>Upon cancellation, refund will be made after deducting the Retention Amount.</li><li>
Retention Amount varies as per the number of days left before your package start date.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.spacebartravel.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Chandigarh- Kulu- Manali-keylong- Jispa-sarchu- Sangam River- Nubra Valley- Pangong Lake 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="196110"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.spacebartravel.com/leh-ladakh-tour-packages.htm" title="Leh Ladakh Tour Packages">Leh Ladakh</a> <b class="alpha50 bn small">(22)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.spacebartravel.com/kalpa-tour-packages.htm" title="Kalpa Tour Packages">Kalpa</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.spacebartravel.com/jispa-tour-packages.htm" title="Jispa Tour Packages">Jispa</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.spacebartravel.com/srinagar-tour-packages.htm" title="Srinagar Tour Packages">Srinagar</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.spacebartravel.com/tabo-tour-packages.htm" title="Tabo Tour Packages">Tabo</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.spacebartravel.com/manali-tour-packages.htm" title="Manali Tour Packages">Manali</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.spacebartravel.com/kargil-tour-packages.htm" title="Kargil Tour Packages">Kargil</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.spacebartravel.com/kullu-tour-packages.htm" title="Kullu Tour Packages">Kullu</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.spacebartravel.com/chandigarh-city-tour-packages.htm" title="Chandigarh City Tour Packages">Chandigarh City</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.spacebartravel.com/jammu-tour-packages.htm" title="Jammu Tour Packages">Jammu</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.spacebartravel.com/gulmarg-tour-packages.htm" title="Gulmarg Tour Packages">Gulmarg</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.spacebartravel.com/hemis-tour-packages.htm" title="Hemis Tour Packages">Hemis</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.spacebartravel.com/munnar-tour-packages.htm" title="Munnar Tour Packages">Munnar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.spacebartravel.com/sonamarg-tour-packages.htm" title="Sonamarg Tour Packages">Sonamarg</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.spacebartravel.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(22)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.spacebartravel.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(1)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Chandigarh City, Kullu, Manali, Jispa, Tabo, Kalpa</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.spacebartravel.com/holiday-packages/manalito-srinagarno-tsomoriri-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_24/696543/309724.jpg"  alt="Manali to Srinagar No Tsomoriri Tour" title="Manali to Srinagar No Tsomoriri Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.spacebartravel.com/holiday-packages/manalito-srinagarno-tsomoriri-tour.htm" title="Manali to Srinagar No Tsomoriri Tour"><h3>Manali To Srinagar No Tsomoriri Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								9 Nights / 10 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Manali, Srinagar, Leh Ladakh, Kargil, Ji..</p>
															<div class="mt10px small">
							<form name="pkg_195414" id="pkg_195414" method="post" action="https://www.spacebartravel.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.spacebartravel.com/holiday-packages/manalito-srinagarno-tsomoriri-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Manali to Srinagar No Tsomoriri Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="195414"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.spacebartravel.com/holiday-packages/manali-with-leh-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_24/696543/309736.jpg"  alt="Manali with Leh Tour" title="Manali with Leh Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.spacebartravel.com/holiday-packages/manali-with-leh-tour.htm" title="Manali with Leh Tour"><h3>Manali With Leh Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								8 Nights / 9 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Chandigarh City, Kullu, Manali, Leh Lada..</p>
															<div class="mt10px small">
							<form name="pkg_195426" id="pkg_195426" method="post" action="https://www.spacebartravel.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.spacebartravel.com/holiday-packages/manali-with-leh-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Manali with Leh Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="195426"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:132:"Book Chandigarh- Kulu- Manali-keylong- Jispa-sarchu- Sangam River- Nubra Valley- Pangong Lake Tour - 8 Nights / 9 Days Tour Packages";i:2;s:226:"book chandigarh- kulu- manali-keylong- jispa-sarchu- sangam river- nubra valley- pangong lake tour - 8 nights / 9 days tour packages, hill station tour packages, chandigarh city, kullu, manali, jispa, tabo, kalpa tour packages";i:3;s:259:"Space Bar Ladakh offers Chandigarh- Kulu- Manali-keylong- Jispa-sarchu- Sangam River- Nubra Valley- Pangong Lake Tour - 8 Nights / 9 Days tour package, budget Hill Station tour packages for Chandigarh City, Kullu, Manali, Jispa, Tabo, Kalpa at exciting price.";i:4;s:515:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Chandigarh City, Kullu, Manali, Jispa, Tabo, Kalpa"        
		                 },
		      "description": "",
		      "name": "Chandigarh- Kulu- Manali-keylong- Jispa-sarchu- Sangam River- Nubra Valley- Pangong Lake Tour",
		      "telephone": "+91-9958590680"
		    }
		    </script>
			";i:5;N;}