a:6:{i:0;s:12230:"				<div class="h1"><h1>Spectacular Malayasia & Singapore (07Nights, 08 Days) Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.visiontourandtravels.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.visiontourandtravels.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Spectacular Malayasia & Singapore (07Nights, 08 Days) 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">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kuala Lumpur, Singapore</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.visiontourandtravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Spectacular Malayasia & Singapore (07Nights, 08 Days) 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="74529"/>
						</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_16/450636/133087.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/450636/133087.jpg"  width="150" height="150"    alt="Spectacular Malayasia & Singapore (07Nights, 08 Days) Tour" title="Spectacular Malayasia & Singapore (07Nights, 08 Days) 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> Singapore – City Tour – Night Safari
								</p>
								<p class="aj">Arrive Singapore Changi Airport, On arrival at Singapore, after Immigration & Customs, board coach and proceed for a CITY TOUR OF SINGAPORE which will include the Supreme court building, Merlion Park & China town. After city tour enjoy lunch in Indian Restaurant and proceed towards your Hotel, Check In time in Singapore is 1400 Hrs, So Kindly wait for rooms getting ready for you. Rest till 5 PM. In evening enjoy exotic NIGHT SAFARI. Spread over 40 hectares of secondary jungle, it is home to over 1,200 animals (100 species), of which 75% are endangered and over 90% are nocturnal. Interestingly, the Night Safari with its open concept brings together animals from 8 different geographical regions (Indian Subcontinent, Himalayan Foothills, Equatorial Africa, Asian Riverine Forest, Nepalese River Valley, South America through the rain forest where you can view all the animals from the comfort of your seat. Then it is show time - the exciting Animal Show! Enjoy dinner and overnight at 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 2:</b> Singapore – Jurong Bird Park- Sentosa Island
								</p>
								<p class="aj">After Breakfast Visit JURONG BIRD PARK Then later after lunch we proceed for SENTOSA ISLAND TOUR. Singapore is incomplete without seeing Sentosa island. Firstly, we hop on the cable car that will bring us across to the island. At the same time, the ride will offer you a bird's eye view of the bustling seaport. Then, we take a bus ride to the UNDERWATER WORLD. It is one of Asia's most popular Ocenariums. It has more than 2,500 marine animals from 250 species. Another highlight is the DOLPHIN LAGOON, with its breed of mainly Pink Dolphin. Here, you can observe these dolphins' natural behaviour, in a habitat that is simulated closely to that of their original. Enjoy Indian dinner. After dinner, we bring you back to 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 3:</b> Singapore - Universal Studios
								</p>
								<p class="aj">After continental breakfast get ready to discover a whole new world that’s truly rewarding as you are on a full day trip to Universal Studios. Visit the regions first Universal Studios Theme Park featuring brand new rides and unlimited entertainment. Witness the world’s first Far Far Away Castle in ‘the Shrek 4-D adventure’. Meet the terrifying T Rex in ‘The Lost World’, ride the world’s tallest dueling roller coasters at Sci-Fi City and witness ancient Egypt on the psychological thrill ride - ‘Revenge Of The Mummy’.</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> Singapore – Genting Highland
								</p>
								<p class="aj">After breakfast, Check out of the hotel and board your coach to proceed towards Genting Highlands, which is situated 2,000 meters above sea level, enjoy the breathtaking scenery, lush green hills and beautiful landscapes. Arrive Genting Highland and check in at the hotel. Thereafter we will take you for ORIENTATION TOUR of Genting Highlands Overnight at 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> Genting Highland
								</p>
								<p class="aj">After breakfast the entire day is free for visiting OUTDOOR and INDOOR THEME PARK with many rides. The features thrilling roller coasters such as Corkscrew and the Cyclone and the Flying Dragon. The indoor theme park has various themes from around the world. Visit Venice, Paris, USA, England and Switzerland in a matter of minutes. Also try your luck at Casino de Genting, the largest Casino in the Region. 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 6:</b> Genting Highland – Kualalumpur – City Tour
								</p>
								<p class="aj">Enjoy breakfast check out of the hotel and proceed to Kuala Lumpur. Arrive Kuala Lumpur and we take you directly for a CITY TOUR OF KUALALUMPUR, giving a colorful spectrum of Malaysian culture, crafts, and lifestyle. The City of Kuala Lumpur was built on the confluence of two rivers, The Klang and the Gombak. The tour takes you to all the key sightseeing spots in the city like the Kings palace, National monuments, National mosque, Merdeka Square and also visit the 88 storey Petronas Twin tower from outside. Then we take you to the famous “MENARA KUALALUMPUR” popularly known as “KL TOWER” which is majestically poised at a breathtaking heights of 421 meters. Overnight at 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 7:</b> Kuala Lumpur
								</p>
								<p class="aj">After Breakfast proceed to Putrajaya , which is a new Administrative Capital of Malaysia. We see the Pink Putra Mosque built across the waters of the scenic Putrajaya Lake. Considered as one of the most Modern Mosques in the world. This imposing structure is constructed with architecture from Turkey, Kazakhstan and Morocco. Standing besides it is the Dataran Putra (Putra Square ) that faces the Putrajaya Lake. The highlight here is the Chahar Baghs or the recreation of Eden with its four quadrants and four rivers. Then we will see Putra Perdana which is Malaysian Prime Minister's office. After lunch we take you to ? day visit to SUNWAY LAGOON, Enjoy both Wet & Dry Park, Night View of Twin Towers from outside.</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 8:</b> Mumbai
								</p>
								<p class="aj">After breakfast, we check out of the hotel and proceed towards the airport to board your flight for Mumbai. Arrive Mumbai with memorable experience of the tour conducted by Ameya Holidays.</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.visiontourandtravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Spectacular Malayasia & Singapore (07Nights, 08 Days) 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="74529"/>
						</form>
						</div>
						
						";i:1;s:97:"Book Spectacular Malayasia & Singapore (07Nights, 08 Days) Tour - 7 Nights / 8 Days Tour Packages";i:2;s:169:"book spectacular malayasia & singapore (07nights, 08 days) tour - 7 nights / 8 days tour packages, beach and islands tour packages, kuala lumpur, singapore tour packages";i:3;s:222:"Book Spectacular Malayasia & Singapore (07Nights, 08 Days) Tour - 7 Nights / 8 Days tour packages from Vision Tour & Travels - Get attractive 7 Nights / 8 Days Beach and Islands  tour packages for  Kuala Lumpur, Singapore.";i:4;s:463:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kuala Lumpur, Singapore"        
		                 },
		      "description": "",
		      "name": "Spectacular Malayasia & Singapore (07Nights, 08 Days) Tour",
		      "telephone": "91-9987181732/8684821464"
		    }
		    </script>
			";i:5;N;}