a:6:{i:0;s:16502:"				<div class="h1"><h1>Maharaja's Express -The Heritage of India Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="https://www.grandindiatrip.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="https://www.grandindiatrip.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Maharaja's Express -The Heritage of India 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">Luxury Holiday</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, Bikaner, Jaipur, Jodhpur, Sawai Madhopur, Udaipur, Agra, Mumbai, Ajanta</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 class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">Trip Highlights<br />
Explore Ajanta caves, housing an array of Jain, Buddhist and Hindu temples Royal lunch at Durbar Hall, Udaipur Sightseeing tour to the major tourist attractions of Udaipur including City Palace, Jagdish temple, Lake Pichola and the Saheliyon Ki Baari Guided tour to majestic Mehrangarh Fort and Rohet Garh village Attend cultural performances by the Kalbeliya and Langa artists at Sam Sand dunes in Bikaner Participate or watch in the exciting Exhibition Elephant Polo match in Jaipur followed by Champagne Lunch at Jai Mahal Palace Excursion to Hawa Mahal and Amer Fort, in Jaipur Jeep safari at Ranthambore National Park Explore the Taj Mahal and Champagne breakfast at Taj Khema Guided tour to the major tourist attractions of Fatehpur Sikri including Buland Darwaza, Panch Mahal, Jama Masjid, Tomb of Salim Chishti and the Ibadat Khana</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.grandindiatrip.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Maharaja's Express -The Heritage of India 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="59791"/>
						</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_9/257644/112564.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_9/257644/112564.jpg"  width="150" height="150"    alt="Maharaja's Express -The Heritage of India Tour" title="Maharaja's Express -The Heritage of India Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Overview<br />
The Heritage of India - Maharaja's Express Tour is a tailored trip planned to take the guest across some of the most finest and popular tourist destinations in India. The journey spans over 8 days and 7 nights that start from Mumbai and concludes in New Delhi. Being on this weeklong journey this luxury hotel on wheels will travel through the Ajanta Caves in Maharashtra and reaches Rajasthan. The tour itinerary covers Rajasthan most vibrant royal and diversified towns and cities including Udaipur, Jodhpur, Bikaner, Jaipur and Agra.Trip Highlights<br />
Explore Ajanta caves, housing an array of Jain, Buddhist and Hindu temples Royal lunch at Durbar Hall, Udaipur Sightseeing tour to the major tourist attractions of Udaipur including City Palace, Jagdish temple, Lake Pichola and the Saheliyon Ki Baari Guided tour to majestic Mehrangarh Fort and Rohet Garh village Attend cultural performances by the Kalbeliya and Langa artists at Sam Sand dunes in Bikaner Participate or watch in the exciting Exhibition Elephant Polo match in Jaipur followed by Champagne Lunch at Jai Mahal Palace Excursion to Hawa Mahal and Amer Fort, in Jaipur Jeep safari at Ranthambore National Park Explore the Taj Mahal and Champagne breakfast at Taj Khema Guided tour to the major tourist attractions of Fatehpur Sikri including Buland Darwaza, Panch Mahal, Jama Masjid, Tomb of Salim Chishti and the Ibadat KhanaBooking policy followed by the Maharaja Express is as follows:<br />
If booking is done prior to 90 days of departure or more, then 25% of the total tariff is to be paid at the time of booking<br />
If booking is done less than 59 days of departure or less, then full 100% of the total tariff is to be paid at the time of booking10-0530-09<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> Mumbai
								</p>
								<p class="aj">Self report in time in lobby of The Taj Mahal Palace and Tower for a traditional welcome to a regal journey on the Maharajas Express. After completing the registration and check-in formalities for Maharajas Express train, transfer to Chhatrapati Shivaji Terminus. Welcome drinks are served on arrival and our representative will escort you to your respective cabins. The train is scheduled to depart at 16:40 hrs marking the beginning of the tour from the land of Marathas.<br />
<br />
Enjoy a sumptuous dinner and an overnight stay onboard the train.</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> Ajanta
								</p>
								<p class="aj">In the morning embark to visit the Ajanta caves. These spectacular rock-cut caves date back to 2nd century B.C and are one of the most wonderful creations of men. Situated at the distance of 104 Kms away from Aurangabad, the Ajanta caves houses an array of Jain, Buddhist and Hindu temples famous for exquisite carvings and frescoes. These caves depict scenes from life of Buddha are set in the beautiful sylvan surroundings. Return to the train after the visit for the Maharaja's hospitality and the train departs to Udaipur.<br />
<br />
Enjoy lunch and dinner on board the train with a comfortable 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 3:</b> Udaipur
								</p>
								<p class="aj">In the morning after breakfast, embark on a sightseeing tour of Udaipur the lake city. Enjoy the royal lunch served at the Fateh Prakash Palace. After lunch embark on a sightseeing tour of Udaipur. The major tourist attractions of Udaipur include City Palace, Jagdish temple, Lake Pichola and the Saheliyon Ki Baari. Later in the day, move out to the local market of Udaipur to shop for exquisite jewellery, paintings and wooden crafts.<br />
<br />
Enjoy lunch served at the Durbar Hall and dinner aboard the luxury train.</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> Jodhpur
								</p>
								<p class="aj">After enjoying a leisurely breakfast and a sumptuous lunch aboard the train, set off for a sightseeing tour of Jodhpur. The sightseeing tour will include a visit to the Old Clock Tower market and exploring the majestic Mehrangarh Fort. You may opt for an option tour to Rohet Garh village, home to Bishnoi tribe. Enjoy dinner and overnight stay on board the super luxury train</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> Bikaner
								</p>
								<p class="aj">On the day of the tour continuing the journey through the desert Maharaja's Express train reaches Bikaner. Enjoy a lavish breakfast while observing the desert as the train enters the Bikaner region. On reaching Bikaner you may choose to embark on any one of the two tours- Visit the Lalgarh Palace Museum or an excursion to the Karni Mata Temple. Later in the day if time permits head to explore the Camel Breeding Farm. The other important attraction to visit in Bikaner is Junagadh Fort. In the evening enjoy a camel cart ride in Sam Sand dunes followed by cultural performances by the Kalbeliya and Langa artists.<br />
<br />
Enjoy dinner and overnight stay aboard the train.</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> Jaipur
								</p>
								<p class="aj">Post breakfast, move out for a guided tour of Jaipur. The Jaipur sojourn will begin with an exciting Exhibition Elephant Polo match and a grand welcome at the Jai Mahal Palace hotel. Guests have both the options of either to watch or participate in the exhibition game. After a lavish lunch, proceed to visit Hawa Mahal and the majestic Amer Fort.  In the evening take a leisurely walk to explore the local markets of Jaipur that is very popular among the tourist for its great handicraft items, bangals, and textile items.<br />
<br />
Overnight stay aboard the Maharajas Express.</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> Ranthambore - Fatehpur Sikri
								</p>
								<p class="aj">On arrival at the Sawai Madhopur Railway Station, head to a safari tour, awaiting at the Ranthambore National Park. This park originally served as the hunting ground of Maharajas. Enjoying a jungle safari at this park allows for open sightings of tigers, sambar, chital, nilgai, chinkara, wild boar, sloth bear, hyena, jackal and leopard. Enjoy Lunch at the Taj Sawai Madhopur Lodge. After exploring the rich flora and fauna at the park return to the train to proceed towards the next destination on the itinerary, Fatehpur Sikri. On reaching Fatehpur Sikri, embark on a sightseeing tour of significant monuments that had been a part to the Mughal era. The major tourist attractions to visit include Buland Darwaza, Panch Mahal, Jama Masjid, Tomb of Salim Chishti and the Ibadat Khana. After the visit in the evening return to the train for dinner and 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 8:</b> Fatehpur Sikri - Agra - Delhi
								</p>
								<p class="aj">In the morning Maharaja's Express train reaches Agra, home to epitome of love the Taj Mahal. This seventh wonder of the world is also recognized as a UNESCO World Heritage Site. It was commissioned by the great Mughal emperor Shah Jahan as a memorial of his beloved wife Mumtaz Mahal. Enjoy a lavish breakfast accompanied by champagne atop the Taj Khema. After the breakfast proceed to visit the Agra Fort. Enjoy the lunch on board as you continue the last lap of this wonderful journey to Delhi. Bid farewell to the Maharaja's Express as the journey comes to an end at approximately 1530 hours on arrival into Safdarjung Station.</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>
																		<li>Meals</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Booking policy followed by the Maharaja Express is as follows:</li><li>
If booking is done prior to 90 days of departure or more, then 25% of the total tariff is to be paid at the time of booking</li><li>
If booking is done less than 59 days of departure or less, then full 100% of the total tariff is to be paid at the time of booking</li></ul><br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>Month	Departure Dates<br />
October, 2016	22<br />
November, 2016	19<br />
December, 2016	17<br />
January, 2017	14<br />
Fabruary, 2017	11<br />
March, 2017	11<br />
April, 2017	8<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. ~^#^~						
    	<p class="h dif xlarge b mb5px">Maharajas’ Express -The Heritage of India</p>
    	<div class="otherDetails aj">Price Guide<br>
Find mentioned below, the tariff of Maharajas Express the Heritage of India tour to plan your journey. The applicable fare for the different cabin and suites for the sesion beginning September has been given below for your kind perusal along with the booking and cancellation policy to help you plan your journey.<br>
<br>
Tariff for the season 2016-17 and 2017-18 :<br>
<br>
Cabin	Adult<br>
(Twin Sharing)	Single<br>
Supplement<br>
Deluxe Cabin	USD 6840	USD 5160<br>
Junior Suite	USD 9890	USD 8910<br>
Suite	USD 13800	USD 13800<br>
Presidential Suite	USD 23700	USD 23700</div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.grandindiatrip.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Maharaja's Express -The Heritage of India 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="59791"/>
						</form>
						</div>
						
						";i:1;s:85:"Book Maharaja's Express -The Heritage of India Tour - 7 Nights / 8 Days Tour Packages";i:2;s:207:"book maharaja's express -the heritage of india tour - 7 nights / 8 days tour packages, heritage tour packages, new delhi, bikaner, jaipur, jodhpur, sawai madhopur, udaipur, agra, mumbai, ajanta tour packages";i:3;s:251:"Grand India Tours & Travels offers Maharaja's Express -The Heritage of India Tour - 7 Nights / 8 Days tour package, budget Heritage tour packages for New Delhi, Bikaner, Jaipur, Jodhpur, Sawai Madhopur, Udaipur, Agra, Mumbai, Ajanta at exciting price.";i:4;s:2231:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Bikaner, Jaipur, Jodhpur, Sawai Madhopur, Udaipur, Agra, Mumbai, Ajanta"        
		                 },
		      "description": "Overview
The Heritage of India - Maharaja's Express Tour is a tailored trip planned to take the guest across some of the most finest and popular tourist destinations in India. The journey spans over 8 days and 7 nights that start from Mumbai and concludes in New Delhi. Being on this weeklong journey this luxury hotel on wheels will travel through the Ajanta Caves in Maharashtra and reaches Rajasthan. The tour itinerary covers Rajasthan most vibrant royal and diversified towns and cities including Udaipur, Jodhpur, Bikaner, Jaipur and Agra.Trip Highlights
Explore Ajanta caves, housing an array of Jain, Buddhist and Hindu temples Royal lunch at Durbar Hall, Udaipur Sightseeing tour to the major tourist attractions of Udaipur including City Palace, Jagdish temple, Lake Pichola and the Saheliyon Ki Baari Guided tour to majestic Mehrangarh Fort and Rohet Garh village Attend cultural performances by the Kalbeliya and Langa artists at Sam Sand dunes in Bikaner Participate or watch in the exciting Exhibition Elephant Polo match in Jaipur followed by Champagne Lunch at Jai Mahal Palace Excursion to Hawa Mahal and Amer Fort, in Jaipur Jeep safari at Ranthambore National Park Explore the Taj Mahal and Champagne breakfast at Taj Khema Guided tour to the major tourist attractions of Fatehpur Sikri including Buland Darwaza, Panch Mahal, Jama Masjid, Tomb of Salim Chishti and the Ibadat KhanaBooking policy followed by the Maharaja Express is as follows:
If booking is done prior to 90 days of departure or more, then 25% of the total tariff is to be paid at the time of booking
If booking is done less than 59 days of departure or less, then full 100% of the total tariff is to be paid at the time of booking10-0530-09",
		      "name": "Maharaja's Express -The Heritage of India Tour",
		      "telephone": "+91-9415285186"
		    }
		    </script>
			";i:5;N;}