a:6:{i:0;s:14533:"				<div class="h1"><h1>Golden Triangle with Haridwar Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.getsholidayindiatour.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.getsholidayindiatour.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Golden Triangle with Haridwar 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">Tour Code </td>
						<td class="p5px pl0px vat">GHIT-23</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Jaipur, Agra, Haridwar</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.getsholidayindiatour.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Golden Triangle with Haridwar 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="116118"/>
						</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_17/507555/189123.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/507555/189123.jpg"  width="150" height="150"    alt="Golden Triangle with Haridwar Tour" title="Golden Triangle with Haridwar Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Assistance on Arrival.<br />
A 24 - hour helpline.<br />
Welcome Drink On Arrival at Hotel<br />
Daily Breakfast<br />
Hotel Accommodation on twin / double sharing basis.<br />
Travel throughout the entire journey in an air condition car.Air fare / train fare.<br />
Guide & Monuments Entrance fees during sightseeing<br />
Camera Charges / Jeep Safari / Camel Safari / Elephant Ride Charges.<br />
Expenses of personal nature such as tips, telephone calls, laundry, liquor, Insurance etc<br />
Any other item not specified in the Package Inclusions.<br />
Supplement will be applicable for Single occupancy.<br />
GST Extra<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 Arrival
								</p>
								<p class="aj">On arrival at Airport / Railway station, meet our representative and proceed to Hotel for Check in. Delhi is a city built and re-built seven times over several centuries. The capital city today marries the quaint and unique elements of different historical eras with the pace of the bustling, growing economy. At every turn of the road, the past and the present coexist. Later proceed for city Tour of NEW DELHI - drive past the stately government buildings of the British Era designed by Lutyen’s, including the Indian Gate & the Presidential Palace. Continue onto the beautiful Humayun’s tomb of the Mughal era & thereafter visit the towering minaret of Qutab Minar. Overnight at 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 2:</b> Delhi City Tour
								</p>
								<p class="aj">After breakfast visit the Jama Masjid, Red Fort and local Bazaar. After breakfast visit Jama Masjid- Jama Masjid, was commissioned to be constructed by the Mughal Emperor Shah Jahan. It holds the distinction of being one of the biggest and the most well known mosque of Old Delhi. Red Fort- The Red Fort is popularly known as the Lal Quila and is representative of the true splendor of the Mughal court. This imposing fort will engulf you with its size and grandeur. Later afternoon visit local market and temples. Overnight at 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 3:</b> Delhi – Haridwar (220 kms / 6 hrs)
								</p>
								<p class="aj">After Early Breakfast, drive to Haridwar. Arrive and check in at hotel. Later visit popular temples in Haridwar including Pareshwar Mahadev Temple, Daksha Mahadev Temple and Mansa Devi Temple. Later, visit Har-ki-Pauri (the footstep of God) - one of the most sacred ghats both in Haridwar and in India . Hindus believe that this ghat was built by Vikramaditya in the memory of his brother Bhartrihari. This ghat is also known as Brahmakund. Later witness Ganga Aarti Ceremony of the Holy River Ganges. Aarti is the beautiful ceremony in which deeyas (the oil lamps) are offered to God. Aarti can be done to a deity in the temple or it can be done to a saint also as per tradition. It is performed to God, in any manifestation, or in any form, by any name. The essence of the Ganga Aarti ceremony is a time when we say "thank you," and we offer the light of our thanks, the light of our love and the light of our devotion to the god to seek their blessings. We realize that the small deeya is nothing compared to the divine light which shines on us all day. Overnight at 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> Haridwar - Rishikesh -Haridwar
								</p>
								<p class="aj">After breakfast drive to the holy town of Rishikesh - also known as the 'place of sages', at the confluence of the Chandrabhaga and Ganga rivers. It is believed that God by the name of 'Hrishikesh' had appeared as an reply to the hard penances by Rabhiya Rishi and henceforth the place got its name. It is the starting point for the Chardham yatra pilgrims but also for the people who are interested in meditation, yoga and other aspects of Hinduis tradition. While in Rishikesh, you visit attractions like Laxman Jhula- a hanging bridge on the river Ganga is one of the most famous spot in Rishikesh. According to Indian mythology, Lakshman, the younger brother of Lord Rama crossed the Ganga with the help of hanging bridge made of Jute. The bridge offers impressive views of the river Ganga as it crisscrosses down to Haridwar. Also visit Bharat Mandir - the oldest temple in Rishikesh, near the Triveni Ghat. This temple is dedicated to Bharat, the younger brother of Lord Ram. Optional activities -White water rafting. Overnight at 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> Haridwar – Agra (390 kms / 7 hrs)
								</p>
								<p class="aj">After breakfast drive to Agra. Arrive and check in at Hotel. Akbarabad, as Agra was known during the Mughal era, is home to some of the most magnificent Mughal architectures. Situated on the banks of river Yamuna, the monumental beauty of Agra has inspired countless people around the world. This third largest city of the state of Uttar Pradesh is home to three UNESCO world heritage sites. Later Proceed to Visit to the world - famous Taj Mahal - or literally "Crown of Palaces" was built by Shah Jehan to immortalize the memory of his beloved wife Mumtaz Mahal who died tragically in 1631. After that visit, the Red Fort built by three generations of Mughal Emperors between 1565 and 1573. It housed both the presidential Palaces of the Royal family, and the military quarters. Overnight at 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 6:</b> Agra - Jaipur (260 kms / 5 hrs)
								</p>
								<p class="aj">After breakfast drive to Jaipur En-route Fatehpur Sikri - the extraordinary city built by Akbar the Great, deserted 14 years later, but which, during its brief span, exceeded London in both grandeur and population. After visit continue drive to Jaipur. Jaipur: Beautiful palaces, forts and colourful bazaars speak of the pink city’s glorious regal past. Modernity walks hand-in-hand with history in Jaipur. This largest city of Rajasthan, founded by Maharaja Sawai Jai Singh, is famous for its magnanimous hospitality. Later tour of the Pink city visiting the imposing hawa Mahal, Jantar Manter & City Palace now a museum, the ancient Observatory, The exotic Palace of the Winds & the picturesque bazaars of the walled city. Overnight at 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 7:</b> Jaipur City Tour
								</p>
								<p class="aj">After Breakfast, Visit Amber - the ancient capital of the Rajput Empire reaching the fort on elephant back. It is a deserted palace surrounded by majestic ramparts & the magnificent public & private room's evidence the splendor of the rulers of 16th & 17th century Rajasthan. Jaigarh Fort- Situated on the majestic Chilh-ka-Tola or the hill of eagles, the lofty walls of the Jaigarh Fort spread over a vast expansion of three kilometers. This impregnable fort of the Rajput was built purely for the defense activities. Nahargarh fort- Nahargarh Fort is located on the sheer rugged ridge of Aravali Hills and it forms an impressive northern backdrop of Jaipur. It looks most classy when floodlit at night. The fort overlooks the city and presents a glittering view of the city lights. It was built in 1734 and extended in 1868. Nahargarh meaning abode of the tigers was built by Jai Singh to bolster the defence of Amber. Evening explore the local bazzar. Overnight at 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 8:</b> Jaipur – Delhi (250 Kms / 05 hrs)
								</p>
								<p class="aj">After Breakfast, drive to Delhi and departure for 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>
															<li>Hotel</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Air fare / train fare.</li><li>
Guide & Monuments Entrance fees during sightseeing</li><li>
Camera Charges / Jeep Safari / Camel Safari / Elephant Ride Charges.</li><li>
Expenses of personal nature such as tips, telephone calls, laundry, liquor, Insurance etc</li><li>
Any other item not specified in the Package Inclusions.</li><li>
Supplement will be applicable for Single occupancy.</li><li>
GST Extra</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.getsholidayindiatour.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Golden Triangle with Haridwar 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="116118"/>
						</form>
						</div>
						
						";i:1;s:73:"Book Golden Triangle with Haridwar Tour - 7 Nights / 8 Days Tour Packages";i:2;s:146:"book golden triangle with haridwar tour - 7 nights / 8 days tour packages, heritage tour packages, new delhi, jaipur, agra, haridwar tour packages";i:3;s:186:"Gets Holiday India Tour offers Golden Triangle with Haridwar Tour - 7 Nights / 8 Days tour package, budget Heritage tour packages for New Delhi, Jaipur, Agra, Haridwar at exciting price.";i:4;s:1008:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Jaipur, Agra, Haridwar"        
		                 },
		      "description": "Assistance on Arrival.
A 24 - hour helpline.
Welcome Drink On Arrival at Hotel
Daily Breakfast
Hotel Accommodation on twin / double sharing basis.
Travel throughout the entire journey in an air condition car.Air fare / train fare.
Guide & Monuments Entrance fees during sightseeing
Camera Charges / Jeep Safari / Camel Safari / Elephant Ride Charges.
Expenses of personal nature such as tips, telephone calls, laundry, liquor, Insurance etc
Any other item not specified in the Package Inclusions.
Supplement will be applicable for Single occupancy.
GST Extra",
		      "name": "Golden Triangle with Haridwar Tour",
		      "telephone": "+91-8532003202"
		    }
		    </script>
			";i:5;N;}