a:6:{i:0;s:11135:"				<div class="h1"><h1>Dubai Shopping Festival Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.parwaztourandtravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.parwaztourandtravels.com/vacation-packages.htm" title="Vacation Packages">Vacation Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Dubai Shopping Festival Package</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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Dubai, Abu Dhabi</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.parwaztourandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Dubai Shopping Festival Package - 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="117683"/>
						</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/508952/191019.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/508952/191019.jpg"  width="150" height="150"    alt="Dubai Shopping Festival Package" title="Dubai Shopping Festival Package" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<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
								</p>
								<p class="aj">Delightful Dubai Tour starts with your arrival at the Dubai International Airport. Meet the tour representative, who'll welcome and assist with transfer to your hotel. Check in to your room and enjoy the comforts.<br />
<br />
In the evening, proceed for Dhow Cruise, riding down the Dubai stream. Ride the wooden liners laden with luxuries sightseeing along the famous Dubai Creek. Enjoy the lively music and finger-licking delights from a variety of Arabic cuisine. Do not miss the dancing lights on the skyscrapers of Dubai.<br />
<br />
Overnight stay in Dubai.</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> Dubai – Half Day City Tour & Desert Safari with BBQ Dinner
								</p>
								<p class="aj">Start the day with hearty breakfast. Later, you will be picked up from your hotel and taken on a half day city tour with an English speaking guide. The charming Dubai City has a pretty number of historic sites, man-made wonders and some awe-inspiring creations.<br />
<br />
Start the tour with a photo-stop at Burj Al Arab, the sail-ship style landmark of Dubai. Next, proceed to Jumeirah, the beautiful palace area of Dubai, also home to the famous Jumeirah Mosque. Move on to the Sheikh Saeed House, the former residence of the royal family. Continue with the tour to Al Bastakiya, the old part of Dubai. Here visit the museum located in Al Fahidi Fort. Later, proceed for an unforgettable experience, the souks of Dubai. Here it's not just fruits and vegetables sold in huge numbers, there is gold, diamonds and pretty much every luxury you could imagine.<br />
<br />
After a while of rest at your hotel room, you will be picked up from your hotel. You will go for desert safari with a BBQ dinner & Belly Dance program. Enjoy the golden spread of sands with photo-stops capturing exciting dunes and visit to a camel farm. Watch the beautiful sunset at the desert. Arrive at the campsite, where you will have the options of camel riding, sand boarding and get henna designs. The highlight of the evening is the delicious barbecue dinner accompanied with a shisha, the famous Arabic water pipe. Ending the evening with much delight, there are amazing belly dancers performing extraordinary around the campfire by starlight.<br />
<br />
Overnight stay in Dubai 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> Dubai – Burj Khalifa @124th Floor and Dubai Aquarium + Underwater Zoo
								</p>
								<p class="aj">Day 3 of Delightful Dubai Tour starts with a sumptuous breakfast in the hotel. Later, proceed to the very top of the Burj Khalifa. The tallest tower in the world is a rare feat and a view of Dubai from the observation deck is amazing.<br />
<br />
Proceed to explore the largest suspended aquarium in the world. 51 meters in length, 20 meters width and 11 meters' height, the 10-million litre Dubai aquarium tank is located on the ground level of the Dubai Mall. Thousands of aquatic animals, comprising over 140 species call it home. Over 300 sharks and rays live in this tank, including the largest collection of the sand tiger sharks in the world. Spend time exploring the marvelous underwater zoo.<br />
<br />
Return back to the hotel for overnight stay.<br />
<br />
Stay overnight.</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> Dubai – Day Free for Leisure
								</p>
								<p class="aj">Day 4 is for your leisure. Have a relaxed breakfast in the hotel, after which you are free to explore the city on your own. Spend the day shopping, as it's the best past time in the city. Shop till you drop as well as nourish your taste buds.<br />
<br />
Overnight stay in the 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> Dubai – Abu Dhabi City Tour + Ferrari World
								</p>
								<p class="aj">Begin your day with a healthy breakfast in the hotel. Later you will be transferred to Abu Dhabi. The capital city of UAE is exhilarating and you can have a lot of fun with city tour. Cover the tourist attractions of Abu Dhabi, which include visit to the Grand Mosque. The Sheikh Zayed Grand Mosque is a spectacular site considered to be the most sacred in the country.<br />
<br />
Next part of the tour takes you to the Ferrari World. Known as the world's largest Indoor theme park, Ferrari World is located on the Yas Island of Abu Dhabi. There are more than 20 thrilling speed rides, stimulating rides to family friendly attractions. There are facilities for tourists of all ages and tastes. Spend time going on the rides or exploring the variety of Italian restaurants, international retail shops and entertainment joints.<br />
<br />
Return to Dubai hotel for overnight 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 6:</b> Depart Dubai
								</p>
								<p class="aj">Today is the last day of Delightful Dubai tour. Enjoy a healthy platter of breakfast. Check out of the hotel in the afternoon for shopping or any other activity of your leisure. In the evening, transfer to the airport to board your homebound flight.</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">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.parwaztourandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Dubai Shopping Festival Package - 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="117683"/>
						</form>
						</div>
						
						";i:1;s:70:"Book Dubai Shopping Festival Package - 5 Nights / 6 Days Tour Packages";i:2;s:135:"book dubai shopping festival package - 5 nights / 6 days tour packages, forts and palaces tour packages, dubai, abu dhabi tour packages";i:3;s:189:"Book Dubai Shopping Festival Package - 5 Nights / 6 Days tour packages from Parwaz Tours & Travels - Get attractive 5 Nights / 6 Days Forts and Palaces  tour packages for  Dubai, Abu Dhabi.";i:4;s:419:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dubai, Abu Dhabi"        
		                 },
		      "description": "",
		      "name": "Dubai Shopping Festival Package",
		      "telephone": "+91-7426875919"
		    }
		    </script>
			";i:5;N;}