a:6:{i:0;s:12279:"				<div class="h1"><h1>Medan & Lake Toba Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.skytriptraveleasy.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.skytriptraveleasy.com/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Medan & Lake Toba 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">
						3 Nights / 4 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Medan</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.skytriptraveleasy.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Medan & Lake Toba 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="21207"/>
						</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_9/264226/38949.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_9/264226/38949.jpg"  width="150" height="150"    alt="Medan & Lake Toba Tour" title="Medan & Lake Toba Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Airfares And Applicable Taxes.<br />
Personal Expenses, Minibar / Laundry At Hotel.<br />
Tips To Driver And Guide.<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> Medan - Parapat
								</p>
								<p class="aj">Meeting Service At Polonia Airport With Our Representative Tour Guide, Leave Medan For Parapat - Lake Toba Tour, Lake Toba Is The Largest Lake In Indonesia And The Largest Volcanic Lake In The World. Approximately Five Hours Drive From Medan. Toba Lake Is The Largest Lake In South East Asia And Also One Of The Most Spectacular, Surrounded By Tall Mountains And With The Large Island Of Samosir In The Middle. If We Descend From The Mountain We See The Lake Glittering In All Its Beauty. The Dutch Writer Rudy Kousbroek Even Called Toba Lake, 'The Most Beautiful Place On Earth'. Most Visitors Stay On The Peninsula Of Tuk Tuk On Samosir, Named After The Linguist Herman Neubronner Van Der Tuuk. In General People Stay Several Days On Samosir To Discover The Island, To Visit Traditional Batak Villages, To Swim In The Lake And Go To The Hot Springs In Pangururan. Enroute Pass Through Oil Palm, Cocoa, Rubber, Tea, Clove And Cinnamon Plantations, At Pematang Siantar . Enroute Visit The Kwan Im Temple ( Quan Yin Temple (For Buddhist) Or Admire The Statue Of Kwan Im (Quan Yin) It Is The Biggest Avalokitesvara Bodhisattva Statue In Indonesia. This Statue Took 3 Years To Construct And Was Made Public On 15Th November 2005. For Buddhist, Kwan Im Is Regarded As The Goddess Of Mercy And Known As Bodhisattva Or Buddha-To-Be, Human Being That Is Almost Reaching Enlightment And Perfection. The Position Of Kwan Im In Siantar Is Called “the Sutra Holder Quan Yin” Out Of 33 Other Positions. Later Arrive To Parapat. Parapat Is A Small Town In North Sumatra Province On The Edge Of Lake Toba, On The Uluan Peninsula Where It Forms The Narrowest Eastern Link To Samosir Island. It Is The Primary Transit Point By Ferry For Visitors Going To Samosir Island, And Connected Via Trans-Sumatran Highway To Pematang Siantar By A 48 Km Road. Administratively It Is Part Of Simalungun Regency. On Arrival Check In At Hotel For Accommodation, Overnight Stay At Parapat.</p>					
									<p><b>Meals : </b> Dinner</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> Parapat - Samosir - Parapat
								</p>
								<p class="aj">After Breakfast An Exciting Tour By Ferry Boat Cruising To Samosir Island Samosir Island, Is A Large Volcanic Island In Lake Toba, Located In The North Of The Island Of Sumatra In Indonesia. Administratively, Samosir Island Is Governed As Six Of The Nine Districts Within Samosir Regency. The Lake And Island Were Formed After The Eruption Of A Super Volcano Some 75,000 Years Ago.The Island Was Originally Connected To The Surrounding Caldera Wall By A Small Isthmus, Which Was Cut Through To Aid Navigation.<br />
At 630 Km², Samosir Is The Largest Island Within An Island, And The Fifth Largest Lake Island In The World. It Also Contains Two Smaller Lakes, Lake Sidihoni And Lake Aek Natonang. Across The Lake On The East From The Island Lies Uluan Peninsula. The Island Is Linked To The Mainland Of Sumatra On Its Western Part By A Narrow Land Connecting The Town Of Pangururan On Samosir And Tele On Mainland Sumatra. Tele Consequently Offers One Of The Best Views Of Lake Toba And Samosir Island Will Be Arranged, A Visit To Tomok Village Going Up From Simanindo Village And Going Along Lake Toba We Will Get To The Village Of Siallagan. In This Place There Is A Tourist Attraction Called The Village Of King Siallagan Which Is Surrounded By Stone Walls. <br />
To Get To This Place We Have To Enter A Small Gate And In The Centre Of The Village There Are Rows Of Traditional Batak Houses With Remnants Of King Siallagan'S Heritage Like Sitting Chairs And Stone Tables. Back To Parapat And Leave Lake Toba For Brastagi (Karo Highlands) Berastagi (Meaning "Rice Store") Is A Town And Subdistrict Of Karo Regency Situated On Crossroads On The Main Route Linking The Karo Highlands Of Northern Sumatra To The Coastal City Of Medan. Situated At An Altitude Of 1300M, The Town Has A Cool Climate, Ranging Between 17 To 20 Degrees Centigrade, Making A Refreshing Break From The Heat Of The City. Days Are Extremely Pleasant While Nights Can Be Quite Cool. The Town Developed In The 1920’s As Dutch Hill Station And Today Has Become A Popular Weekend Destination For Medan Residents. The Main Economic Activities In Berastagi, Centre On The Colourful Fruit And Vegetable Market And On Tourism. Berastagi Is Famous For Its Passion Fruit. The Main Attractions Of The Town Are The Two Active Volcanoes; Gunung Sibayak, With Its Hot Springs, And Gunung Sinabung. Check In Hotel For Your Accommodation, Dinner At Hotel.</p>					
									<p><b>Meals : </b> Breakfast, Lunch, Dinner</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> Brastagi - Medan
								</p>
								<p class="aj">After Breakfast Leave Brastagi Downhill Towards Medan, Arrive In Medan Sightseeing Tour To Maimoon Palace, Istana Maimun Palace ( Maimun Palace Or Maimoon Palace) Is A Well-Known Landmark At Medan, The Capital City Of North Sumatra. Built By The Kesultanan Of Deli (Sultan Of Deli), Sultan Makmun Al Rasyid Perkasa Alamsyah In Years 1887–1891, The Palace Covers 2,772 M² And Has 30 Rooms. The Palace Has Become A Tourist Destination Not Solely Because Of Age But Also Because Of The Unique Interior Design Of The Palace, Mixing Elements Of Malay Cultural Heritage, Islam, Spanish, Indian, And Italian Style. Unfortunately, The Architect Is Unknown. Some Source Say That It Was Designed By An Italian Architect While Others Believe That It Was Designed By A Dutch Captain Named Van Erp . Later Visit The Mariamman Temple Which Is The Biggest Hindu Shrine In Medan. It Was Founded In 1884 Ad. This Temple Was Constructed By Early Indian Settlers In Medan Brought By The British To The Island Of Sumatra. The Temple Depicts Various Gods And Goddesses Adored On The Columns, Walls And Ceilings Of The Temple Depicting The Great Culture And Tradition Of Hinduism. You Will Be Welcomed By Caretakers Of The Temple. Visit The Local Shopping Centre, Check In Hotel After Dinner At Local Restaurant.</p>					
									<p><b>Meals : </b> Breakfast, Lunch, Dinner</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> Hotel - Airport Depart
								</p>
								<p class="aj">After Breakfast Free Program Until Time For Transfer To Airport For Your Next Destination</p>					
									<p><b>Meals : </b> Breakfast</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>Meals</li>
																		<li>Sightseeing</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Airfares And Applicable Taxes.</li><li>
Personal Expenses, Minibar / Laundry At Hotel.</li><li>
Tips To Driver And Guide.</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.skytriptraveleasy.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Medan & Lake Toba 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="21207"/>
						</form>
						</div>
						
						";i:1;s:61:"Book Medan & Lake Toba Tour - 3 Nights / 4 Days Tour Packages";i:2;s:106:"book medan & lake toba tour - 3 nights / 4 days tour packages, heritage tour packages, medan tour packages";i:3;s:142:"Skytrip Travel Easy offers Medan & Lake Toba Tour - 3 Nights / 4 Days tour package, budget Heritage tour packages for Medan at exciting price.";i:4;s:504:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Medan"        
		                 },
		      "description": "Airfares And Applicable Taxes.
Personal Expenses, Minibar / Laundry At Hotel.
Tips To Driver And Guide.",
		      "name": "Medan & Lake Toba Tour",
		      "telephone": "+91-9555999290"
		    }
		    </script>
			";i:5;N;}