a:6:{i:0;s:13455:"				<div class="h1"><h1>Majestic Dubai with Abu Dhabi Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.trippytripstravel.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.trippytripstravel.com/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Majestic Dubai with Abu Dhabi 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">
						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.trippytripstravel.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Majestic Dubai with Abu Dhabi 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="108207"/>
						</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/494778/179180.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/494778/179180.jpg"  width="150" height="150"    alt="Majestic Dubai with Abu Dhabi Tour" title="Majestic Dubai with Abu Dhabi Tour" /></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">As you arrive in Dubai, you are cordially greeted by our representative who then escorts you to Abu Dhabi to your designated hotel. Perform Check in and relax and rejuvenate in the comfortable settings of your room. The evening is free at your leisure. Enjoy the wonderful city atmosphere of Abu Dhabi. You can indulge in some shopping and sightseeing. Return to your hotel for the 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 2:</b> Abu Dhabi
								</p>
								<p class="aj">Enjoy your breakfast in the morning and proceed towards the city tour of Abu Dhabi as well as the Grand Mosque. Enjoy a thrilling visit to Ferrari World, which is one of the most exciting destinations with more than 20 exclusive rides as well as draws for tourists of all ages. There are speed thrill rides as well as world's most advanced simulators to keep you inspired and entertained. In addition to this, visitors can also enjoy the delicacies of Italian restaurants as well revel in amazing shopping experiences. Return to your hotel for the 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 3:</b> Abu Dhabi-Dubai-Top of Burj Khalifa Tour
								</p>
								<p class="aj">Post breakfast, check out of the hotel and get transferred to your hotel in Dubai. Perform Check in and relax in the peaceful and comfortable surroundings of your room. The evening is marked for your visit to Burj Khalifa, The world's tallest tower. Reach the top of the building to experience the amazing skyline of Dubai. Marvel at the astonishing architecture and tremendous engineering feat of the building from such a soaring height. Return to your hotel for a comfortable and luxurious 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 4:</b> Dubai-Wild Wadi Water Park and Desert Safari Tour
								</p>
								<p class="aj">After breakfast, get transferred to Wild Wadi Water Park, an exciting water themed hotspot, situated between Burj Al Arab and Jumeirah Beach Hotel. Experience the excitement of Tantrum Alley, the tunnel of Doom, Burj-Surj, Breakers' Bay, Wipeout and Riptide Flow Riders and Juha journey etc. that takes you through the exciting twists and turns of the rides, leaving you completely thrilled. Get a hair-splitting experience of weightlessness on the "Jumeirah Sceirah" which is a speed slide that hurtles the visitor into a stupendous depth of 100 feet into the valley.<br />
<br />
The latter half of the day is spent in enjoying the desert safari along with a delicious BBQ dinner and the Belly Dance program towards evening. The desert tour starts off with a thrilling ride amidst the sand dunes. Catch all the experience of deserts, take stunning pictures and then proceed to Ali's camel farm for a short trip. Post this, proceed towards the desert camp. En route, watch the majestic sunset at a brief stopover. Move towards the camp where a warm welcome awaits you. Get treated with Arabic coffee, dates and tea and enjoy the amazing ambience as the charcoal fire and traditional oven is lit towards the preparation for the evening dinner. Relax in the Arabic tents with supreme comforts and chill besides the campfire. Also revel in the quintessential desert experience with a camel ride or get a henna tattoo. An exotic entertainment with Tanoura dance show and an attractive belly dance against the backdrop of the music of Arabia also waits you in the evening. The trip ends with a number of delicious courses including barbeques, meats and salads presented to you under the starlit sky along with enjoying amazing Arabic music. Post dinner, drive back to your hotel for the 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 5:</b> Dubai-Aquaventure Water Park
								</p>
								<p class="aj">Post breakfast, proceed for an exciting sojourn to Aquaventure Water Park. Set in a vast expanse of 42 acres, the park is a wonderful spot to have all the fun and adventure with family and friends. The park is full of most thrilling attractions such as speed slides, rivers, rapids, splashes children area, play area, lush tropical landscapes as well as a private beach.<br />
<br />
Visit to the Lost Chambers Aquarium, one of the most incredible destinations and a site to explore the mysterious ruins of Atlantis as well as nearly 65,000 different species of marine life. Moving through the maze of underwater halls and tunnels is a wonderfully rewarding experience, full of amazing encounters which will be forever etched in your memory. Return to your hotel for the 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">The morning start off with breakfast. Thereafter, get transferred to Dubai International Airport to catch the flight back home.</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. ~^#^~						
    	<p class="h dif xlarge b mb5px">SUPER LUXURY SERVICE</p>
    	<div class="otherDetails aj">Super Luxury Services: "King's Choice" includes Sight Seeing + Snacks and Drinks for the entire journey + Free wifi, powerbanks, portable bluetooth speakers, E-Hookkah( served out of the car with 15 flavours to choose from) + 1 musical instrument (Guitar/Flute/Mouth Organ) + Video Shoot of the entire trip using Gopro camera ( underwater / Adventure Sports/ Documentary​ video/ Trip Music Video) Freely enjoy the moments of your trip instead of staying behind handling the camera.</div><br>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">SERVICE</td>
				<td class="headHr p5px b">Duration</td>
				<td class="headHr p5px b">Charges</td>
			</tr>
			<tr>
				<td class="data p5px">SUPER LUXURY SERVICE</td>
				<td class="data p5px">as per the tour duration</td>
				<td class="data p5px">2600/day (For a group of 4-6 people)</td>
			</tr>
		</table></div><br>
    	<p class="h dif xlarge b mb5px">LUXURY SERVICE</p>
    	<div class="otherDetails aj">Luxury Service: Luxury Services: A budget friendly services package which includes Basic Service+Economy Service+ Free wifi,  Powerbank, Portable Bluetooth Speaker, E-Hookkah(served out of the car with 15 flavours to choose from).</div><br>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">SERVICEa</td>
				<td class="headHr p5px b">Duration</td>
				<td class="headHr p5px b">Charges</td>
			</tr>
			<tr>
				<td class="data p5px">LUXURY SERVICE</td>
				<td class="data p5px">As per the tour duration.</td>
				<td class="data p5px">1600/day (For a group of 4-6 people)</td>
			</tr>
		</table></div><br>
    	<p class="h dif xlarge b mb5px">ECONOMY SERVICE</p>
    	<div class="otherDetails aj">Economy Service: Covers your basic travel needs. includes Basic Service+Snacks and Drinks for the journey (To & From).</div><br>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">SERVICE</td>
				<td class="headHr p5px b">Duration</td>
				<td class="headHr p5px b">Charges:</td>
			</tr>
			<tr>
				<td class="data p5px">ECONOMY SERVICE</td>
				<td class="data p5px">2 days. ( Onward and return journey)</td>
				<td class="data p5px">1200 (For a group of 4-6 people)</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.trippytripstravel.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Majestic Dubai with Abu Dhabi 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="108207"/>
						</form>
						</div>
						
						";i:1;s:73:"Book Majestic Dubai with Abu Dhabi Tour - 5 Nights / 6 Days Tour Packages";i:2;s:138:"book majestic dubai with abu dhabi tour - 5 nights / 6 days tour packages, forts and palaces tour packages, dubai, abu dhabi tour packages";i:3;s:188:"Book Majestic Dubai with Abu Dhabi Tour - 5 Nights / 6 Days tour packages from TrippyTrip Travels - Get attractive 5 Nights / 6 Days Forts and Palaces  tour packages for  Dubai, Abu Dhabi.";i:4;s:422:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dubai, Abu Dhabi"        
		                 },
		      "description": "",
		      "name": "Majestic Dubai with Abu Dhabi Tour",
		      "telephone": "+91-8808443322"
		    }
		    </script>
			";i:5;N;}