a:6:{i:0;s:11096:"				<div class="h1"><h1>Golden Triangle Tours India</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.journeyasia.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.journeyasia.co.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Golden Triangle Tours India</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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Jaipur, Agra, Fatehpur Sikri, Sikandrai</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.journeyasia.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Golden Triangle Tours India - 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="107029"/>
						</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_1/7828/177371.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/7828/177371.jpg"  width="150" height="150"    alt="Golden Triangle Tours India" title="Golden Triangle Tours India" /></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 Delhi
								</p>
								<p class="aj">Arrive Delhi in the evening. Upon arrival, you shall met & assisted with your baggages at the airport by our executive and transferred to prebooked hotel.<br />
Delhi : India’s capital & a major gateway to the country, contemporary Delhi is a bustling metropolis which successfully combines in its fold the ancient & the modern. Its strategic location was one of the prime reasons why successive dynasties chose it as their seat of power. New Delhi also reflects the legacy the British left behind . The division between New & Old Delhi is the distinction between the capitals of the British & the Moghuls respectively. So, wherever the visitor goes, he will invariably confront the citys’ past.</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
								</p>
								<p class="aj">After breakfast, half day city tour of Old Delhi. Visit Jama Masjid, the largest mosque in India. Built by Shah Jahan, the construction was started in 1844 and was not completed until 1658; drive past Red Fort, which was also built by Shah Jehan. This massive fort was built from 1638 to 1648; Chandni Chowk and Rajghat - the cremation site of Mahatma Gandhi.<br />
Afternoon, city tour of New Delhi. Visit Humayuns Tomb : built in mid 16th century this is an early example of Mughal architecture; Qutab Minar, drive past India Gate, President House, Connaught Place. The tour ends with a visit to Laxmi Narayan Temple.</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 - Jaipur (260 Kms, 05-06 Hrs Drive)
								</p>
								<p class="aj">After breakfast, drive to Jaipur : The capital city of the state of Rajasthan also know as “Pink City” owes its name, its foundation and planning to the great warrior astronomer Maharaja Jai Singh II. The city of Jaipur has broad avenues. The city sits on a dry lake bed in a wild and somewhat arid landscape, surrounded by barren hills surmounted by fortresses and crenellated walls.Upon arrival, check-in at prebooked Hotel. Rest of the day at leisure.</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> Jaipur
								</p>
								<p class="aj">After breakfast, excursion to Amber Fort enroute witness the façade of Hawa Mahal or the Palace of Winds which was built in 1799. Amber Fort - The ancient capital of the state until 1727 when Jai Singh decided to move from his hillside fortress at Amber to new site on the plains. The construction of this fort began in 1592 by Raja Man Singh, the Rajput commander of Akbar’s army. The fort is a superb example of Rajput architecture, stunningly situated on a hillside and overlooking a lake which reflects its terraces and ramparts. Visit the Jagmandir or the hall of victory glittering with mirrors, Jal Mahal & temple of Kali. Ascend on elephant back, the hill, on which the fort is situated.<br />
Afternoon, city tour of Jaipur. Visit the Jantar Mantar – the observatory built by Jai Singh in 1728; the City Palace which is a blend of Rajasthani and Mughal architecture. It also has a museum with an extensive collection of art, carpets, paintings, enamel ware and weapons dating back to the 15th century.</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> Jaipur - Fatehpur Sikri - Agra (240 Kms, 06-07 Hrs Drive)
								</p>
								<p class="aj">After breakfast, leave for Agra. Enroute visit the abandoned Mughal city of Fatehpur Sikri : built by Emperor Akbar in 1569, was the old capital of the Mughals, which was abandoned after 15 years due to scarcity of water. See the graceful buildings including the Jama Masjid, Tomb of Salim Chisti, Panch Mahal & other Palaces which are still preserved in its original glory. <br />
Continue drive to Agra. Arrive Agra in the evening and checkin at prebooked hotel for 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> Agra - Delhi (210 Kms, 04-05 Hrs Drive)
								</p>
								<p class="aj">After breakfast, city tour of Agra. Visit Red fort, which was built by Emperor Akbar in 1565, and additions were made up until the time of his grandson, Shah Jahan. It contains the hall of public and private audiences amongst many other beautiful structures; Itmad-ud-daulah, which was constructed by Nur Jahan between 1622 and 1628 and is very similar to the tomb she constructed for her husband, Jehangir, near Lahore in Pakistan; the highlight of the day - The Taj Mahal, which was constructed by Shah Jahan in memory of his wife Mumtaz Mahal. Construction of the Taj began in 1631 and was not completed until 1653.<br />
Afternoon, leave for Delhi enroute visit Sikandra - Mughal Emperor Akbar's Mausoleum. Continue drive to Delhi. Arrive Delhi and check-in at prebooked 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> Depart Delhi
								</p>
								<p class="aj">Transfer to the airport to board your flight for 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">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.journeyasia.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Golden Triangle Tours India - 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="107029"/>
						</form>
						</div>
						
						";i:1;s:69:"Book Golden Triangle Tours India - 6 Nights / 7 Days Tour Packages";i:2;s:159:"book golden triangle tours india - 6 nights / 7 days tour packages, heritage tour packages, new delhi, jaipur, agra, fatehpur sikri, sikandrai tour packages";i:3;s:203:"Book Golden Triangle Tours India - 6 Nights / 7 Days tour packages from Journey Asia - Get attractive 6 Nights / 7 Days Heritage  tour packages for  New Delhi, Jaipur, Agra, Fatehpur Sikri, Sikandrai.";i:4;s:452:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Jaipur, Agra, Fatehpur Sikri, Sikandrai"        
		                 },
		      "description": "",
		      "name": "Golden Triangle Tours India",
		      "telephone": "+91-9910078863"
		    }
		    </script>
			";i:5;N;}