a:6:{i:0;s:11146:"				<div class="h1"><h1>Heritage on Wheels Train Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.gomyjourney.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.gomyjourney.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Heritage on Wheels Train 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/17434/4102.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/17434/4102.jpg"  width="150" height="150"    alt="Heritage on Wheels Train Tour" title="Heritage on Wheels Train Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											
					<td class="p10px">
											<p class="mb5px"><b>Tour Code :</b> GIJ-22/2012-13</p>
												<p class="mb5px"><b>Duration :</b> 
						3 Nights / 4 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Bikaner, Jaipur, Mandawa, Nawalgarh, Gajner</p>
												<p><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.gomyjourney.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Heritage on Wheels Train 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="7101"/>
						</form>
						</p>
											</td>
					</tr>
					</table>
										<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: Jaipur
									</p>
									<div class="data p10px">The train leaves Jaipur at around 19.30 hrs. The journey begins at 1930 hrs in the evening. Tourists who reach early have plenty of time to explore the city on their own. So, before boarding the train and starting off their royal journey on board New Luxury Train (Heritage on Wheels), tourists can go round as per their wish and see the major attractions of the city.<br />
<br />
Arrival In Jaipur<br />
Jaipur has an international airport of its own which operates flight to many international destinations. Tourists can land directly at the Jaipur airport. Alternatively, they can also take a flight to Delhi and then catch another flight to Jaipur. They can also drive down or catch a train from Delhi to reach Jaipur. Jaipur is 258 kms from Delhi.<br />
<br />
For domestic passengers, Jaipur is connected to all the major places in the country like Delhi, Mumbai, Agra, Ahmedabad, Bundi, Jodhpur, Bikaner, Udaipur and Bharatpur by road. Trains from Jaipur run to destinations like Mumbai, Calcutta, Bangalore,Chennai, Varanasi, Lucknow, Agra, Mathura, Udaipur and Jodhpur.<br />
<br />
Jaipur Attractions<br />
Hawa Mahal, City Palace, Amber Fort, Jantar Mantar and Central Museum.<br />
<br />
Tourists are required to check in and board at 18.30 hrs. The luxury train leaves for its first destination Bikaner at around 19.30 hrs. Dinner is served on board at 20.00 hrs.</div>					
										<p><b>Meals : </b> Dinner</p>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 2: Jaipur - Bikaner - Haat - Gajner
									</p>
									<div class="data p10px">Arrival in Bikaner<br />
<br />
The train arrives in Bikaner at around 06.00 hrs. Breakfast is served on board at 07.00 hrs. Thereafter, tourists are boarded on an AC luxury coach and taken to see the Bikaner Fort.<br />
<br />
Morning Sightseeing:<br />
Junagadh Fort - Built by Raja Rai Singh in the year 1593, the Junagadh Fort is one fort which has remained invincible amidst all attacks and aggressions. Its uniqueness also lies in the fact that unlike the other fortress of Rajasthan, it is not built on a hill top. Rather it is built on a plain. The main entrance of the fort is through te Suraj Pol or the Sun Gate. Within the fort, there are numerous other structures like the Chandra Mahal, Anup Mahal, Ganga Niwas and Rang Mahal or the palace of pleasure. The fort is a standing reminder of the valor and skills of the Rajput rulers.<br />
<br />
Back to New Luxury Train (Heritage on Wheels)<br />
Tourists are brought back to the New Luxury Train (Heritage on Wheels) and at around Heritage Wheels11.00 hrs, the train leaves for Haat. The train arrives at Haat and leaves for Gajner at around 12.15 hrs. Gajner is reached around at 13.15 hrs.<br />
<br />
Lunch - Tourists can enjoy a sumptous meal in Gajner.<br />
Post Lunch Activities.<br />
<br />
Camel Safari-<br />
Camel Safari is one of the prime attractions in the state of Rajasthan. Seated on the back of the ship of the desert, tourists can experience how people in the ancient times traveled from one place to another. Camel Safari is one exotic ride that gives a feeling of exhilaration and adventure simultaneously. It can be a bit tiring as well for those who are not used to it.<br />
<br />
Tea at the Lal Garh Palace-<br />
Lalgarh Palace is one of the major tourist site in Rajasthan. Built by Maharaja Ganga Singhji as a mark of respect to his father, Raja Lal Singhji, the Lal palace is a pretty recent construction (it was built in the year 1902). Thered sand stone building is exquisitely decorated with latticework and filigree. Massive courtyards and marble pillars dominate the interiors of the palace.<br />
<br />
Back to New Luxury Train (Heritage on Wheels)<br />
After an exciting day, tourists are brought back to the New Luxury Train (Heritage on Wheels)at around 18.30 hrs. Dinner is served on board. The luxury train moves for its Tour Package Heritage on Wheels next destination, Tal Chhapar at around 23.30 hrs.</div>					
										<p><b>Meals : </b> Breakfast, Lunch, Dinner</p>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 3: Tal Chhapar - Ramgarh - Mandawa - Nawalgarh
									</p>
									<div class="data p10px">Arrival In Tal Chhapar<br />
The train arrives at the Padhiyar Railway Staion at 04.00 hrs and later to Tal Chhapar Station at around 07.15 hrs. Breakfast isserved on board.<br />
<br />
Morning Sightseeing<br />
Tal Chhapar Sanctuary<br />
The Tal Chhapar Sanctuary, situated in the Churu district in the north western part of Rajasthan is quiet famous for its population of Black Bucks. Originally, a hunting ground of Maharaja of Bikaner, Tal Chhapar was declared a sanctuary in the year 1962. It covers an area of 719 sq km and houses numeorus other animals apart from the Black Bucks. Prominent among these are Chinkara, Jungle Cat, Rojra and Fox. Numerous migratory birds can also be seen in this area during the month of September. Some of the names of resident as well as migratory birds are Skylark, Crested Lark, Ring Dove, BrownDove, Blue Jay, Imperial Eagle, Tawny Eagle, Short-toed Eagle and SparrowHawk.<br />
<br />
Back to the New Luxury Train (Heritage on Wheels)<br />
Tourists are taken back to the New Luxury Train (Heritage on Wheels). The train departs for Ramgarh at 09.00 hrs.<br />
<br />
Arrival at Ramgarh<br />
The train arrives at Ramgarh at 11.00 hrs. From there, tourists are taken for sightseeing trip to Ramgarh.<br />
<br />
Sightseeing<br />
Ramgarh Havelis-<br />
The havelis of Ramgarh are huge, almost like a mansion. These havelis were constructed by the founder of the place, the Poddar family. With their magnificent architecture and beautiful motifs painted on the walls, the havelis are worth visiting.<br />
<br />
Mandawa Havelis-<br />
Mandawa havelis belong to the Goenka family of the region. The splendour of the havelis are attractive and worth visiting.<br />
<br />
Lunch - Delicious lunch can be enjoyed in the Mandawa Resort at 13.30 hrs. After lunch spend some time relaxing.<br />
<br />
Back to the New Luxury Train (Heritage on Wheels)<br />
Tourists are brought back on New Luxury Train (Heritage on Wheels) at 15.00 hrs and the train leaves for Nawalgarh.<br />
<br />
Arrival In Nawalgarh<br />
The train pulls at Nawalgarh at 1600 hrs. Tourists are taken for a sightseeing trip.<br />
<br />
Evening Sightseeing<br />
Tourists are taken for a sightseeing trip around Nawalgarh.<br />
<br />
Tea Break-<br />
Tea break at Nawalgarh refreshes the tourists if they are feeling low and tired.<br />
Back to New Luxury Train (Heritage on Wheels)<br />
Tourists are brought back to the New Luxury Train (Heritage on Wheels) at around 19.00 hrs. Dinner is served on board. The train leaves back for Jaipur at around 20.00 hrs.</div>					
										<p><b>Meals : </b> Breakfast, Lunch, Dinner</p>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 4: Jaipur
									</p>
									<div class="data p10px">Arrive in Jaipur The train arrives at Jaipur Station at 06.30 hrs. Breakfast is served on board. This is the end of the journey. With pleasant memories, tourists un board the train and proceed towards their home.</div>					
										<p><b>Meals : </b> Breakfast</p>					
									</li>
									<br />					
							</ul>						<!--DATA2 EMD--></div>
											
						<div class="ic bdr" id="data4"><!--DATA4 START-->
						<br />
													<p class="b mb5px dif">Inclusions :</p>
							<ul>
																	<li>Sightseeing</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:68:"Book Heritage on Wheels Train Tour - 3 Nights / 4 Days Tour Packages";i:2;s:160:"book heritage on wheels train tour - 3 nights / 4 days tour packages, forts and palaces tour packages, bikaner, jaipur, mandawa, nawalgarh, gajner tour packages";i:3;s:198:"Go My Journey Pvt Ltd offers Heritage on Wheels Train Tour - 3 Nights / 4 Days tour package, budget Forts and Palaces tour packages for Bikaner, Jaipur, Mandawa, Nawalgarh, Gajner at exciting price.";i:4;s:444:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Bikaner, Jaipur, Mandawa, Nawalgarh, Gajner"        
		                 },
		      "description": "",
		      "name": "Heritage on Wheels Train Tour",
		      "telephone": "+91-9711877344"
		    }
		    </script>
			";i:5;N;}