a:6:{i:0;s:18780:"				<div class="h1"><h1>Hampta Pass Trek Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.himalayannavigators.in/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Hampta Pass Trek 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">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Manali</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 9500 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.himalayannavigators.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Hampta Pass Trek 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="28201"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<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_10/292604/55439.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/55439.jpg"  width="150" height="150"    alt="Hampta Pass" title="Hampta Pass" /></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_10/292604/55458.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/55458.jpg"  width="150" height="150"    alt="Rani Nalah" title="Rani Nalah" /></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_10/292604/55459.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/55459.jpg"  width="150" height="150"    alt="Indrasan Peak (2020 Meters)" title="Indrasan Peak (2020 Meters)" /></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_10/292604/55460.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/55460.jpg"  width="150" height="150"    alt="Jawara" title="Jawara" /></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_10/292604/55461.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/55461.jpg"  width="150" height="150"    alt="Hapmta Pass > view from Shigoru Campsite" title="Hapmta Pass > view from Shigoru Campsite" /></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_10/292604/55462.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/55462.jpg"  width="150" height="150"    alt="Chandratal Lake (Moon Lake)" title="Chandratal Lake (Moon Lake)" /></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_10/292604/55463.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/55463.jpg"  width="150" height="150"    alt="Chandratal Lake (Moon Lake)" title="Chandratal Lake (Moon Lake)" /></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_10/292604/55464.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/55464.jpg"  width="150" height="150"    alt="Trail to Hampta Pass" title="Trail to Hampta Pass" /></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_10/292604/55465.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/55465.jpg"  width="150" height="150"    alt="Snw Covered Shigoru Camp site > Spiti Valley > as seen from the pass" title="Snw Covered Shigoru Camp site > Spiti Valley > as seen from the pass" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					TREK FACTS:-<br />
GRADE | EASY – MODERATE<br />
DURATION | 5 DAYS<br />
APPROX TREKKING KM | 25 KMS<br />
BEST SEASON: MID JUNE TO SEPTEMBER END  <br />
REGION | MANALI (HIMACHAL PRADESH)<br />
MOUNTAIN RANGE | PIR PANJAL RANGE<br />
TREK STARTING POINT | MANALI<br />
TREK END POINT | MANALI<br />
TOTAL NIGHT CAMPING | 04 NIGHTS<br />
MAXIMUM ALTITUDE GAINED | 14100 FT. (HAMPTA PASS BY TREK) <br />
HIGHEST ALTITUDE CAMP | DAY 02 SHIA GORU (12,000 FT)<br />
TOUGHEST DAY OF THE TREK | EXCURSION TO HAMPTA PASS FROM BALU KA GHERA<br />
TEMPERATURE | MAX 25 DEGREE DURING DAY AND 0 – 5 DURING NIGHT<br />
MOBILE NETWORK AVAILABILITY | ONLY IN MANALI<br />
HIGHLIGHT | CLOSEST VIEW OF MT. DEO TIBBA (6030M) AND MT. INDRASAN (6230M) FROM HAMPTA PASS    <br />
<br />
If you are a first time trekker and wondering for a trek then Hampta Pass is the best ideal chosen place. The unforgettable high moderate Himalyan adventure Hampta Pass Trek is based in the region of beautiful Himanchal (Manali) at an altitude of 14100 ft. high. Hampta pass trekking can be done in any season, but the best time to go for trek is in the month of June to September. Hampta Pass trekking gives an amazing experience of exploring your life with special hues of nature. One gets an incredible view of rock faces, frosty valleys, thick pine forest, open meadows, adrenaline pumping waterway and pleasant as well as adventurous crossing areas.<br />
<br />
Hampta pass trek connects two beautiful valley named; Kullu and Lahaul, were one get various Landscapes. Colorful Himalayan birds, species and flowers attract the viewers by their beauty. The scenic landscape, frequently change in weather and atmosphere delights the trekkers and gives a good option of clicking pictures. Climbing on the snow stretch and finding peace with nature with the surroundings of Himalaya is vast.<br />
<br />
Itinerary Detail:<br />
It is a short trek of just 5 days. The trekking in Himanchal - Hampta Pass starts from beautiful hill station Manali. At an altitude of Manali trekkers cross from Jobra to Chika. Crossing through small pine forest, huge rock and rich vegetations are remarkable. Travelling just for four hours and you reach to the second destination of your trek - Chika. Here you enjoy the refreshing river, waterfalls and grassy land. Here the camps are tented and trekkers hold at night and relax. The second day of the trek is Balu ka Gera. At Balu Ka Gera you meet with huge rocks at Nani Lake, enjoy the icy cold water, mountain and click photographs to make your trip memorable. The next destination is Shea Goru, it is a 8 hrs journey. Colorful river side tiny flowers and patches of snow divert the attention of trekkers. At an altitude before crossing the Hampta Pass Deo Tibba Peak is clearly visible. Hampta Pass has got two ridges. The zic-zag route, U-turn, downhill and snow fall with an uncertain rainfall makes the trekking moment more enjoyable. It is an easy trek with a moderate level of walking area. Then here comes the second last destination from Siagoru to Chatru; it is a downhill trek of 5 hours. Here you get rivers and beautiful valleys in the heart of mountain ranges. The trekking is quite difficult in this area because of slippery soils and rocky edge path. Chandra River and glacier flow near it makes a remarkable statement in trek. The final destination to the trek is Chatru to Chandratal. Chatru is at a distant of 70 Kms far from Chandartal. You can drive to Chandar tal and visit the Moon Lake; it is the main point to visit in Chandartal and step back to Manali after enjoying your time at utmost. You can also enjoy the local sightseeing of Manali.<br />
<br />
So, don't be awaited and book now for wonderful mixture of interesting and adventurous activities. Meeting with the peak of Himalaya ranges and exploring it will be a tremendously ever memorable experience.<br />
<br />
Brief Itinerary<br />
Day 1 :- Manali to Chika. <br />
Day 2 :- Chika to Balu ka Ghera. <br />
Day 3 :- Balu ka Gera to Siagoru, Cross Hampta Pass <br />
Day 4 :- Siagoru to Chatru. Drive to Chandratal. <br />
Day 5 :- Chandratal to Manali.<br />
<br />
<br />
How to Reach<br />
By Air :-<br />
Bhuntar, which is 52 km away from Manali, is the nearest airport. Taxi services are available from Bhuntar to Manali.. Bhuntar is well connected to Delhi by air. The airliners that take you to this Airport are Indian Airlines, Kingfisher airlines, MDLR Airlines and Jagson Airlines, operating flights from Delhi and Chandigarh to Kullu.<br />
<br />
By Road:-<br />
Manali is well connected to Delhi. Take an overnight bus from Delhi and you will reach Manali in 12 - 14 hours. Tickets can be booked online at www.redbus.in or www.hrtc.gov.in .<br />
Tip: Since Delhi Manali is a long journey most Volvo private buses leave Delhi between 5 pm and 6 pm. The last govt bus leaves at 8.30 pm from ISBT Kashmere Gate. <br />
<br />
Manali to Delhi<br />
Like the onward journey, buses leave from Manali to Delhi between 4 and 5 p.m. Your tentative arrival at Delhi may be anywhere between 6 a.m and 10 a.m. Plan your onward journeys only post noon giving enough buffer for bus delays.Accommodation and meals in Manali. <br />
Any kind of personal expenses.<br />
Food during the transit.<br />
Insurance.<br />
Mules or porter to carry personal luggage.<br />
Anything not specifically mentioned under the head Price Includes.<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> Manali (6720 ft.) - Prini (6200 ft.) - Sethan (9500 ft) - Jobra (9700 ft.) drive, Trek to Chikka
								</p>
								<p class="aj">Today leaving Manali, drive 3 km south of Manali on the left bank of Beas River to Prini village and continue driving to Sethan or Panduropa, Starting point of our trek. By driving through the Prini village and temple located above the village. Sethan village is small settlements of early horseman known as Khampas of Tibetan origin. Who are mainly dealt with trekking mules up today? 45-minute walk through alpine forest to the Panduropa, Panduropa is known for the small paddy field - where Pandavas of Mahabharata during their exile, spent a part of time in this region and said to be cultivated crops at Panduropa. Now we trek horizontally through thickly forested area with abundance of flowers untill reaching the campsite of Chikka.</p>					
									<p><b>Meals : </b> Dinner</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> Chikka - Jwara (10800 ft.) - Balu ka Gera (12000 ft.) 5/6 hrs. Trek
								</p>
								<p class="aj">Today leaving Chikka we follow the left banks of Hamta. Later we cross Hamta stream by bridge. Another wooden bridge at short distance. Around Chhika some fantastic view of Rocky Mountains. After crossing the second bridge we climb gently to Jwara for 2 hrs. walks. Where we will pass beneath the waterfall. The next adventure is going to be a stream crossing just before Jwara. With the help of Guide and if not, with the help of riding horse you may cross the stream. Now the trail gently climbs to Balu ka Gera campsite. From where we will have first view of our next day crossing of Hamta pass. It's a beautiful campsite close to crystal clear water. Be aware of Bear in this area by early season trek and late season trek. The area itself is known for Bears Den. Keep exploring surrounding of you for a rare view of Bear.</p>					
									<p><b>Meals : </b> Breakfast, Lunch & Dinner</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> Balu Ka Gera - Hamta Pass (14100 ft.) - Shia Goru (13200 ft.) 8 Hrs. trek
								</p>
								<p class="aj">A gradual climb begins after Bhalu ka gera (bears den). Balu ka Gera that is known for wild flowers, rocks and caves. A further 1: 30 hrs. Minutes trail takes you to Hamta pass. From Hamta pass fantastic view of Deo Tibba (19700 ft.) and Indersan (20400 ft.). Which is superb to see? After crossing the Hamta pass, one enters the Lahoul valley. Walk down to the campsite near by the stream. Overnight at camp.</p>					
									<p><b>Meals : </b> Breakfast, Lunch & Dinner</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> Shia Goru - Chatru (10100 ft.) 6 hrs. Trek - Drive to Chandratal (14100 ft.) - Chattru
								</p>
								<p class="aj">Start your day early and cross-stream near the camp and follow the right bank until it joins with the Chandra River. Again, cross the same stream by small wooden bridge. Now follow the left bank of Chandra River. 30 minutes later a motor able bridge to be cross to reach at the Chhatru. Reach Chattru before 12 noon. After that drive straight to Chandratal from Chatru. Later return back to Chattru. Overnight stay in camp.<br />
<br />
In case the road to Chandratal Lake is closed due to any reason then Chatru will be the campsite for today's overnight stay. Next day we will move back to Manali from Chatru.</p>					
									<p><b>Meals : </b> Breakfast, Lunch & Dinner</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> Chattru - Rohtang Pass (13050 ft. ) - Manali (6720 ft. ) drive
								</p>
								<p class="aj">After having breakfast drive straight back to Manali over Rohtang pass. Enroute a magnificent view of Hanuman Tibba peak (19700 ft.). Drop at Manali near Mall Road.</p>					
									<p><b>Meals : </b> Breakfast</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>Meals</li>
																		<li>Transport</li>
																		<li>Transfers</li>
																		<li>Veg Meals</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Accommodation and meals in Manali. </li><li>
Any kind of personal expenses.</li><li>
Food during the transit.</li><li>
Insurance.</li><li>
Mules or porter to carry personal luggage.</li><li>
Anything not specifically mentioned under the head Price Includes.</li></ul><br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>15 JUNE (FULL), 22 JUNE, 28 JUNE<br />
												<p class="large b mb5px dif">Departure Cities with rates :</p>MANALI || RS. 9,500/- PER PERSON || 5% GST EXTRA<br /><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p><ul>
	<li><strong>50% PERCENT PAYMENT IN ADVANCE</strong></li>
</ul>~^#^~~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.himalayannavigators.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Hampta Pass Trek 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="28201"/>
						</form>
						</div>
						
						";i:1;s:60:"Book Hampta Pass Trek Tour - 4 Nights / 5 Days Tour Packages";i:2;s:104:"book hampta pass trek tour - 4 nights / 5 days tour packages, valley tour packages, manali tour packages";i:3;s:156:"Book Hampta Pass Trek Tour - 4 Nights / 5 Days tour packages from Himalayan Navigators - Get attractive 4 Nights / 5 Days Valley  tour packages for  Manali.";i:4;s:5583:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Manali"        
		                 },
		      "description": "TREK FACTS:-
GRADE | EASY – MODERATE
DURATION | 5 DAYS
APPROX TREKKING KM | 25 KMS
BEST SEASON: MID JUNE TO SEPTEMBER END  
REGION | MANALI (HIMACHAL PRADESH)
MOUNTAIN RANGE | PIR PANJAL RANGE
TREK STARTING POINT | MANALI
TREK END POINT | MANALI
TOTAL NIGHT CAMPING | 04 NIGHTS
MAXIMUM ALTITUDE GAINED | 14100 FT. (HAMPTA PASS BY TREK) 
HIGHEST ALTITUDE CAMP | DAY 02 SHIA GORU (12,000 FT)
TOUGHEST DAY OF THE TREK | EXCURSION TO HAMPTA PASS FROM BALU KA GHERA
TEMPERATURE | MAX 25 DEGREE DURING DAY AND 0 – 5 DURING NIGHT
MOBILE NETWORK AVAILABILITY | ONLY IN MANALI
HIGHLIGHT | CLOSEST VIEW OF MT. DEO TIBBA (6030M) AND MT. INDRASAN (6230M) FROM HAMPTA PASS    

If you are a first time trekker and wondering for a trek then Hampta Pass is the best ideal chosen place. The unforgettable high moderate Himalyan adventure Hampta Pass Trek is based in the region of beautiful Himanchal (Manali) at an altitude of 14100 ft. high. Hampta pass trekking can be done in any season, but the best time to go for trek is in the month of June to September. Hampta Pass trekking gives an amazing experience of exploring your life with special hues of nature. One gets an incredible view of rock faces, frosty valleys, thick pine forest, open meadows, adrenaline pumping waterway and pleasant as well as adventurous crossing areas.

Hampta pass trek connects two beautiful valley named; Kullu and Lahaul, were one get various Landscapes. Colorful Himalayan birds, species and flowers attract the viewers by their beauty. The scenic landscape, frequently change in weather and atmosphere delights the trekkers and gives a good option of clicking pictures. Climbing on the snow stretch and finding peace with nature with the surroundings of Himalaya is vast.

Itinerary Detail:
It is a short trek of just 5 days. The trekking in Himanchal - Hampta Pass starts from beautiful hill station Manali. At an altitude of Manali trekkers cross from Jobra to Chika. Crossing through small pine forest, huge rock and rich vegetations are remarkable. Travelling just for four hours and you reach to the second destination of your trek - Chika. Here you enjoy the refreshing river, waterfalls and grassy land. Here the camps are tented and trekkers hold at night and relax. The second day of the trek is Balu ka Gera. At Balu Ka Gera you meet with huge rocks at Nani Lake, enjoy the icy cold water, mountain and click photographs to make your trip memorable. The next destination is Shea Goru, it is a 8 hrs journey. Colorful river side tiny flowers and patches of snow divert the attention of trekkers. At an altitude before crossing the Hampta Pass Deo Tibba Peak is clearly visible. Hampta Pass has got two ridges. The zic-zag route, U-turn, downhill and snow fall with an uncertain rainfall makes the trekking moment more enjoyable. It is an easy trek with a moderate level of walking area. Then here comes the second last destination from Siagoru to Chatru; it is a downhill trek of 5 hours. Here you get rivers and beautiful valleys in the heart of mountain ranges. The trekking is quite difficult in this area because of slippery soils and rocky edge path. Chandra River and glacier flow near it makes a remarkable statement in trek. The final destination to the trek is Chatru to Chandratal. Chatru is at a distant of 70 Kms far from Chandartal. You can drive to Chandar tal and visit the Moon Lake; it is the main point to visit in Chandartal and step back to Manali after enjoying your time at utmost. You can also enjoy the local sightseeing of Manali.

So, don't be awaited and book now for wonderful mixture of interesting and adventurous activities. Meeting with the peak of Himalaya ranges and exploring it will be a tremendously ever memorable experience.

Brief Itinerary
Day 1 :- Manali to Chika. 
Day 2 :- Chika to Balu ka Ghera. 
Day 3 :- Balu ka Gera to Siagoru, Cross Hampta Pass 
Day 4 :- Siagoru to Chatru. Drive to Chandratal. 
Day 5 :- Chandratal to Manali.


How to Reach
By Air :-
Bhuntar, which is 52 km away from Manali, is the nearest airport. Taxi services are available from Bhuntar to Manali.. Bhuntar is well connected to Delhi by air. The airliners that take you to this Airport are Indian Airlines, Kingfisher airlines, MDLR Airlines and Jagson Airlines, operating flights from Delhi and Chandigarh to Kullu.

By Road:-
Manali is well connected to Delhi. Take an overnight bus from Delhi and you will reach Manali in 12 - 14 hours. Tickets can be booked online at www.redbus.in or www.hrtc.gov.in .
Tip: Since Delhi Manali is a long journey most Volvo private buses leave Delhi between 5 pm and 6 pm. The last govt bus leaves at 8.30 pm from ISBT Kashmere Gate. 

Manali to Delhi
Like the onward journey, buses leave from Manali to Delhi between 4 and 5 p.m. Your tentative arrival at Delhi may be anywhere between 6 a.m and 10 a.m. Plan your onward journeys only post noon giving enough buffer for bus delays.Accommodation and meals in Manali. 
Any kind of personal expenses.
Food during the transit.
Insurance.
Mules or porter to carry personal luggage.
Anything not specifically mentioned under the head Price Includes.",
		      "name": "Hampta Pass Trek Tour",
		      "telephone": "91-8091208888"
		    }
		    </script>
			";i:5;N;}