a:6:{i:0;s:10846:"				<div class="h1"><h1>Dubai Tour 3N 4D Days</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.excellworldholidays.com/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Dubai Tour 3N 4D Days</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.excellworldholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Dubai Tour 3N 4D Days - 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="11238"/>
						</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_1/27643/13103.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/27643/13103.jpg"  width="150" height="150"    alt="Dubai Tour 3N 4D Days" title="Dubai Tour 3N 4D Days" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Dubai<br />
Between minarets and skyscrapers, stone and chrome, lies the fastest growing city in the world: Dubai. Known for its shopping, sand, and sun, Dubai attracts millions of visitors every year, and envelopes them in luxury and efficiency. The city is also steeped in ancient history, yet the old and the new are intertwined implacably, and tradition fits neatly alongside consumerism.<br />
Weather:<br />
Summer : May to Sept 24-38 C<br />
Shopping:<br />
Dubai's shopping scene is extremely vibrant, and known the world over. It flourishes and thrives on diversity, from the traditional spice and gold souks, to enormous malls and retail outlets. Everything from electronics to antiques, and designer clothes of all leading Brand of the world to fresh flowers, is available in Dubai's sprawling shopping areas. Everything is duty-free, and most visitors feel obligated verify this claim; and are pleasantly surprised at its veracity.<br />
<br />
Must Do:<br />
Feel the dynamism of Dubai by exploring the new-age world of breathtaking skyscrapers, gourmet treats and luxury shopping; or the old Dubai of mosques, wind towers, shawarma and souks. There are limitless entertainment options, and you can club all night long to the latest mixes, or experience live Moroccan music and smoke sheesha (water pipes) at cafes. There are plenty of top-notch restaurants in Dubai, and there variety shows you the city's rich cultural mix and diverse population. You can also laze around on Dubai's beaches, or enjoy its world class golf facilities.Any expenses of personal nature viz. tips to driver & Guide, cigarettes, laundry, telephone calls, mini- bar etc. <br />
GST 5.12%<br />
Beverages and drinks at all meal venues [will be charged extra].<br />
Meals other then mentioned above<br />
Personal Insurance and those of damages or loss of Properties.<br />
All extra incurred at the Hotel other than mentioned. Optional Tours -<br />
Atlantis (aqua venture + lost chambers) with transfers - $ 80 for adult & $ 65 for child above 2 & below 12 years<br />
Ferrari world park - Adult - $ 85 ! Child - $ 65 ( When on Abu Dabhi tour Transfers extra .<br />
Dolphin Show $ 35 PP Child $ 25 PP<br />
Burj Khalifa $ 35 PP Child $ 30 PP<br />
Burj Al Arab Hotel for Evening Snacks with transfer $ 95 PP.<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 Dubai / Sharjah Scheduled Departure 4.45 Am From Nagpur
								</p>
								<p class="aj">International Airport. Meet on arrival & transfer from the airport to Your preferred Hotel, Bur - Dubai, in the city area of Dubai. Evening Free or opt for optional tour.</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> Full Day Free & Desert Safari Followed By BBQ Dinner
								</p>
								<p class="aj">After break fast Later in early afternoon depart for desert safari which includes live performance of belly dance, heena sheesha, camel ride followed by bbq dinner, 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> City Tour / Dhow Cruise & Dinner
								</p>
								<p class="aj">Dubai City Tour Details This tour is a wonderful opportunity to discover the modern and traditional aspects of Dubai. Our excursion starts with the magnificent Burj Al Arab hotel for photos, then onward to Jumeirah mosque. On the way to Bastakia, the old part of the city, we pass impressive palaces of the ruling family of Dubai, and the old wind -towered houses (wind towers are a traditional form of air-conditioning). Followed by khalifa tower visit ( ticket Excluded )Nearby, we visit Dubai Museum , in the evening you will be picked up by our local representative for dhow cruise at 0730 Pm. N joy dhow cruise in Dubai creek followed by dinner and over night 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 4:</b> Departure
								</p>
								<p class="aj">After break fast do last minute shopping & check out of the hotel later as per your flight timings will transfer you to dubai / Sharjah airport with sweet memories of your tour.</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>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Any expenses of personal nature viz. tips to driver & Guide, cigarettes, laundry, telephone calls, mini- bar etc. </li><li>
GST 5.12%</li><li>
Beverages and drinks at all meal venues [will be charged extra].</li><li>
Meals other then mentioned above</li><li>
Personal Insurance and those of damages or loss of Properties.</li><li>
All extra incurred at the Hotel other than mentioned. Optional Tours -</li><li>
Atlantis (aqua venture + lost chambers) with transfers - $ 80 for adult & $ 65 for child above 2 & below 12 years</li><li>
Ferrari world park - Adult - $ 85 ! Child - $ 65 ( When on Abu Dabhi tour Transfers extra .</li><li>
Dolphin Show $ 35 PP Child $ 25 PP</li><li>
Burj Khalifa $ 35 PP Child $ 30 PP</li><li>
Burj Al Arab Hotel for Evening Snacks with transfer $ 95 PP.</li></ul><br />
												<p class="large b mb5px dif">Departure Cities with rates :</p>Tour Cost 3 Night 4 Days - Per Person 25999/- * INR<br /><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p><b>Booking Conditions:</b> Package is non - refundable - Once Package Book it is non refundable! Visa if rejected on any ground fees is payable &amp; same is non refundable Any increase in airfare (Fuel Surcharge or any other charge) Valid Passport Copy of 1st &amp; last page with clear Photo.<br />
<br />
<b>Payment Policy:</b> Full payment is required on confirmation of all services and before departure from India<br />
<br />
<b>Cancellation Policy:</b> 15 - 8 days: 75% of the total cost 7 - 0 days: 100% cancellation will apply Air ticket + Visa Fee &amp; Service charges are non refundable No refund either in part or in full will be made for any unused part of the services provided in the package Overseas Insurance Policy after issuance is non refundable												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.excellworldholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Dubai Tour 3N 4D Days - 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="11238"/>
						</form>
						</div>
						
						";i:1;s:60:"Book Dubai Tour 3N 4D Days - 3 Nights / 4 Days Tour Packages";i:2;s:114:"book dubai tour 3n 4d days - 3 nights / 4 days tour packages, forts and palaces tour packages, dubai tour packages";i:3;s:151:"Excellworld Holidays offers Dubai Tour 3N 4D Days - 3 Nights / 4 Days tour package, budget Forts and Palaces tour packages for Dubai at exciting price.";i:4;s:2609:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dubai"        
		                 },
		      "description": "Dubai
Between minarets and skyscrapers, stone and chrome, lies the fastest growing city in the world: Dubai. Known for its shopping, sand, and sun, Dubai attracts millions of visitors every year, and envelopes them in luxury and efficiency. The city is also steeped in ancient history, yet the old and the new are intertwined implacably, and tradition fits neatly alongside consumerism.
Weather:
Summer : May to Sept 24-38 C
Shopping:
Dubai's shopping scene is extremely vibrant, and known the world over. It flourishes and thrives on diversity, from the traditional spice and gold souks, to enormous malls and retail outlets. Everything from electronics to antiques, and designer clothes of all leading Brand of the world to fresh flowers, is available in Dubai's sprawling shopping areas. Everything is duty-free, and most visitors feel obligated verify this claim; and are pleasantly surprised at its veracity.

Must Do:
Feel the dynamism of Dubai by exploring the new-age world of breathtaking skyscrapers, gourmet treats and luxury shopping; or the old Dubai of mosques, wind towers, shawarma and souks. There are limitless entertainment options, and you can club all night long to the latest mixes, or experience live Moroccan music and smoke sheesha (water pipes) at cafes. There are plenty of top-notch restaurants in Dubai, and there variety shows you the city's rich cultural mix and diverse population. You can also laze around on Dubai's beaches, or enjoy its world class golf facilities.Any expenses of personal nature viz. tips to driver & Guide, cigarettes, laundry, telephone calls, mini- bar etc. 
GST 5.12%
Beverages and drinks at all meal venues [will be charged extra].
Meals other then mentioned above
Personal Insurance and those of damages or loss of Properties.
All extra incurred at the Hotel other than mentioned. Optional Tours -
Atlantis (aqua venture + lost chambers) with transfers - $ 80 for adult & $ 65 for child above 2 & below 12 years
Ferrari world park - Adult - $ 85 ! Child - $ 65 ( When on Abu Dabhi tour Transfers extra .
Dolphin Show $ 35 PP Child $ 25 PP
Burj Khalifa $ 35 PP Child $ 30 PP
Burj Al Arab Hotel for Evening Snacks with transfer $ 95 PP.",
		      "name": "Dubai Tour 3N 4D Days",
		      "telephone": "+91-9881120349"
		    }
		    </script>
			";i:5;N;}