a:6:{i:0;s:10188:"				<div class="h1"><h1>Jaipur - Pushkar - Mount Abu - Udaipur - Jodhpur(6N/7D) 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>Jaipur - Pushkar - Mount Abu - Udaipur - Jodhpur(6N/7D) 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">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">Ajmer, Jaipur, Jodhpur, Udaipur, Sirohi</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="Jaipur - Pushkar - Mount Abu - Udaipur - Jodhpur(6N/7D) 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="117225"/>
						</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/190480.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/507555/190480.jpg"  width="150" height="150"    alt="Jaipur - Pushkar - Mount Abu - Udaipur - Jodhpur(6N/7D) Tour" title="Jaipur - Pushkar - Mount Abu - Udaipur - Jodhpur(6N/7D) Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					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.<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> Jaipur Arrival
								</p>
								<p class="aj">Arrival at Jaipur , transfer to the hotel and after wash & change enjoy full day sightseeing of Jaipur Visiting City Palace, Hawa Mahal, Jantar Mantar, City palace, Museum and local market. 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> Jaipur – Pushkar (125 km 2-3 hrs)
								</p>
								<p class="aj">After breakfast visit Amer fort later continues drive toward Pushkar, visiting en-route Ajmer it is popular for the tomb of Dargah Sharif Tomb of Khwaja Moinuddin Chishti, a well-known Sufi saint. Evening reach pushkar check in at hotel. Later enjoy Pushkar Sightseeing covering Brahma ji Temple. 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> Pushkar – Mount Abu (385 km 8hrs)
								</p>
								<p class="aj">After breakfast Drive to Mount Abu, the only hill station of Rajasthan, situated at an altitude of 1200 mt. Day at leisure. 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> Mount Abu – Udaipur (120 km 3hrs)
								</p>
								<p class="aj">After breakfast, visit the world famous Dilwara Jain Temple, Nakki Lake and Brahmin Kumari Ashram and after that proceed for your onward journey. 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> Udaipur
								</p>
								<p class="aj">Today, after breakfast, you enjoy sightseeing in Udaipur which includes Saheliyon Ki Bari – the courtyard (garden) for the maids of the Queen, Jagdish temple – a temple dedicated to Lord Vishnu, formerly known as the temple of Jagannath Rai. The last visit of the day is City Palace – built by Maharaja Udai Singh, it is situated amidst Lake Pichola. Evening enjoy boat ride at lake pichola. 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> Udaipur – Jodhpur (325 km 7hrs)
								</p>
								<p class="aj">After breakfast drive toward Jodhpur. On arrival Jodhpur check in at hotel. Evening visit Clock Tower and local market of Jodhpur. 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> Jodhpur City Tour and Drop
								</p>
								<p class="aj">After breakfast proceed for half day sightseeing we begin our tour with one of the largest forts of the country, the majestic Mehrangarh fort. The fort is famous for its expansive courtyards, intricate carvings and multi-storeyed palaces. Our next stop will be near the fort, on the banks of a lake, the Jaswant Thada. This is the memorial of Maharaja Jaswant Singh II. Made of gleaming white marble on a platform of red sandstone this monument is worth a visit. Later departure to your onwards journey.</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>Sightseeing</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Air fare / train fare. Guide & Monuments Entrance fees during sightseeing 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="Jaipur - Pushkar - Mount Abu - Udaipur - Jodhpur(6N/7D) 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="117225"/>
						</form>
						</div>
						
						";i:1;s:99:"Book Jaipur - Pushkar - Mount Abu - Udaipur - Jodhpur(6N/7D) Tour - 6 Nights / 7 Days Tour Packages";i:2;s:178:"book jaipur - pushkar - mount abu - udaipur - jodhpur(6n/7d) tour - 6 nights / 7 days tour packages, heritage tour packages, ajmer, jaipur, jodhpur, udaipur, sirohi tour packages";i:3;s:218:"Gets Holiday India Tour offers Jaipur - Pushkar - Mount Abu - Udaipur - Jodhpur(6N/7D) Tour - 6 Nights / 7 Days tour package, budget Heritage tour packages for Ajmer, Jaipur, Jodhpur, Udaipur, Sirohi at exciting price.";i:4;s:1037:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Ajmer, Jaipur, Jodhpur, Udaipur, Sirohi"        
		                 },
		      "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": "Jaipur - Pushkar - Mount Abu - Udaipur - Jodhpur(6N/7D) Tour",
		      "telephone": "+91-8532003202"
		    }
		    </script>
			";i:5;N;}