a:6:{i:0;s:20246:"				<div class="h1"><h1>Dubai Shopping Festival with Plan Journeys Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.planjourneysindia.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.planjourneysindia.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Dubai Shopping Festival with Plan Journeys 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">
						4 Nights / 5 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">
						INR 18000 Per Person						</td>
						</tr>
												<tr>
						<td class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">Cost per person: INR 18000/- on twin / double sharing basis.<br />
<br />
** Tourism Dirham Fees, payable directly to the hotel.<br />
** Please feel free to check our best offers for 4* and 5* hotels, for DSF (Dubai Shopping Festival).<br />
** These are promotional rates and excluding peak season surcharges, if any.<br />
** GST extra.</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.planjourneysindia.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Dubai Shopping Festival with Plan Journeys 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="71936"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<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/425396/129594.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/425396/129594.jpg"  width="150" height="150"    alt="Dubai Shopping Festival with Plan Journeys Tour" title="Dubai Shopping Festival with Plan Journeys Tour" /></a></p></div></li>
																		<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/425396/129586.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/425396/129586.jpg"  width="150" height="150"    alt="Dubai Shopping Festival with Plan Journeys Tour" title="Dubai Shopping Festival with Plan Journeys Tour" /></a></p></div></li>
																		<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/425396/129587.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/425396/129587.jpg"  width="150" height="150"    alt="Dubai Shopping Festival with Plan Journeys Tour" title="Dubai Shopping Festival with Plan Journeys Tour" /></a></p></div></li>
																		<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/425396/129588.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/425396/129588.jpg"  width="150" height="150"    alt="Dubai Shopping Festival with Plan Journeys Tour" title="Dubai Shopping Festival with Plan Journeys Tour" /></a></p></div></li>
																		<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/425396/129589.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/425396/129589.jpg"  width="150" height="150"    alt="Dubai Shopping Festival with Plan Journeys Tour" title="Dubai Shopping Festival with Plan Journeys Tour" /></a></p></div></li>
																		<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/425396/129591.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/425396/129591.jpg"  width="150" height="150"    alt="Dubai Shopping Festival with Plan Journeys Tour" title="Dubai Shopping Festival with Plan Journeys Tour" /></a></p></div></li>
																		<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/425396/129592.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/425396/129592.jpg"  width="150" height="150"    alt="Dubai Shopping Festival with Plan Journeys Tour" title="Dubai Shopping Festival with Plan Journeys Tour" /></a></p></div></li>
																		<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/425396/129593.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/425396/129593.jpg"  width="150" height="150"    alt="Dubai Shopping Festival with Plan Journeys Tour" title="Dubai Shopping Festival with Plan Journeys Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Dubai Shopping Festival takes place every year in the month of January in Dubai. This year in 2017, DSF is celebrating its 22ndanniversary and is one of the largest shopping extravaganzas in the world. It not only attracts shopaholics from all over the world but the whole city of Dubai looks like a carnival during this period. Shopping in Dubai, during DSF can also let you win cash prizes and sometimes even luxurious cars. Almost all shopping avenues and malls in Dubai are offering great offers and discounts right this time. One can also enjoy the exciting entertainment shows for the kids and the families during the evening time.<br />
<br />
Team Plan Journeys offers great offers on Dubai shopping festival packages and DSF holiday packages. Book your DSF tour packages with us and pack your bag for an exciting trip to the city of Dubai with best discounts on the world-class shopping in Dubai. Contact our sales team for best deals on Dubai hotels and Dubai holiday packages.Cost per person: INR 18000/- on twin / double sharing basis.<br />
<br />
** Tourism Dirham Fees, payable directly to the hotel.<br />
** Please feel free to check our best offers for 4* and 5* hotels, for DSF (Dubai Shopping Festival).<br />
** These are promotional rates and excluding peak season surcharges, if any.<br />
** GST extra.Dubai Visa charges.<br />
Ok to board.<br />
Return air ticket.01-0101-02<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 Day, evening dhow cruise
								</p>
								<p class="aj">On arrival at Dubai International airport, Plan Journeys representative will meet and greet you. Transfer to your hotel and check in. in the evening we will take you to Dhow cruise on Dubai Creek with live entertainment and dinner on board the cruise. Witness the beautiful view of Dubai city during your cruise. Later come back to your 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> City tour of Dubai
								</p>
								<p class="aj">Breakfast in your hotel, get ready for half day city tour of Dubai which includes drive through the Dubai Creek, visit to Dubai Museum, Jumeriah Mosque, etc. you will also get an opportunity for a photo stop at the iconic world’s only seven-star hotel – Burj Al Arab, have a look of world’s tallest tower – Burj Khalifa and Atlantis hotel and also visit Jumeriah Beach during the tour. Rest of the day is free; you can opt for the visit to Burj Khalifa with Dubai Mall and explore the deals offered by The Dubai Mall on the occasion of Dubai Shopping Festival. Overnight accommodation in Dubai hotel.</p>					
									<p><b>Meals : </b> breakfast.</p>
								</td>
									<td class="p10px vat imgWidth150 w150px lh0">
									<div class="demo-wrap">
									<ul class="lsn m0px p0px" id="detailslider21">
												<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_15/425396/129586.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/425396/129586.jpg"  width="150" height="150"    alt="Dubai Shopping Festival with Plan Journeys Tour" title="Dubai Shopping Festival with Plan Journeys Tour" /></a></p></div></li>
												<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_15/425396/129591.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/425396/129591.jpg"  width="150" height="150"    alt="Dubai Shopping Festival with Plan Journeys Tour" title="Dubai Shopping Festival with Plan Journeys Tour" /></a></p></div></li>
									</ul>
									</div>
									</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> Desert Safari tour
								</p>
								<p class="aj">Breakfast and relax in your hotel, later in the afternoon we will pick you from the hotel for exciting tour of desert Safari. The activities includes dune bashing, live entertainment including belle dance show and barbecue dinner. Later in the night come back to your hotel after a fun filled day. Overnight at your hotel in Dubai.</p>					
									<p><b>Meals : </b> breakfast</p>
								</td>
									<td class="p10px vat imgWidth150 w150px lh0">
									<div class="demo-wrap">
									<ul class="lsn m0px p0px" id="detailslider21">
												<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_15/425396/129587.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/425396/129587.jpg"  width="150" height="150"    alt="Dubai Shopping Festival with Plan Journeys Tour" title="Dubai Shopping Festival with Plan Journeys Tour" /></a></p></div></li>
												<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_15/425396/129592.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/425396/129592.jpg"  width="150" height="150"    alt="Dubai Shopping Festival with Plan Journeys Tour" title="Dubai Shopping Festival with Plan Journeys Tour" /></a></p></div></li>
									</ul>
									</div>
									</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> Free day for Shopping
								</p>
								<p class="aj">After breakfast, you are free to go for the finest shopping options, the city of Dubai offers. You can visit Mall of Emirates and after exploring the shopping avenues here you can also opt to go for Ski Dubai located on the ground floor and have fun in the snow in the middle of desert. Or you can also plan your visit to full day tour of Abu Dhabi along with Ferrari World – an amazing indoor theme park from Ferrari. Overnight at your hotel in Dubai.</p>					
									<p><b>Meals : </b> breakfast</p>
								</td>
									<td class="p10px vat imgWidth150 w150px lh0">
									<div class="demo-wrap">
									<ul class="lsn m0px p0px" id="detailslider21">
												<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_15/425396/129588.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/425396/129588.jpg"  width="150" height="150"    alt="Dubai Shopping Festival with Plan Journeys Tour" title="Dubai Shopping Festival with Plan Journeys Tour" /></a></p></div></li>
												<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_15/425396/129593.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/425396/129593.jpg"  width="150" height="150"    alt="Dubai Shopping Festival with Plan Journeys Tour" title="Dubai Shopping Festival with Plan Journeys Tour" /></a></p></div></li>
									</ul>
									</div>
									</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> Departure
								</p>
								<p class="aj">Today after breakfast, you can relax in your hotel or go for last minute shopping in Dubai before we pick you from the hotel for your departure flight to the onward destination. Come back with happy memories of your tour with Plan Journeys and please share your experience with us enabling us to design a better holiday package for you in future. Visit us on www.planjourneys.com for more information on Dubai tour packages with Plan Journeys.</p>					
									<p><b>Meals : </b> breakfast</p>
								</td>
									<td class="p10px vat imgWidth150 w150px lh0">
									<div class="demo-wrap">
									<ul class="lsn m0px p0px" id="detailslider21">
												<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_15/425396/129589.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/425396/129589.jpg"  width="150" height="150"    alt="Dubai Shopping Festival with Plan Journeys Tour" title="Dubai Shopping Festival with Plan Journeys Tour" /></a></p></div></li>
												<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_15/425396/129594.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/425396/129594.jpg"  width="150" height="150"    alt="Dubai Shopping Festival with Plan Journeys Tour" title="Dubai Shopping Festival with Plan Journeys Tour" /></a></p></div></li>
									</ul>
									</div>
									</td>
								</tr>
								</table>					
								</div>						<br />
													<div class="headHr">
				            <p class="p7px b pl10px xlarge">Hotel Detail : </p>
				            </div>
															<div class="data lh13em p20px aj mb7px">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px"><p class="fr lh0">
								
																	<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_on.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_on.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_on.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_off.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_off.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_off.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_off.png" alt=""/>
																	
								</p>
								<div class="mb5px">
								<h2 class="dif b xxlarge">Fortune Hotel Diera</h2>
								</div>
								<p class="cb"></p>
								<p><b>Address :</b> Dubai, UAE</p>
								<p><b>Facility :</b> </p>
								<div class="mt7px">3* city centre hotel in Diera.</div>
								</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>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Dubai Visa charges.</li><li>
Ok to board.</li><li>
Return air ticket.</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.planjourneysindia.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Dubai Shopping Festival with Plan Journeys 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="71936"/>
						</form>
						</div>
						
						";i:1;s:86:"Book Dubai Shopping Festival with Plan Journeys Tour - 4 Nights / 5 Days Tour Packages";i:2;s:140:"book dubai shopping festival with plan journeys tour - 4 nights / 5 days tour packages, forts and palaces tour packages, dubai tour packages";i:3;s:202:"Book Dubai Shopping Festival with Plan Journeys Tour - 4 Nights / 5 Days tour packages from Plan Journeys Private Limited. - Get attractive 4 Nights / 5 Days Forts and Palaces  tour packages for  Dubai.";i:4;s:1777:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dubai"        
		                 },
		      "description": "Dubai Shopping Festival takes place every year in the month of January in Dubai. This year in 2017, DSF is celebrating its 22ndanniversary and is one of the largest shopping extravaganzas in the world. It not only attracts shopaholics from all over the world but the whole city of Dubai looks like a carnival during this period. Shopping in Dubai, during DSF can also let you win cash prizes and sometimes even luxurious cars. Almost all shopping avenues and malls in Dubai are offering great offers and discounts right this time. One can also enjoy the exciting entertainment shows for the kids and the families during the evening time.

Team Plan Journeys offers great offers on Dubai shopping festival packages and DSF holiday packages. Book your DSF tour packages with us and pack your bag for an exciting trip to the city of Dubai with best discounts on the world-class shopping in Dubai. Contact our sales team for best deals on Dubai hotels and Dubai holiday packages.Cost per person: INR 18000/- on twin / double sharing basis.

** Tourism Dirham Fees, payable directly to the hotel.
** Please feel free to check our best offers for 4* and 5* hotels, for DSF (Dubai Shopping Festival).
** These are promotional rates and excluding peak season surcharges, if any.
** GST extra.Dubai Visa charges.
Ok to board.
Return air ticket.01-0101-02",
		      "name": "Dubai Shopping Festival with Plan Journeys Tour",
		      "telephone": "91-9899892292"
		    }
		    </script>
			";i:5;N;}