a:6:{i:0;s:7058:"				<div class="h1"><h1>From Delhi : Taj Mahal Tour By Gatimaan Express</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>From Delhi : Taj Mahal Tour By Gatimaan Express</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 Day Tour 01</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						1 Day 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Agra</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 3981 Per Person						</td>
						</tr>
												<tr>
						<td class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">Gatimaan Train Ticket (Delhi - Agra - Delhi )</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="From Delhi : Taj Mahal Tour By Gatimaan Express - 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="121284"/>
						</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/196132.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/507555/196132.jpg"  width="150" height="150"    alt="TajMahal" title="TajMahal" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					05:00 AM - Pickup From Your Hotel / Airport You’ll be picked up at your hotel in Delhi/Noida/Gurgaon/Faridabad/Ghaziabad at 05:00 by air conditioned car for the transfer to the New Delhi railway station. Depart from the New Delhi railway station for Agra. Driver will show you the seat. Enjoy the speedy, fully air conditioned express train with breakfast on board. <br />
Note: Do carry a valid ID proof along with you when you sit in the train, ID proof could be Passport copy, driving license etc. <br />
<br />
09:50 AM- Arrival at Agra and Explore Taj Mahal Meet your private guide and driver at the Agra Cantt railway station, looking for the sign (placard) with your name at exit. Begin your private tour in an air conditioned car, accompanied by your guide, and visit the Taj Mahal. The Taj Mahal was built in the 17th century by Mughal Emperor Shah Jahan as a memorial for his beloved wife Mumtaz.<br />
<br />
 12:30 PM - Explore Agra Fort After touring the Taj Mahal you’ll head to the nearby Agra Fort. Agra Fort was built in 1565 A.D. and it is another majestic creation of the Mughal Emperor Akbar. <br />
<br />
02:00 PM- Time for Lunch Enjoy a lunch break at an air conditioned multi-cuisine restaurant. <br />
<br />
03:00 PM - Mehtab Bagh and Etimad Ud Daulah (Optional) After having lunch, you will visit the Etimad-ud-Daulah also knows as Baby Taj or if you want to experience a sunset view of the Taj Mahal, then you can view the Mehtab Bagh.(Note: If time allow time? you can see both)<br />
<br />
 05:00 PM - Drive to Agra Cantt Raiway Station Later, you’ll be transferred to the Agra Cantt railway station for the return journey to New Delhi. Dinner will be served on the train. Pickup and Transfer to Hotel A driver will pick you up at the New Delhi railway station for the transfer back to your accommodation.Gatimaan Train Ticket (Delhi - Agra - Delhi )05 % GST Extra.08-0231-12<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>
																		<li>Transport</li>
																		<li>Airport Pickup-Drop</li>
																		<li>Private Cab</li>
																		<li>Veg & Non Veg Meals</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>05 % 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="From Delhi : Taj Mahal Tour By Gatimaan Express - 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="121284"/>
						</form>
						</div>
						
						";i:1;s:75:"Book From Delhi : Taj Mahal Tour By Gatimaan Express - 1 Days Tour Packages";i:2;s:119:"book from delhi : taj mahal tour by gatimaan express - 1 days tour packages, heritage tour packages, agra tour packages";i:3;s:159:"Gets Holiday India Tour offers From Delhi : Taj Mahal Tour By Gatimaan Express - 1 Days tour package, budget Heritage tour packages for Agra at exciting price.";i:4;s:2280:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Agra"        
		                 },
		      "description": "05:00 AM - Pickup From Your Hotel / Airport You’ll be picked up at your hotel in Delhi/Noida/Gurgaon/Faridabad/Ghaziabad at 05:00 by air conditioned car for the transfer to the New Delhi railway station. Depart from the New Delhi railway station for Agra. Driver will show you the seat. Enjoy the speedy, fully air conditioned express train with breakfast on board. 
Note: Do carry a valid ID proof along with you when you sit in the train, ID proof could be Passport copy, driving license etc. 

09:50 AM- Arrival at Agra and Explore Taj Mahal Meet your private guide and driver at the Agra Cantt railway station, looking for the sign (placard) with your name at exit. Begin your private tour in an air conditioned car, accompanied by your guide, and visit the Taj Mahal. The Taj Mahal was built in the 17th century by Mughal Emperor Shah Jahan as a memorial for his beloved wife Mumtaz.

 12:30 PM - Explore Agra Fort After touring the Taj Mahal you’ll head to the nearby Agra Fort. Agra Fort was built in 1565 A.D. and it is another majestic creation of the Mughal Emperor Akbar. 

02:00 PM- Time for Lunch Enjoy a lunch break at an air conditioned multi-cuisine restaurant. 

03:00 PM - Mehtab Bagh and Etimad Ud Daulah (Optional) After having lunch, you will visit the Etimad-ud-Daulah also knows as Baby Taj or if you want to experience a sunset view of the Taj Mahal, then you can view the Mehtab Bagh.(Note: If time allow time? you can see both)

 05:00 PM - Drive to Agra Cantt Raiway Station Later, you’ll be transferred to the Agra Cantt railway station for the return journey to New Delhi. Dinner will be served on the train. Pickup and Transfer to Hotel A driver will pick you up at the New Delhi railway station for the transfer back to your accommodation.Gatimaan Train Ticket (Delhi - Agra - Delhi )05 % GST Extra.08-0231-12",
		      "name": "From Delhi : Taj Mahal Tour By Gatimaan Express",
		      "telephone": "+91-8532003202"
		    }
		    </script>
			";i:5;N;}