a:6:{i:0;s:18150:"				<div class="h1"><h1>Rendezvous Himachal Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.avashshergilltravel.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.avashshergilltravel.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Rendezvous Himachal 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">
						8 Nights / 9 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Dalhousie, Manali, Shimla, Dharamshala</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.avashshergilltravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Rendezvous Himachal 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="35143"/>
						</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_12/357911/71757.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/357911/71757.jpg"  width="150" height="150"    alt="Rendezvous Himachal Tour" title="Rendezvous Himachal Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Expenses of personal nature such as tips, telephone calls, laundry, liquor etc.<br />
Any other item not specified in 'cost includes'.<br />
Guide & Entrance fees during sightseeing.<br />
GST @ 3.09% extra.<br />
Air fare / train fare.<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 (370kms)
								</p>
								<p class="aj">Arrive Delhi and transfer by road to Shimla (343 Kms / 8 hrs) 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. Overnight stay at hotel.<br />
Explore Shimla<br />
Shimla, India<br />
Shimla is one of the most popular and another top honeymoon destinations in India. The moment you enter, you'll be greeted with salubrious climate, and more<br />
Top things to do<br />
Restaurants<br />
Hotels<br />
Shopping<br />
Travel Tips</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> Shimla - Kufri - Shimla
								</p>
								<p class="aj">Morning tour of Shimla - Kalbadevi Temple, Jakhu Temple, Hanuman Temple or stop for a while at the beautiful stained - glass - windows of Christ Church, which was built in the 1850 ‘s. Afternoon excursion to Kufri a 30 Minutes drive from Shimla, an exotica of nature as a place surrounded by dense forest and snow caped mountains amidst virgin peaks and natures flora and fauna where one can see more<br />
<br />
Kalbadevi Temple<br />
Temple<br />
Kalba Devi Temple is one of the most popular religious places in the Indian State of Himachal Pradesh. The temple of Kalbadevi is located in Shimla and is akin to many followers. The Kalbadevi <br />
Maximum Duration of Visit: 2:0 hrs<br />
<br />
Jakhu temple<br />
Temple<br />
The most attractive aspect about this temple is the 108 feet tall statue of Lord Hanuman that adds to the sacred environment of the temple. Legend has it that the place where the temple is built has Maximum Duration of Visit: 2:0 hrs<br />
<br />
Christ Church<br />
Church<br />
Christ Church, Shimla, is the second oldest church in North India, after St John's Church in Meerut.Built in the neo-Gothic style in 1857 to serve the largely Anglican British community in what was Maximum Duration of Visit: 3:0 hrs<br />
<br />
Kufri Place to Visit Kufri is also a heaven for nature enthusiasts and wildlife lovers as the Himalayan Nature Park is situated on the outskirts of the town. It is especially popular. Among trekkers and skiing Maximum Duration of Visit: 3:0 hrs</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> Shimla To Manali (260kms)
								</p>
								<p class="aj">In the morning drive to Manali a 7/8 Hours drive take you to the valley of Gods, is a combination of natural splendor and rich cultural heritage. On arrival check-in at the hotel. Rest of the day at leisure. Overnight at the hotel.<br />
<br />
Explore Manali<br />
<br />
Manali, India<br />
Manali Located in the state of Himachal Pradesh, Manali is an ancient town surrounded by snow capped peaks and close in proximity to the snow line. It has a more<br />
Top things to do<br />
Restaurants<br />
Hotels<br />
Shopping<br />
Travel Tips</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> Manali
								</p>
								<p class="aj">Morning proceed for a half day tour of Manali visiting Hidimba Devi Temple - built in the tranquil and serene woods, Vashisth Bath, Tibetan Monastery, and Roerich art Gallery. In the afternoon half day tour of Naggar Castle and local Bazaar. Return to the hotel for Overnight stay<br />
<br />
Hidimba Devi Temple<br />
Temple<br />
Hidimba Devi Temple, also known variously as the Hidimba Temple,is located in Manali,a hill station in the State of Himachal Pradesh in north India.It is an ancient cave temple dedicated to Hidimba<br />
Maximum Duration of Visit: 1:0 hrs<br />
<br />
Vashisth Hot Water Springs<br />
Place to Visit<br />
Vashisth Hot Water Springs and Temple. Vashisth, a small village with natural Sulphur springs. Modern bathhouses, with Turkish-style showers, have the hot water piped into them for the convenience of Maximum Duration of Visit: 2:0 hrs<br />
<br />
Tibetan Monasteries<br />
Monastery<br />
Tibetan Monastery is one of the oldest and famous place in Manali. Due to huge number of tibetan peoples settled in Kullu Manali Tibetan Monasteries has been set up.The main attraction of the Maximum Duration of Visit: 3:0 hrs<br />
<br />
Nicholas Roerich Art Gallery<br />
Place to Visit<br />
Prof. Late Nicholas Roerich, a reputed artist had chosen Naggar as his residence when he came to India in 1929. The house has now been converted in an art gallery which houses numbers of rare <br />
Maximum Duration of Visit: 3:0 hrs<br />
<br />
Naggar Castle<br />
Temple<br />
A unique medieval structure, Naggar Castle is a very popular tourist spot located close to Manali in Naggar. Built around 1460 AD, by Raja Sidh Singh of Kullu, the castle has a unique architectural Maximum Duration of Visit: 3:0 hrs<br />
<br />
Lakkar bazaar<br />
Shopping Place<br />
Lakkar Bazaar is a marketplace adjoining the Ridge in Shimla ,India .Shops offer wooden articles targeted mainly at tourists. There is also a roller skating rink in Lakkar Bazaar.Lakkar Bazaar is Maximum Duration of Visit: 3:0 hrs</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> Manali - Rohtang Pass - Manali
								</p>
								<p class="aj">Full day tour of Rohtang Pass (AT OWN COST) - The majesty of the mountains and the glaciers can be seen at their best; you have next two hours to enjoy this snowy haven. Take a sledge ride down the slopes, try your luck climbing the little snow hills. On you’re descents to Manali, halt at the Rahalla falls and Solang Valley. The Magnificent views and natural beauty are a never-ending source more<br />
<br />
Rohtang Pass<br />
Activity Place<br />
Rohtang Pass is a high mountain pass on the eastern Pir Panjal Range of the Himalayas around 51 km from Manali. It connects the Kullu Valley with the Lahaul and Spiti Valleys of Himachal Pradesh, Maximum Duration of Visit: 3:0 hrs<br />
<br />
Rahala Falls<br />
Waterfall<br />
Situated about 16 km from Manali at the starting point of the stunning Rohtang Pass, Rahala Falls is a popular picnic spot in Manali. At an altitude of 2,501 m, this pretty waterfall is an aftereffect Maximum Duration of Visit: 3:0 hrs<br />
<br />
Solang Valley<br />
Scenic Beauty/View<br />
Solang Valley popularly known as Snow Point, is 13 km northwest of Manali and famous for its 300-meter ski lift. It is a picturesque spot and offers splendid views of glaciers and the snow-capped <br />
Maximum Duration of Visit: 3:0 hrs<br />
<br />
Nehru Kund<br />
Scenic Beauty/View<br />
Nehru Kund: Nehru Kund is located at the distance of around 6 km from Manali. It is one of the natural springs of natural water in India. Nehru Kund is named after the late Prime Minister Jawar Lal <br />
Maximum Duration of Visit: 3:0 hrs</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> Manali To Dharamsala (235 Kms)
								</p>
								<p class="aj">After breakfast drive to Dharamsala. Arrive Dharamsala and check in at hotel. After you will visit Baijnath - the oldest existing Shiva temple in the country, War Memorial, Kanga Art Museum, Dally Lake, McLeod Ganj, St. Johns Church etc. Overnight at the Hotel.<br />
<br />
Explore Dharamsala<br />
<br />
Dharamsala, India<br />
Dharamsala or Dharamsala is a hill station in Himachal Pradesh, famed for its large Tibetan community centred around the activities of the Dalai Lama.The major more Top things to do<br />
Restaurants<br />
Hotels<br />
Shopping<br />
Travel Tips<br />
<br />
Baijnath temple<br />
Temple<br />
Baijnath lies on the Pathankot-Chakki-Manali National Highway No. 20, half way between Kangra and Mandi. It is about 130 Km from Pathankot, the nearest broad gauge rail head and airport. Kangra Maximum Duration of Visit: 2:0 hrs<br />
<br />
War Memorial<br />
Amusement Park<br />
War Memorial is adorning the entrance to the great old holy city of Dharamsala. Memorial is placed in a perfect place of peace, amidst the lush green pine trees to pay tribute to Great War heroes from Maximum Duration of Visit: 2:0 hrs<br />
<br />
Kangra Art Museum<br />
Museum<br />
Kangra Art Museum is Situated in Kotwali Bazaar of Dharamsala, Kangra Art Gallery was inaugurated in 1990. The museum has unique paintings, old coins, sculptures and old artifacts which are on display Maximum Duration of Visit: 2:0 hrs<br />
<br />
Dal Lake<br />
Things to do<br />
The name Dal Lake is taken from Kashmir natural's lake called Dal Lake, is a small mid-altitude lake (1,775 m above sea level) near the village of Tota Rani in Kangra district (Himachal Pradesh) in Maximum Duration of Visit: 3:0 hrs<br />
<br />
Mcleod Ganj<br />
Place to Visit<br />
McLeod Ganj is a village in the suburbs of Dharamshala, in Kangra district of Himachal Pradesh, India. It has an average elevation of 2,082 metres. It is situated in the lap of Dhauladhar Range, a Maximum Duration of Visit: 3:0 hrs<br />
<br />
St. John's Church<br />
Church<br />
St. John Church in Dharamshala is also known as St. John Church in Wilderness. St. John in the Wilderness is an Anglican church dedicated to John the Baptist built in 1852, located near Dharamshala, Maximum Duration of Visit: 2:0 hrs</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> Dharamsala To Dalhousie (143kms)
								</p>
								<p class="aj">Morning after breakfast departs for Dalhousie (4 hrs.). Situated at 2039 mts in the outer slope s of the Dhaula Dhar range with its natural beauty and natural surroundings. On arrival check- in at the hotel. Rest of the day for leisure and shopping. Overnight at the hotel.<br />
<br />
Explore Dalhousie<br />
<br />
Dalhousie, India<br />
Dalhousie is a scenic hill station in the western Himachal Pradesh. Its old world charm holds lingering echoes of the era of British Raj. The hill station was more Top things to do<br />
Restaurants<br />
Hotels<br />
Shopping<br />
Travel Tips<br />
<br />
Dhauladhar<br />
Mountain<br />
The Dhauladhar range The White Range is a southern branch of the main Outer Himalayan chain of mountains. The highest peak in the range is the Hanuman ji Ka Tiba , or White Mountain, about 5,639.</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> Dalhousie
								</p>
								<p class="aj">Full day sightseeing to Khajjiar, 18 Kms from. Dalhousie. Its one of the most scenic saucer shaped Plateau and is surrounded by dense pine and Deodar forests, its beauty has further been enhanced by a small lake in the center with a floating island and 9-hole golf course here are the other interesting places to cover. Return to Dalhousie and overnight at the hotel.<br />
<br />
Khajjiar<br />
Mountain<br />
Khajjiar is often referred to as "Gulmarg of Himachal Pradesh". The lush green meadows are surrounded by thick pine and cedar forests. Grazing herds of sheep, goats and other milch cattle present a</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> Dalhousie To Pathankot (chakkibank)
								</p>
								<p class="aj">After breakfast we checkout from hotel and proceed for Chakkibank. Drop at Railway Station. TOUR END</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>Sightseeing</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Expenses of personal nature such as tips, telephone calls, laundry, liquor etc.</li><li>
Any other item not specified in 'cost includes'.</li><li>
Guide & Entrance fees during sightseeing.</li><li>
GST @ 3.09% extra.</li><li>
Air fare / train fare.</li></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.avashshergilltravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Rendezvous Himachal 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="35143"/>
						</form>
						</div>
						
						";i:1;s:63:"Book Rendezvous Himachal Tour - 8 Nights / 9 Days Tour Packages";i:2;s:139:"book rendezvous himachal tour - 8 nights / 9 days tour packages, valley tour packages, dalhousie, manali, shimla, dharamshala tour packages";i:3;s:192:"Book Rendezvous Himachal Tour - 8 Nights / 9 Days tour packages from Avash Shergill Travel - Get attractive 8 Nights / 9 Days Valley  tour packages for  Dalhousie, Manali, Shimla, Dharamshala.";i:4;s:650:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dalhousie, Manali, Shimla, Dharamshala"        
		                 },
		      "description": "Expenses of personal nature such as tips, telephone calls, laundry, liquor etc.
Any other item not specified in 'cost includes'.
Guide & Entrance fees during sightseeing.
GST @ 3.09% extra.
Air fare / train fare.",
		      "name": "Rendezvous Himachal Tour",
		      "telephone": "+91-8699559635"
		    }
		    </script>
			";i:5;N;}