a:6:{i:0;s:10420:"				<div class="h1"><h1>Assam Meghalaya Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.holidaymasti.co.in/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Assam 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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Guwahati, Shillong</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.holidaymasti.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Assam 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="48371"/>
						</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_2/30465/94244.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_2/30465/94244.jpg"  width="150" height="150"    alt="Assam Meghalaya Tour" title="Assam Meghalaya Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Any Airfare/ Train Fare.<br />
Meals Other Than The Ones Mentioned In The Inclusions Above And As Specified.<br />
Personal Expenses Such As Monuments Entry Ticket, Telephone Calls, Laundry, Mini Bar Etc.<br />
Anything Else Not Specifically Mentioned In The Inclusion Above.<br />
3.09% Govt. Service Tax.<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> Assam
								</p>
								<p class="aj">Arrival Guwahati Railway Station Met And Transfers To Hotel. Overnight In Guwahati.</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> Assam - Meghalaya
								</p>
								<p class="aj">After Breakfast Drive To Shillong (140 Kms / 4 Hrs Drive Approx). Check-In Hotel. Evening Visit Police Bazaar Shillong’s Prime Location Where The Wares On Sale Range From Electronics To Traditional Handicraft, Modern Clothing To Handloom Items, Vegetables And Traditional Spices Etc. Overnight 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 3:</b> Meghalaya (Shillong - Cherrapunjee - Shillong)
								</p>
								<p class="aj">After Breakfast We Proceed To Cherrapunjee For A Day Trip. Whole Day Sightseeing In And Around Cherrapunjee Includes Waterfalls, Lime Stone Cave, Thangkharang Park, Bangladesh View Point. Late Afternoon Drive Back To Shillong. Dinner And Overnight.</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> Meghalaya (Shillong - Jowai - Shillong)
								</p>
								<p class="aj">After Breakfast Excursion To Jowai (90 Kms / 2 ½ Hrs Drive Approx). Jowai Is One Of The Most Beautiful Towns In The Jaintia Hills District. This District Is Inhabited By The Jaintia Tribes Of Meghalaya. It Is Known For Its Natural Beauty. It Is Blessed With Good Rainfall, Glorious Sunshine, Lush Green Vegetation, Towering Plateaus, Mesmerizing Valleys, Romantic Rivers And Enchanting Waterfalls. The Jowai Is Located At A Height Of 1,380 M Above Sea Level. En Route You Will Get A Chance To See The Nature At Its Best - Rice Terraces, Forests Of Oak And Pine, Beautiful Meadows And Gushing Rivers. The Jowai Town Is A Photographer'S Delight. <br />
Later Local Sightseeing In Shillong Covering Ward’s Lake, Don Bosco Church, Shillong Peak, Elephant Falls And Local Market (Closed On Sundays). Overnight 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 5:</b> Meghalaya - Assam
								</p>
								<p class="aj">After Breakfast Drive Back To Guwahati. On Arrival Check Into Hotel. After Lunch Visit Kamakhya Temple Situated In Nilachal Hill. Kamakhya Temple Is The Prime Shakti Shrine Of The Northeast India. The Reigning Deity Here Is Goddess Parvati (Sati), Navagraha Temple, Balaji Temple, Evening Visit Shankardev Kalasheta. A Place Where Assamese History And Culture Is Depicted In A Sprawling Enclosure. Overnight At Guwahati.</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> Assam
								</p>
								<p class="aj">Early Morning Drive To Sualkuchi & Hajo (35 Kms / 1 Hr Drive). Sualkuchi - The Silk Village Of Assam Which Is Situated On The North Bank Of The River Brahmaputra. The Village Presents Ample Opportunities To Experience The Rich History And Local Culture. You Can See The Whole Process Of Manufacturing Of Assamese Silk And Muga Silk. Then Drive To Hajo. Hajo, A Place Where Three Religions Meet - Hinduism, Islam And Buddhism. Stop At Hajo For Sometime And Visit The Hayagriva Madhava Temple, A Place Of Worship For Both Buddist And Hindu.From Here Drive Up A Hill To A Sacred Religious Place Of The Muslims, Known As Poa Mecca. This Mosque Was Built After Pir Giasuddin Aulia And Is Held That It Has One-Fourth Sanctity Of Mecca And So It Is Known As Poa-Mecca. Then Drive To Guwahati. Then Return To Guwahati. Evening River Cruise Over The Mighty Brahmaputra. Overnight In Guwahati.<br />
Note: River Cruise Is Subject To Availability, River Condition And Water Level.</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> Departure Guwahati Airport
								</p>
								<p class="aj">After Breakfast Drive To Guwahati Airport/Railway Station To Connect Your Flight/Train.</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">Exclusions :</p> <ul><li>Any Airfare/ Train Fare.</li><li>
Meals Other Than The Ones Mentioned In The Inclusions Above And As Specified.</li><li>
Personal Expenses Such As Monuments Entry Ticket, Telephone Calls, Laundry, Mini Bar Etc.</li><li>
Anything Else Not Specifically Mentioned In The Inclusion Above.</li><li>
3.09% Govt. Service Tax.</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.holidaymasti.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Assam 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="48371"/>
						</form>
						</div>
						
						";i:1;s:59:"Book Assam Meghalaya Tour - 6 Nights / 7 Days Tour Packages";i:2;s:115:"book assam meghalaya tour - 6 nights / 7 days tour packages, valley tour packages, guwahati, shillong tour packages";i:3;s:160:"Book Assam Meghalaya Tour - 6 Nights / 7 Days tour packages from Holiday Masti - Get attractive 6 Nights / 7 Days Valley  tour packages for  Guwahati, Shillong.";i:4;s:696:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Guwahati, Shillong"        
		                 },
		      "description": "Any Airfare/ Train Fare.
Meals Other Than The Ones Mentioned In The Inclusions Above And As Specified.
Personal Expenses Such As Monuments Entry Ticket, Telephone Calls, Laundry, Mini Bar Etc.
Anything Else Not Specifically Mentioned In The Inclusion Above.
3.09% Govt. Service Tax.",
		      "name": "Assam Meghalaya Tour",
		      "telephone": "+91-8090952150"
		    }
		    </script>
			";i:5;N;}