a:6:{i:0;s:10697:"				<div class="h1"><h1>Meghalaya  Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.softprotravels.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.softprotravels.co.in/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Meghalaya  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">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Guwahati, Shillong, Cherrapunji</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.softprotravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Meghalaya  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="153133"/>
						</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/484941/235884.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/484941/235884.jpg"  width="150" height="90"    alt="Meghalaya  Tour" title="Meghalaya  Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Airline/rly.tickets<br />
<br />
entry & Monuments Fee, <br />
<br />
guide Charges<br />
<br />
expenses like Laundry, Telephone, Drinks, Tips, Portarage Breakfast,Lunch,Dinner Etc.<br />
<br />
any Accident Insurance.<br />
<br />
any Thing Not Mentioned in the Inclusions.<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> Arrive Guwahati – Shillong (110 Kms 3 Hrs Approx..)
								</p>
								<p class="aj">Arrival in Guwahati Station, Visit the Temples in Guwahati Start with Kamakhya Temple - the Temple is Dedicated to Goddess Kamakhya An Incarnation of Sati. It is On Nilachal Hill, Says the Shiva Purana, that the Yoni or Creative Organ of Sati Fell When Vishnu, in a Bid to Save the World from the Shiva’s Tandava Nrittya or Dance of Destruction, Cut Her Dead Body Into 51 Pieces with His Suddarshan Chakra. and Then Transfer to Shillong En Route Visit Umium Lake. Overnight At Shillong.</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> Shillong – Cherrapunjee – Shillong (60 Kms 2 Hrs Each Way)
								</p>
								<p class="aj">Breakfast At the Hotel and Drive to Cherrapunjee.cherrapunji in Meghalaya is One of the Wettest Places On the Planet and the Only Place in India to Receive Rain Throughout the Year. the Town of Cherrapunji is Nestled in the East Khasi Hills About 50 Km Southwest of the State’s Capital, Shillong. Cherrapunji, also Known as Sohra or Churra, Means ‘the Land of Oranges’. the Cliffs of Cherrapunji also Offer Stunning Views of the Plains of Bangladesh.visit to Seven Sister Falls, Nahkhalikai Falls, Mwasmai Cave, Koh Ram Hoh , Eco –park. Drive Back to Shillong.overnight At Shillong.</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> Shillong Sightseeing
								</p>
								<p class="aj">Breakfast At the Hotel and Proceed for Full Day Sightseeing of Shillong.shillong - the ‘gleneagle of the East’ Lies in the Centre of a Plateau Surrounded By  Khasi Hills. the Gorgeous City Offers Amazing Tourist Spots. the City’s Own Ward’s Lake is Popular for Short Garden Walks & Boating. the Botanical Garden Offers Plethora of Indigenous and Exotic Plants & Rare Collection of Orchids. Lady Hydari Park is a Japanese Style Landscaped Park Endowed with Streaches of Roses & Exquisite Flowers. the Mini Zoo Adjacent to the Park Has About 73 Birds, 140 Reptiles & Mammals. One of the Largest Golf Courses in Asia is An 18 Hole Golf Course is Charted Amidst a Surging Valley Full of Thick Pine Groves & Rhododendron Trees. Spend the Evening in the Splendid Arena ! the State Museum is a Display of the Lifestyle and Heritage of the People of Meghalaya. Shillong and Its Surrounding is Dotted with Splendid Waterfalls Cascading Down Deep Valleys Forming Misty Sparks as They Break the Silence of the Surroundings. Elephant Falls is a Mountain Stream Gorging Down Two Successive Falls Set in Dells of Fern Covered Rocks. Shillong Peak Offers a Birds Eye View of the Entire City and Valley.<br />
overnight At Hotel in Shillong.</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> Shillong – Mwallynnong – Dawki River – Shillong
								</p>
								<p class="aj">After Breakfast Drive from Shillong to Myallynnong Village. Mawlynnong/mawlynnong Village located in The east Khasi Hills of Meghalaya, also Referred as ‘god’s Own Garden’ Has Won the Acclaim of Being The cleanest Village in Asia in 2003. the Village Known for Its Cleanliness is Located Around 90 Kms from Shillong and is a Community Based Eco-tourism Initiative. the Community Has Made Collective Effort to Maintain the Ambience of a Clean Village. the Village Offers Picturesque Natural Beauty, a Trek to the Living Root Bridge At a Neighbouring Village Riwai. the Village also Offers a Sight of Natural Balancing Rock, a Strange Natural Phenomenon of a Boulder Balancing On Another Rock.<br />
after That, Move Ahead Towards the Dawki River, Dawki-tamabil is One of the Few Road Border Crossings Between India and Bangladesh. It is Used Mainly for Coal Transportation to Bangladesh. Some 500 Trucks Cross the Border Every Day in Peak Season. Evening Return Back to Shillong. 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 5:</b> Shillong – Guwahati Station(130 Kms 4 Hrs)
								</p>
								<p class="aj">After Breakfast Drive from Shillong to Guwahati Airport/station in Time for Onward Destination.</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>
																<li>Hotel Accommodation for 04 Days </li><li>
All Sightseeing by Cab (05 Days)</li><li>
Free use of all Hotel facilities</li><li>
All applicable taxes such Driver Bata, Toll charges, Parking charges, etc.</li>
													</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Airline/rly.tickets</li><li>
entry & Monuments Fee, </li><li>
guide Charges</li><li>
expenses like Laundry, Telephone, Drinks, Tips, Portarage Breakfast,Lunch,Dinner Etc.</li><li>
any Accident Insurance.</li><li>
any Thing Not Mentioned in the Inclusions.</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.softprotravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Meghalaya  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="153133"/>
						</form>
						</div>
						
						";i:1;s:54:"Book Meghalaya  Tour - 4 Nights / 5 Days Tour Packages";i:2;s:126:"book meghalaya  tour - 4 nights / 5 days tour packages, adventure tour packages, guwahati, shillong, cherrapunji tour packages";i:3;s:179:"Book Meghalaya  Tour - 4 Nights / 5 Days tour packages from Softpro Tour & Travel - Get attractive 4 Nights / 5 Days Adventure  tour packages for  Guwahati, Shillong, Cherrapunji.";i:4;s:643:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Guwahati, Shillong, Cherrapunji"        
		                 },
		      "description": "Airline/rly.tickets

entry & Monuments Fee, 

guide Charges

expenses like Laundry, Telephone, Drinks, Tips, Portarage Breakfast,Lunch,Dinner Etc.

any Accident Insurance.

any Thing Not Mentioned in the Inclusions.",
		      "name": "Meghalaya  Tour",
		      "telephone": "+91-7896768942"
		    }
		    </script>
			";i:5;N;}