a:6:{i:0;s:10589:"				<div class="h1"><h1>Jodhpur - Jaisalmer - Bikaner(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>Jodhpur - Jaisalmer - Bikaner(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">Bikaner, Jaisalmer, Jodhpur</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="Jodhpur - Jaisalmer - Bikaner(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="117260"/>
						</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/190516.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/507555/190516.jpg"  width="150" height="150"    alt="Jodhpur - Jaisalmer - Bikaner(6N/7D) Tour" title="Jodhpur - Jaisalmer - Bikaner(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> Jodhpur (Arrival)
								</p>
								<p class="aj">After arrival check in hotel, later proceed for half day city tour visit local market and 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 2:</b> Jodhpur
								</p>
								<p class="aj">After breakfast at hotel visit the Mehrangarh Fort, situated on a low sandstone Hill, including Moti-Mahal and Phool Mahal. Also visit Jaswant Thada, an imposing Marble Memoriam built in 1899 and the museum located in the Umaid Public Gardens. 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> Jodhpur – Jaisalmer (290km 6hrs)
								</p>
								<p class="aj">After breakfast check out from hotel then drive to Jaisalmer. Jaisalmer is a giant sandcastle with a town attached, an emblem of honour in a land of rough and tumble. The fort is a living monument to long-lost desert might, a Golden City of dreams that exceeds expectations of the most travel-sick tourist or hardened history buff. Arrive at Jaisalmer , transfer to hotel. Check in to hotel, later in the evening visit the abandoned haunting village of Kuldhera and take an enjoying camel ride at the golden sand dunes of the Samm by the sunset. Later back to hotel,free for 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> Jaisalmer
								</p>
								<p class="aj">After breakfast Visit the Jaisalmer Fort, Bazars and the old mansions known as "Havelis". People still live in these ancient buildings dating from 12th to 15th century. Every house has exquisite carvings and filigreed work. Evening visit Sum / Khuri for Camel ride with dance and music. Overnight stay at tent.</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> Jaisalmer – Bikaner (340km 8hrs)
								</p>
								<p class="aj">After breakfast drive to Bikaner, The city of Bikaner was founded in 1488 from jangledesh or the country of wild bushes. It has been almost 550 years since its inception and the city has spread across the desert. Now a major trade center for wool, building stones, carpets, blankets, salt and grain, Bikaner has emerged as the lifeline of the state. Check in to hotel, day free for 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 6:</b> Bikaner
								</p>
								<p class="aj">After breakfast visit to full day sightseeing tour of Bikaner visit the Junagarh Fort. The famous fort of Junagarh was constructed by Raja Rai Singh in 1593. The grand fort has a long rampart which is almost a 1000m long and is studded with 37 bastions and two entrances. Various monuments such as Ganga Niwas, Rang Mahal, Anop Mahal with it's delicate gold leaf painting. Har Mandir - the majestic shrine, Chandra Mahal with its paintings on lime plasters Phool Mahal with its exquisite inset mirror work and Sheesh Mahal with its unique mirror chamber adorns the fort and the Karnimata Temple at Deshnok. Also visit the prestigious camel breeding farm in the evening. 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> Bikaner Drop
								</p>
								<p class="aj">After breakfast proceed towards your onward 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="Jodhpur - Jaisalmer - Bikaner(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="117260"/>
						</form>
						</div>
						
						";i:1;s:80:"Book Jodhpur - Jaisalmer - Bikaner(6N/7D) Tour - 6 Nights / 7 Days Tour Packages";i:2;s:147:"book jodhpur - jaisalmer - bikaner(6n/7d) tour - 6 nights / 7 days tour packages, heritage tour packages, bikaner, jaisalmer, jodhpur tour packages";i:3;s:202:"Book Jodhpur - Jaisalmer - Bikaner(6N/7D) Tour - 6 Nights / 7 Days tour packages from Gets Holiday India Tour - Get attractive 6 Nights / 7 Days Heritage  tour packages for  Bikaner, Jaisalmer, Jodhpur.";i:4;s:1007:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Bikaner, Jaisalmer, Jodhpur"        
		                 },
		      "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": "Jodhpur - Jaisalmer - Bikaner(6N/7D) Tour",
		      "telephone": "+91-8532003202"
		    }
		    </script>
			";i:5;N;}