a:6:{i:0;s:11758:"				<div class="h1"><h1>Bangkok - Singapore - Malaysia Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.chaturveditravels.com/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Bangkok - Singapore - Malaysia 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">Tour Code </td>
						<td class="p5px pl0px vat">INTL04/2 Nights Bang</td>
						</tr>
												<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, Bangkok, Singapore</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 62299 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.chaturveditravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Bangkok - Singapore - Malaysia 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="28061"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
										</tr>
					</table>
					</div>
					<br />
					
					Visa for Thailand and Singapore and Malaysia<br />
Travel insurance<br />
Items of personal nature viz, drinks, laundry, calls, etc.<br />
Meals anything not mentioned in the itinerary<br />
Peak season charges, if applicable•Service tax of 3.09%  on the total package<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 Arrival
								</p>
								<p class="aj">Arrive at Singapore, after clearing the immigration, you will be met by our local representative and transferred to Hotel. Check in at the hotel .<br />
In the Evening take a tour of the world’s only ‘Night Safari’, The world’s first Night Safari  set in 40 hectares of secondary jungle will unfold the mystery and drama of the tropical jungle after dusk with stunning effect. See a myriad of nocturnal animals, from fierce predators to timid forest dwellers, in their natural habitat under subtle moon glow lighting. Roam the jungle in the complete safety and comfort of your  Tram  which takes you through the East and West Loop passing by a large reservoir and weaving through selected habitats designed specifically to replicate the natural environment from the Himalayan Foothills to the Southeast Asian Rainforest and Indian Subcontinent. On completion of the tram ride, your tour guide will lead you on a walking trail where you will be able to view some animals at closer quarters.<br />
Return back to hotel . Overnight in the hotel at 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 2:</b> Singapore
								</p>
								<p class="aj">After breakfast, proceed for the  Singapore city tour  explore the city by driving round the Civic District, passing by the Padang, Cricket Club, historic Parliament House, Supreme Court and City Hall. Next, stop at the MERLION PARK and enjoy the impressive views of Marina Bay. Do not miss out this picture-taking opportunity with The Merlin, a mythological creature that is part lion and part fish. Visit THIAN HOCK KENG TEMPLE, one of Singapore’s oldest Buddhist-Taoist temples, before driving past Chinatown. Stop by a LOCAL HANDICRAFT CENTRE and observe craftsmen at work up-close. Proceed to the NATIONAL ORCHID GARDEN, located within Singapore Botanic Gardens, which boasts a sprawling display of 60,000 orchid plants. Our final stop at LITTLE INDIA will entrance you with the scent of joss sticks, jasmine and spices.<br />
In the afternoon proceed for Sentosa Island tour.<br />
 Sentosa - an island of peace and tranquility is just minutes away from the main Island of Singapore. On the island visit IMAGES OF SINGAPORE, where you’ll embark on journey to experience the colorful culture and vibrant heritage of Singapore, re-told through life-size figures, animatronics and special effects. End the tour with a scenic Cable Car Ride from Sentosa to Mount Faber where you can see the beautiful landscape of the city. Private chartered transportation between attractions will make your visit more comfortable.<br />
Return back to the hotel. Rest of the time free at leisure. Overnight in hotel at 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 - Kuala Lumpur (By Flight)
								</p>
								<p class="aj">After  Breakfast check out from the hotel and get transfer to the airport to board the flight for Kuala Lumpur. In Afternoon you will  arrive in Kuala Lumpur. Rest of the day free at leisure. Overnight at hotel in Kuala Lumpur.<br />
</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> Kuala Lumpur
								</p>
								<p class="aj">After breakfast, proceed for  half-day city tour covering  Masjid Jamek (Jamek Mosque), which is the oldest mosque in Kuala Lumpur , Tugu Negara or War Memorial where we honor those who perished in the war which is inside Lake Garden, Chinatown located on Petaling Street is full of good bargains and deals, food of sorts and rich Chinese culture. See the Thien Hou Temple, Moorish-styled Federal Court, the Railway station which is a striking piece of Mohammedan architecture, the Tudor styled Cricket Club and the Kings Palace,  the Handicraft center where you can find fine and splendid  Jewelry making demonstrations. Return back to  hotel and Rest of the day free for shopping. Overnight at the hotel 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 - Bangkok (By Flight)
								</p>
								<p class="aj">After breakfast, rest of the day is free at leisure. Then check out from the hotel and get transfer to airport for flight to Bangkok. On arrival at Bangkok New Suwarnabhumi Airport, will met our representative and transfer and check in to hotel and rest of the day at free leisure. Overnight at hotel in Bangkok.</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> Bangkok
								</p>
								<p class="aj">After breakfast proceed for half day city tour of Bangkok This is one of the most popular tours, and it gives guests a rich insight into Buddhism, architecture and the hustle and bustle of Bangkok. Three of the capital’s most stunning temples are visited including Wat Trimit (The Temple of Solid Golden Buddha weight 5.5 tons).This temple houses an ancient solid gold seated Buddha image of the Sukhothai Period, three meters in height and weighing 5.5 tons. Wat Pho (The Temple of the Reclining Buddha) This large and extensive temple neighbours the Grand Palace and contains a gigantic gold plated Reclining Buddha. The temple is also regarded as the first center of Thai Massage Education. Wat Benchamabopit (The Marble Temple).This unique marble temple was constructed during the reign of King Rama V. It employs European ecclesiastic detail, such as stained glass windows and contains a superb cloister collection of bronze Buddha images ,Later visit  the world famous Gems & Jewellery shop. <br />
Later return back to the hotel Rest of the day free at leisure. Overnight at the hotel in Bangkok.<br />
</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> Bangkok Departure
								</p>
								<p class="aj">After breakfast, Rest of the day will be free till check out from the hotel then get transferred to the airport for departure.<br />
</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>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Visa for Thailand and Singapore and Malaysia</li><li>
Travel insurance</li><li>
Items of personal nature viz, drinks, laundry, calls, etc.</li><li>
Meals anything not mentioned in the itinerary</li><li>
Peak season charges, if applicable•Service tax of 3.09%  on the total package</li></ul><br />
												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.chaturveditravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Bangkok - Singapore - Malaysia 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="28061"/>
						</form>
						</div>
						
						";i:1;s:74:"Book Bangkok - Singapore - Malaysia Tour - 6 Nights / 7 Days Tour Packages";i:2;s:155:"book bangkok - singapore - malaysia tour - 6 nights / 7 days tour packages, forts and palaces tour packages, kuala lumpur, bangkok, singapore tour packages";i:3;s:215:"Book Bangkok - Singapore - Malaysia Tour - 6 Nights / 7 Days tour packages from Chaturvedi Travels and Tours - Get attractive 6 Nights / 7 Days Forts and Palaces  tour packages for  Kuala Lumpur, Bangkok, Singapore.";i:4;s:689:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kuala Lumpur, Bangkok, Singapore"        
		                 },
		      "description": "Visa for Thailand and Singapore and Malaysia
Travel insurance
Items of personal nature viz, drinks, laundry, calls, etc.
Meals anything not mentioned in the itinerary
Peak season charges, if applicable•Service tax of 3.09%  on the total package",
		      "name": "Bangkok - Singapore - Malaysia Tour",
		      "telephone": "+91-9826355115"
		    }
		    </script>
			";i:5;N;}