a:6:{i:0;s:12041:"				<div class="h1"><h1>Himachal With Golden Temple 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>Himachal With Golden Temple 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" >
															<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/55098.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/22362/55098.jpg"  width="150" height="150"    alt="Himachal With Golden Temple Tour" title="Himachal With Golden Temple Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											
					<td class="p10px">
											<p class="mb5px"><b>Tour Code :</b> 115</p>
												<p class="mb5px"><b>Duration :</b> 
						10 Nights / 11 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Dalhousie, Manali, Shimla, Dharamshala, Amritsar</p>
												<p><b>Price (Starting From) :</b>						
						INR 27999 Per Person						</p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.geetcompany.com/travel-inquiry.htm">
						<input type="hidden" name="subject" value="Himachal With Golden Temple 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="28084"/>
						</form>
						</p>
											</td>
					</tr>
					</table>
											<div class="mt7px dif">* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.</div>
											<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: Delhi - Shimla (380 Km / 10 Hrs Drive)
									</p>
									<div class="data p10px">In the morning drive to Shimla. Shimla perched at 7000 feet above sea level, The heady combinations of Chill mountain air, orchards and colonial charms still make Shimla a dream get away. Upon arrival check-in to your hotel, Afternoon visit The Mall. Dinner and overnight in Shimla.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 2: Shimla - Kufri - Shimla
									</p>
									<div class="data p10px">After breakfast leave for sightseeing of Shimla, Afternoon leave Kufri. Evening at leisure. Dinner and overnight at Shimla.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 3: Shimla - Manali (360 Km / 10 Hrs Drive)
									</p>
									<div class="data p10px">In the morning drive to Manali - 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. Dinner and overnight at Manali.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 4: Manali
									</p>
									<div class="data p10px">Morning proceed for a half day tour of Manali visiting Hidimba Devi Temple - built in the tranquil and serene woods, Vasisht Bath, Tibetan Monastery, and Roerich art Gallery. In the afternoon half day tour of Naggar Castle and local Bazaar.Return to the hotel for Dinner and overnight at Manali.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 5: Manali
									</p>
									<div class="data p10px">Day free or take Option trip (On Own) for Full day tour of Rohtang Pass - 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 of delight. Also halt at Marhi, Ralha falls, Nehru Kund. Return to the hotel for Dinner and overnight at Manali.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 6: Manali - Dharamsala (225 Km/8 Hrs Drive)
									</p>
									<div class="data p10px">In the morning drive to Dharamsala, on arrival check in at the Hotel. Dinner and overnight at Dharamsala.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 7: Dharamsala - Dalhousie (95 Km/4 Hrs)
									</p>
									<div class="data p10px">Morning after breakfast local tour of Dharamshala visiting the Official residence of Dalai Lama the exiled Tibetan Leader, Mc Leod Ganj then depart for Dalhousie . Situated at 2039 mts in the outer slope s of the Dhauladhar range with its natural beauty and natural surroundings. On arrival check- in at the hotel. Rest of the day for leisure and shopping. Dinner and overnight at Dalhousie.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 8: Dalhousie - Khajjiar - Dalhousie
									</p>
									<div class="data p10px">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 Dinner and overnight at Dalhousie.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 9: Dalhousie - Amritar (4 Hrs)
									</p>
									<div class="data p10px">After Breakfast we checkout from Dalhousie and proceed for Amritsar by road on arrival check-in at hotel and later visit Indo-Pak Wagah Border to watch Flag Retreat Ceremony- Wagah, an army outpost on Indo-Pak border 30 Kms from Amritsar where the daily highlight is the evening "Beating the Retreat" ceremony. Soldiers from both countries march in perfect drill, going through the steps of bringing down their respective national flags. As the sun goes down, nationalistic fervour rises and lights are switched on marking the end of the day amidst thunderous applause. Return to hotel. Dinner and overnight at Amritsar.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 10: Amritsar
									</p>
									<div class="data p10px">After breakfast. Start your full day city tour with the blessings of Golden Temple-the most important sikh shrine which is also called Mecca for the Sikhs is a living symbol of the spiritual and historical traditions of the Sikhs.Then visit Jallianwala Bagh- where, on April 13, 1919, British and Gurkha soldiers opened fire on an unarmed forbidden gathering, killing hundreds of civilians. After lunch visit Maharaja Ranjit Singh Summer Palace Museum- The summer place of Maharaja Ranjit Singh which is situated in the heart of Ram Bagh, Amritsar. Dinner and overnight at Amritsar.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 11: Amritsar To Railway Station / Delhi
									</p>
									<div class="data p10px">After breakfast, checkout from hotel and drop at Amritsar Railway Station or leave by surface for Delhi.</div>					
									</li>
									<br />					
							</ul>						<!--DATA2 EMD--></div>
											
						<div class="ic bdr" id="data4"><!--DATA4 START-->
						<br />
						Shimla<br />
<br />
Manali is an ancient town located near the end of the Kullu valley on the National Highway leading to Leh. Manali is only 40 kms. away from Kullu to the north. Manali is surrounded by the towering peaks at an arm length and is located near the snow line. Manali literally means the home of Manu. Manu is the mythological character who survived when the world was drowned in flood. The fish saved him and later he recreated human life at Manali. Manali is also known as the Switzerland of India.<br />
<br />
Dharamsala<br />
<br />
Dalhousie (2036 m) is a hill station full of colonial charm that holds lingering echoes of the Raj. Spread out over the five hills (Kathlog, Potreys, Tehra, Bakrota and Balun) the town is named after the 19th century British Governer General Lord Dalhousie. It was popular with the British Army personnel in 1860's. The town’s varying altitude shades it with a variety of vegetation that includes stately grooves of pines, Deodar, oaks and flowering rhododendrowns. Rich in colonial architecture, the town preserves some beautiful churches. St. John church is the oldest one built in 1863, St. Francis was built in 1894, St. Andrew in 1903 and St. Patric in 1909.<br />
<br />
Amritsar<br />
<br />
Amritsar, literally meaning the 'Pool of the Nectar of Immortality', is one of the major cities of the Punjab state. The administrative headquarters of the Amritsar District, it is the major spiritual and cultural center of Sikhs. The city, founded in 1577 by Guru Ram Das, the fourth Sikh Guru, is mostly inhabited by the Sikhs. Amritsar has grown from a sacred village pool into a spiritual center of Sikh culture. The original pool site by which the Golden Temple is built was granted by the Mughal Emperor Akbar. In 1761 Ahmad Shah Durrani sacked the town and destroyed the temple, which was rebuilt in 1764. One of the ancient and charming cities of India, Amritsar is an important distribution center of dry-fruits in the country. Apart from an important pilgrimage center, the city is also famous for producing some exquisite items like carpets, fabrics, handicrafts etc.3.09% Government Service Tax.<br />
Any services of personal nature like laundary, tips, beverages etc<br />
Trip to Rohtang Pass.<br />
Ac will not operate in hilly region.01-1031-03							<p class="b mb5px dif">Inclusions :</p>
							<ul>
																	<li>Sightseeing</li>
																				<li>Transport</li>
																				<li>Transfers</li>
																	</ul>
							<br />
														<p class="b mb5px dif">Exclusions :</p> <ul><li>3.09% Government Service Tax.</li><li>
Any services of personal nature like laundary, tips, beverages etc</li><li>
Trip to Rohtang Pass.</li><li>
Ac will not operate in hilly region.</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:62:"Book Himachal With Golden Temple Tour - 111 Days Tour Packages";i:2;s:148:"book himachal with golden temple tour - 111 days tour packages, valley tour packages, dalhousie, manali, shimla, dharamshala, amritsar tour packages";i:3;s:179:"Geet & Company offers Himachal With Golden Temple Tour - 111 Days tour package, budget Valley tour packages for Dalhousie, Manali, Shimla, Dharamshala, Amritsar at exciting price.";i:4;s:2701:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dalhousie, Manali, Shimla, Dharamshala, Amritsar"        
		                 },
		      "description": "Shimla

Manali is an ancient town located near the end of the Kullu valley on the National Highway leading to Leh. Manali is only 40 kms. away from Kullu to the north. Manali is surrounded by the towering peaks at an arm length and is located near the snow line. Manali literally means the home of Manu. Manu is the mythological character who survived when the world was drowned in flood. The fish saved him and later he recreated human life at Manali. Manali is also known as the Switzerland of India.

Dharamsala

Dalhousie (2036 m) is a hill station full of colonial charm that holds lingering echoes of the Raj. Spread out over the five hills (Kathlog, Potreys, Tehra, Bakrota and Balun) the town is named after the 19th century British Governer General Lord Dalhousie. It was popular with the British Army personnel in 1860's. The town’s varying altitude shades it with a variety of vegetation that includes stately grooves of pines, Deodar, oaks and flowering rhododendrowns. Rich in colonial architecture, the town preserves some beautiful churches. St. John church is the oldest one built in 1863, St. Francis was built in 1894, St. Andrew in 1903 and St. Patric in 1909.

Amritsar

Amritsar, literally meaning the 'Pool of the Nectar of Immortality', is one of the major cities of the Punjab state. The administrative headquarters of the Amritsar District, it is the major spiritual and cultural center of Sikhs. The city, founded in 1577 by Guru Ram Das, the fourth Sikh Guru, is mostly inhabited by the Sikhs. Amritsar has grown from a sacred village pool into a spiritual center of Sikh culture. The original pool site by which the Golden Temple is built was granted by the Mughal Emperor Akbar. In 1761 Ahmad Shah Durrani sacked the town and destroyed the temple, which was rebuilt in 1764. One of the ancient and charming cities of India, Amritsar is an important distribution center of dry-fruits in the country. Apart from an important pilgrimage center, the city is also famous for producing some exquisite items like carpets, fabrics, handicrafts etc.3.09% Government Service Tax.
Any services of personal nature like laundary, tips, beverages etc
Trip to Rohtang Pass.
Ac will not operate in hilly region.01-1031-03",
		      "name": "Himachal With Golden Temple Tour",
		      "telephone": "+91-9896771268"
		    }
		    </script>
			";i:5;N;}