a:6:{i:0;s:15711:"				<div class="h1"><h1>6 Days TUTC Glamping in Ladakh Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.nomadicsteps.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.nomadicsteps.co.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>6 Days TUTC Glamping in Ladakh 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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Leh Ladakh</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.nomadicsteps.co.in/enquiry-form-10003.htm">
						<input type="hidden" name="subject" value="6 Days TUTC Glamping in Ladakh 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="86152"/>
						</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_16/466826/150989.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/466826/150989.jpg"  width="150" height="150"    alt="6 Days TUTC Glamping in Ladakh Tour" title="6 Days TUTC Glamping in Ladakh Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<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> Arrive at Leh - Check into the Chamba Camp, Thiksey
								</p>
								<p class="aj">The tour starts with your arrival into Leh. Arrive at the Leh Airport early morning. You will be greeted by our representative and transferred to your residence, The Chamba Camp, Thiksey. Enjoy a traditional welcome of Ladakh. Check-in to your well-appointed luxury tents, after the check-in formalities are completed.<br />
<br />
There will be no activity on your day of arrival. It is medically required that you relax. Visitors undergo minimal exertion to enable you to acclimatize to the diluted oxygen levels at this high-altitude.<br />
<br />
Excursion specialist at Chamba Camp, Thiksey will meet with you to discuss the itinerary suggested. Plan your excursions and make changes if required, to suit your interests, choices and leisure.<br />
<br />
Overnight stay at the Chamba Camp, Thiksey.</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> The old city
								</p>
								<p class="aj">Start the day late. Enjoy a leisurely breakfast. Walk around the camp site, taking in the sights and the atmosphere. Each tent opens out to picturesque scenery. The unmatched beauty of the tough terrain creates an aura of serenity. Visitors forget all worries and hassles of the city and can relax.<br />
<br />
If you are an early riser, set out for bird watching sojourn with our camp naturalist. Spot and identifying a variety of birds of the Trans Himalayan region.<br />
<br />
This afternoon following lunch, proceed on an introductory tour of Leh, located approximately 19 kilometers (1 hr) from your camp. Visit popular landmarks which include the wonderful Leh Palace. Built by King Sengge Namgyal in the 17th century, the palace has nine storeys', some of which are in ruins. Some of the sections display fine traces of Ladakhi architecture. From the palace continue by foot to the LAMO [Ladakh Arts & MediaOrganisation] Centre on a short walking tour passing some enchanting old houses. The centre is housed in one of the most important heritage houses, Munshi (Togoche) House situated at the foot of the Leh Palace. Following a tour of the house there will be a short presentation by a Ladakhi scholar on the architectural heritage of the old city. Enjoy a view of the old city from the terrace of the Munshi House as you sip the special Ladakhi tea with light snacks. The Heritage exploration continues from Munshi House through the old city ending in the bazaar.<br />
<br />
Conclude your tour at the Shanti Stupa, perched upon a great vantage point over Leh, with spectacular views of the stone strewn landscape, as you relish a hot cup of traditional Ladakhi butter tea watching the setting sun.<br />
<br />
Conclude your tour at the Shanti Stupa, perched upon a great vantage point over Leh, with spectacular views of the stone strewn landscape, as you relish a hot cup of traditional Ladakhi butter tea watching the setting sun.<br />
<br />
Return to the Chamba Camp, Thiksey for a comfortable overnight stay.</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> Explore Thiksey and Hemis Monastery
								</p>
								<p class="aj">Start the day early. Enjoy warm sips of tea or coffee, after which you proceed for a visit to the Thiksey monastery. Only a kilometre from your camp, you can easily climb the hill top on which the monastery is nestled. This gorgeous monastery houses a two storey statue of the Maitreya Buddha seated on a lotus, and boasts of a spectacular view of the valley. At the monastery, you will have the privilege to participate in the Morning Prayer ceremony at sunrise.<br />
<br />
Continue on a guided tour of the monastery, visiting the beautiful prayer room which has many handwritten and painted books. Also pay respects to temple dedicated to goddess Tara with her 21 images placed in glass-covered wooden shelves. You will also see small shrines devoted to the guardian divinities including Cham-Sing, the protector deity of Thiksey.<br />
<br />
Return to the camp for a leisurely breakfast. The rest of the morning is free, allowing you time to relax and take in the pristine beauty around you. You can indulge in our optional cycling trip in the vicinity of the Thiksey village and its surroundings. Or else you could also choose to drive to the Saboo village for a séance session with the Oracle. You have to confirm the visit to the Oracle in advance to be given audience.<br />
<br />
This afternoon, proceed to explore the Hemis Monastery. The oldest monastic institution of Ladakh, situated about 20 kilometres (1 hr) from Thiksey is built in a secluded valley, the monastery belongs to the Drukpa School or the Dragon Order of Mahayana Buddhism. Explore the many interesting facets of this institution, established under the patronage of King Senge Namygal in the 13th century, where young lamas are taught literature, history, philosophy, yoga and tantra. The monastery halls are adorned with beautiful statues and mural paintings.<br />
<br />
Return to the camp, later in the evening, as the sun sets. The inspring views of the golden sun setting on the rustic landscape with the Thiksey Monastery standing tall as a monumental backdrop is simply magical. You l be enchanted by a cultural dance performance, Zyabro at the camp.<br />
<br />
Enjoy an overnight stay at the Chamba Camp, Thiksey.</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> Walking in the Footsteps of Buddha
								</p>
								<p class="aj">Start the day with a healthy breakfast. Next you embark on an exploration of the monastic treasures of Ladakh.<br />
<br />
Drive through picturesque landscape along the River Indus, arrive at the fabled Alchi Monastery, built in the 11th century. Founded by Ringchen Zangpo, the Great Translator, the Alchi Gompa displays a Kashmiri influence in its art and architecture. Within the monastery you will see beautiful Tibetan and Gandhara style murals of Ladakh, frescos and images of the Buddha. Relish a picnic lunch.<br />
<br />
On your way back from Alchi, you will stop by at the Basgo fort. Built in the 16th century, Basgo, literally "Bull's Head" in the local language, was the centre of power and politics in this region at one point of time. It houses a copper-gilt Buddha statue in one of its prayer halls. The ruins of the fort bear the horrific evidence of the invasions of the Mongols.<br />
<br />
Alternatively combine your visit to Alchi with an optional rafting excursion. Take a gentle rafting trip down the Indus River, floating past traditional Ladakhi villages, enjoying the mesmerizing views, and the contrast between the greenery of the Nimoo village on one bank and the stark barren landscape of the other. Following a picnic lunch continue to the fabled Alchi Monastery.The rewarding day ends at the camp. Enjoy a delicious dinner and a comfortable overnight stay.</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> Explore the Stok village and Palace
								</p>
								<p class="aj">The morning is at leisure. Today there are no fixed plans. After an early morning breakfast, either avail the optional Excursion to Wari – La or séance with the Oracle.<br />
<br />
The Wari La, the world's fourth-highest motorable road is one of the most scenic roads of Ladakh. This pass connects the two most exotic and most toured valleys in this Trans-Himalayan region. You get a breathtaking view of the Nubra valley, which lies beyond the pass, as well as the many villages dotting the Indus valley. After a short safety briefing at the top you will cycle down the best track the Ladakh Himalayas have to offer. The road criss-crosses its way on the mountain side into the green oasis of Shakti village, where we will end our trip and then drive back to camp for a late lunch.<br />
<br />
Alternatively, you may choose to visit the local oracle. Buddhists are firm believers in the influence of the spirits on the material world. This is taken into consideration when any new venture or major activity is to be initiated. The lamas associated with the monasteries play the key role of a mediator between the world of the humans and the spirits. Not only do they perform the rites necessary to appease the gods, but they also take on the role of astrologers and oracles who can predict an auspicious time for starting any work, whether ploughing the fields, or taking in the harvest, arranging a marriage or going on a journey. Today you have the opportunity to drive to the village of the Oracle for a séance session in Ladakh.<br />
<br />
Later, this afternoon, you will drive 20 kilometres (1hr) to visit the Stok Palace, across the River Indus. Take a walk through the Palace, a beautiful medieval fortress, serving as the residence of the Queen Mother and Prince of Ladakh. A section of this Palace has been converted into a museum which houses some of the most interesting and priceless collections of the Royal family. Admire some of the exquisite royal perak (headgear) embedded with priceless coral and turquoise. The museum also exhibits Royal costumes, coins, photographs and paintings. Continue onwards to the Stok village. Explore the rustic beauty of the village as you walk down the narrow lanes, catching a glimpse of local village life, culminating at a quaint Ladakhi house, where you can enjoy a nice cup of tea.<br />
<br />
Return to your camp for a restful overnight stay.</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> Goodbye to the land of the lamas
								</p>
								<p class="aj">Bid farewell to the enchanting and breath-taking mountainous and rugged terrain of Ladakh. After your breakfast, you will be transferred to the Leh airport. Board your flight to your 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>
												</ul>
						<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* 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. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.nomadicsteps.co.in/enquiry-form-10003.htm">
						<input type="hidden" name="subject" value="6 Days TUTC Glamping in Ladakh 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="86152"/>
						</form>
						</div>
						
						";i:1;s:74:"Book 6 Days TUTC Glamping in Ladakh Tour - 5 Nights / 6 Days Tour Packages";i:2;s:133:"book 6 days tutc glamping in ladakh tour - 5 nights / 6 days tour packages, valley tour packages, new delhi, leh ladakh tour packages";i:3;s:163:"Nomadic Steps offers 6 Days TUTC Glamping in Ladakh Tour - 5 Nights / 6 Days tour package, budget Valley tour packages for New Delhi, Leh Ladakh at exciting price.";i:4;s:428:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Leh Ladakh"        
		                 },
		      "description": "",
		      "name": "6 Days TUTC Glamping in Ladakh Tour",
		      "telephone": "+91-9469261146"
		    }
		    </script>
			";i:5;N;}