a:6:{i:0;s:10970:"				<div class="h1"><h1>Singapore Tour Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.rapidactionexpedition.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.rapidactionexpedition.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Singapore Tour 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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kuala Lumpur, Singapore, Genting</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.rapidactionexpedition.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Singapore Tour 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="98960"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</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> Singapore – Adventure Cove Water Park with S.E.A Aquarium
								</p>
								<p class="aj">The Singapore and Malaysia Tour starts with your arrival at the Singapore Airport. Enjoy the warm welcome to the Lion City. A tour representative shall be present to attend you and transfer to the hotel in Singapore. Relax and get fresh.<br />
<br />
Later in the day proceed to the Adventure Cove Water Park. The adventure park and its enthralling rides gives you an adrenaline rush. Zoom through thrilling waterslides such as South East Asia's first hydro magnetic coaster. The Blu water Bay wave pool is ideal for lots of fun. There rea rides where you can grab a tube and journey down Adventure River. There are almost 14 themed zones including a tropical jungle garden. A cavern in the park is inhabited by the mysterious sea creatures. In the adventure zone one can enjoy the mesmerizing experience to snorkel over a colorful coral reef with 20,000 friendly fishes.<br />
<br />
The S.E.A Aquarium is one of the world's largest aquarium. Here visitors can immerse yourself in the magic of life underwater. The aquarium is a supersize window to the ocean. Visit more than 800 species of marine animals. The aquarium is home to magnificent manta rays, enormous goliath groupers, Napoleon wrasse and other gentle giants of the sea. Around 200 sharks also inhabit the cerulean depths.<br />
<br />
Recover from the magical allure of the marine world. The evening is at your leisure. The vivacious nightlife of Singapore awaits to be explored. The Clarke Quay is the place to be. The charming diversity makes sure that every visitors is left spellbound. Return to the 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 2:</b> Singapore- Sands Sky Park and Sentosa Island Tour
								</p>
								<p class="aj">Begin the day with a refreshing breakfast at Sands Sky Park at the Marine Bay. Snuggled in the heart of the city, here is a moment worth cherishing a lifetime. The views are spectacular and you will be surely charmed.<br />
<br />
After a hearty breakfast, proceed to the Butterfly Park & Insect Kingdom. Surrounded by verdant tropical foliage, the park showcases the spectacular beauties of Mother Nature. With a great variety of fluttering butterflies and exotic insects, this tamed wilderness is a sure delight to all visitors. There is a golden opportunity to enjoy a truly unique outdoor experience. Activities offered in the lush kingdom is suitable for all ages. Discover ecosystems and species only found in Singapore or Southeast Asia. Next, board the Sky ride and grasp the fantastic panoramic scenery of the city skyline and beautiful coastline.<br />
<br />
There's no better way to complete a marvelous day at Sentosa than to take in a spectacular night show set outdoors against the backdrop of an open sea. Wings of Time is an international famed musical and laser light show. Witness an awe-inspiring display of water, laser and fire effects, set to majestic music and a landscape of breathtaking views. The show narrates a tale of friendship and courage. The poignant music will linger with you long time after you leave the dreamlike island. Return to the hotel for overnight stay in Singapore.</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> Singapore - Universal Studios Tour
								</p>
								<p class="aj">Start the day with a hearty breakfast. After your delicious start, head to the universal studios. In the Universal Studio Tour, go beyond the screen. The real thrill lies in exploring the nuances of the movie making. There are numerous thrilling ride the Movies at Universal Studios Singapore at Resort World Sentosa. Experience innovative rides, shows, and attractions based on your favorite blockbuster films and television series. These include Transformers The Ride: The Ultimate 3D Battle, Shrek 4-D Adventure, Revenge of the Mummy, Madagascar: A Crate Adventure Jurassic Park Rapids Adventures, Battlestar Galactica: HUMAN vs. CYLON™ dueling Coasters, and many more.<br />
<br />
Recover from the mesmerizing world of movies with an overnight stay in your hotel in Singapore.</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> Arrival in Kuala Lumpur - Night tour with KL Tower Ticket
								</p>
								<p class="aj">Pack your bags and enjoy a delicious breakfast in your hotel. After you meal, you will be transferred to Kuala Lumpur. The magical capital of Malaysia awaits with a warm welcome. From the Coach station board your coach to Kuala Lumpur. On arrival avail transfer to the hotel in Kuala Lumpur. Check-in and enjoy the lavish comforts of your room and the hotel.<br />
<br />
Kuala Lumpur is the Asian cyber city. The Malaysian capital has a treasure of historic temples and mosques co-existing with state-of-the-art towers and shopping malls. In the evening proceed for the Kuala Lumpur night tour with KL Tower ticket. The views form the PETRONAS towers is simple beyond words can describe.<br />
<br />
Return to hotel for overnight stay in Kuala Lumpur.</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> Kuala Lumpur – Full Day Genting Theme Park
								</p>
								<p class="aj">After an appetizing breakfast at the hotel, proceed for full day Genting Highlands tour. The Genting highlands are breathtaking. Amidst the natural beauty in the fresh mountain airs about 6,000 feet above sea level, it is Malaysia's luxury holiday resort and a World-Class City of Entertainment. The spectacular vacation spot is surrounded by one of the oldest tropical jungles in the world. Enjoy the numerous indoor amusement rides, casino, cinemas, restaurants and shopping malls. You will not wish to return. The charming allures shall capture your hearts. Overnight stay in Kuala Lumpur hotel.</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">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.rapidactionexpedition.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Singapore Tour 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="98960"/>
						</form>
						</div>
						
						";i:1;s:61:"Book Singapore Tour Package - 6 Nights / 7 Days Tour Packages";i:2;s:142:"book singapore tour package - 6 nights / 7 days tour packages, beach and islands tour packages, kuala lumpur, singapore, genting tour packages";i:3;s:197:"Book Singapore Tour Package - 6 Nights / 7 Days tour packages from Rapid Action Expedition - Get attractive 6 Nights / 7 Days Beach and Islands  tour packages for  Kuala Lumpur, Singapore, Genting.";i:4;s:426:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kuala Lumpur, Singapore, Genting"        
		                 },
		      "description": "",
		      "name": "Singapore Tour Package",
		      "telephone": "+91-9411191687"
		    }
		    </script>
			";i:5;N;}