a:6:{i:0;s:10855:"				<div class="h1"><h1>Dubai 3Nights / 4Days Return Airfare Ex - New Delhi.</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.highspiritadventures.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.highspiritadventures.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Dubai 3Nights / 4Days Return Airfare Ex - New Delhi.</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">
						3 Nights / 4 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Dubai</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.highspiritadventures.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Dubai 3Nights / 4Days Return Airfare Ex - New Delhi. - 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="74614"/>
						</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_15/445618/133194.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/445618/133194.jpg"  width="150" height="150"    alt="Dubai 3Nights / 4Days Return Airfare Ex - New Delhi." title="Dubai 3Nights / 4Days Return Airfare Ex - New Delhi." /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					4.5% Govt service tax<br />
Desert Safari With BBQ Dinner & Belly Dance<br />
Visa With Ok To Board<br />
Burj Khalifa - At The Top 124th Floor (Normal Timings)<br />
Airport Transfers Are On SIC Basis<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> Arrival & welcome
								</p>
								<p class="aj">Desert Safari With BBQ Dinner & Belly Dance - 2*<br />
<br />
3 star accomodation (Fortune Pearl Hotel - Deira or similar) with breakfast.<br />
<br />
Pick up (15:00 Hrs) from hotel lobby and drop off (21:30 Hrs) at hotel - Services from all major hotels in STANDARD VEHICLE. Duration 6 Hours<br />
<br />
The real highlight of the tour is an exciting, adrenaline-pumping 4x4 drive deep into the desert to explore the vast stretch of the golden dunes by plummeting low in the deep ditches and escalating high on the summit of the dunes. This is followed by a visit to our traditional Arabic Bedouin campsite, which enables you to capture the real essence and beauty of the desert, as you relish traditional Arabic coffee, smoke a flavored Shisha, and rivet in the mesmerizing belly dance movements and Tanura horse shows. A not to miss out is the enchanting desert sunset views that promote for an exceptional photographic experience. You will also get the opportunity to ride a camel, walk over desert sand, put on Arabic attire, adorn your hands with mind blowing henna designs, and take pictures of falcon sitting on your shoulder. To tantalize your taste buds, the tour includes a scrumptious dinner featuring international buffet with a choice of vegetarian and non-vegetarian dishes.</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> Burj Khalifa - At the Top 124th Floor (Normal Timings)
								</p>
								<p class="aj">3 star accomodation (Fortune Pearl Hotel - Deira or similar) with breakfast.<br />
<br />
No building in modern history has aroused so much curiosity and intrigue as has Burj Khalifa. Your At the Top, Burj Khalifa visit will answer all your questions. From your vantage point on level 124 of the world’s tallest building, you will experience first-hand this modern architectural and engineering marvel and know at last what it is like to see the world from such a lofty height. You’re At The Top,Burj Khalifa visit begins in the reception area on the lower ground level of The Dubai Mall. Here and throughout your journey, you will be entertained and informed by a multi-media presentation that chronicles Dubai’s exotic history and the fascinating story of Burj Khalifa. Leave the reception area aboard the 65-metre-long travelator on a trip that transports you through time, from the earliest days of Dubai to the present. Pause briefly at a unique viewing point for your first close-up view of the soaring Burj Khalifa, seen through a skylight framing its awe-inspiring height. Begin your vertical ascent to the observation deck in a high-speed elevator, travelling at 10 meters per second. As the doors open, floor-to-ceiling glass walls provide a breath-taking unobstructed 360-degree view of the city,desert and ocean. By night, sparkling lights and stars compete for your attention. Special telescopes provide virtual time-travel visions of the scenes beyond and below. You’ll see close-up real-time views as well as the past and the future, by day and by night. You can also walk the entire perimeter for the most comprehensive views. If you wish, adventure outside onto the open-air terrace to enjoy another perspective of the sweeping views below. You can even shop At The Top, Burj Khalifa and take home a truly unique souvenir of your visit. The At The Top, Burj Khalifa tour typically last 1 hour. However, you can linger as long as you like before making the return journey to the base of Burj Khalifa. You will be taking with you a fuller appreciation of this architectural wonder and a deeper understanding of Dubai’s remarkable vision.</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> Day at leisure
								</p>
								<p class="aj">You have a free day today. After breakfast, you are free to visit places of your choice by yourself to make your trip memorable. While you are finalizing your travel plan, we would be happy to suggest the places you should visit on this day. Although you have an option to book it through us or visit these place by yourself.</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> Day at leisure
								</p>
								<p class="aj">You have a free day today. After breakfast, you are free to visit places of your choice by yourself to make your trip memorable. While you are finalizing your travel plan, we would be happy to suggest the places you should visit on this day. Although you have an option to book it through us or visit these place by yourself.<br />
<br />
Departure with sweet memories.<br />
This is your last day of the trip. After breakfast, check out from the hotel as per the timings mentioned in the voucher. We suggest that you should keep this day light and check your flight timings before hand. You will be transferred to airport from the pick up location as mentioned in the voucher (If Applicable).</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>Transport</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.highspiritadventures.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Dubai 3Nights / 4Days Return Airfare Ex - New Delhi. - 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="74614"/>
						</form>
						</div>
						
						";i:1;s:91:"Book Dubai 3Nights / 4Days Return Airfare Ex - New Delhi. - 3 Nights / 4 Days Tour Packages";i:2;s:145:"book dubai 3nights / 4days return airfare ex - new delhi. - 3 nights / 4 days tour packages, forts and palaces tour packages, dubai tour packages";i:3;s:199:"Book Dubai 3Nights / 4Days Return Airfare Ex - New Delhi. - 3 Nights / 4 Days tour packages from High Spirit Adventures - Get attractive 3 Nights / 4 Days Forts and Palaces  tour packages for  Dubai.";i:4;s:610:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dubai"        
		                 },
		      "description": "4.5% Govt service tax
Desert Safari With BBQ Dinner & Belly Dance
Visa With Ok To Board
Burj Khalifa - At The Top 124th Floor (Normal Timings)
Airport Transfers Are On SIC Basis",
		      "name": "Dubai 3Nights / 4Days Return Airfare Ex - New Delhi.",
		      "telephone": "+91-8629029169"
		    }
		    </script>
			";i:5;N;}