a:6:{i:0;s:10168:"				<div class="h1"><h1>Kaziranga with Meghalaya Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.grihapraveshtravels.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.grihapraveshtravels.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Kaziranga with 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, Golaghat</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.grihapraveshtravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kaziranga with 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="118792"/>
						</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_15/423905/192584.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/423905/192584.jpg"  width="150" height="150"    alt="Kaziranga with Meghalaya Tour" title="Kaziranga with Meghalaya 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> Arrival
								</p>
								<p class="aj">As you arrive at Guwahati airport or railway station, our representative will be waiting for you. From there we will drive to Kaziranga, the Rhinos Country. The drive from Guwahati will take a minimum 05 hrs. Upon arrival at Kaziranga, we will check into the wildlife resort.<br />
<br />
After freshening up you can go on a guided tour through the forest near your accommodation along the river bank. You can also visit the tea garden and rubber plantation. Later return to the resort for overnight stay.</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> Kaziranga
								</p>
								<p class="aj">Get up early for elephant safari into the forest. Our representative will take you to the elephant riding point by jeeps. Here we will be carried through the tall grass. Meanwhile the morning mists will slowly lift leading to an experience that one cannot forget easily. The elephant safari is the best mean for wildlife viewing as the wild animals are not afraid of the elephants and it is possible to observe them from very closely.<br />
<br />
Return to the resort for breakfast. After breakfast, we will go for jeep safari in the national park for wildlife viewing in the central zone.<br />
<br />
Later return to the resort for unwinding yourself and having lunch. After lunch we will go on our second jeep safari of the day, this time we will visit the Western zone of the national park. One can also spend some time at the Donga view point, situated in western zone. Return to the resort for overnight stay.</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> Kaziranga - Guwahati - Shillong
								</p>
								<p class="aj">Enjoy jeep safari to the national park in the morning and later after breakfast drive to Shillong via Guwahati. En-route we will have a short halt at Barapani Umiam Lake, a majestic placid lake with its surrounding sylvan hills. Upon arrival, check into the hotel for overnight stay.</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: Cherrapunjee
								</p>
								<p class="aj">After an early breakfast leave for Cherrapunjee, barely 65 kms from Shillong. It is the wettest destination in the world and on your drive to Cherrapunjee, you will come across roaring waterfalls diving into unfathomable gorges. Upon arrival, check into a hotel. Fresh n-up and then visit the famous Nohsngithiang Falls, Nohkalikai fall, Mawsmai Cave. Return to hotel by evening for overnight stay.<br />
<br />
Cherrapunjee, officially known as Sohra, is 56 kms from Shillong, and a must see destination for all tourists. It was the headquarters of the Khasi & Jaintia province during the British rule before shifting to Shillong in 1864. This was due to the inconvenience caused by excessive rain during the monsoon months.</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> Cherrapunjee
								</p>
								<p class="aj">Early morning we will visit the cleanest village in India that is nearly 28 kms from Cherrapunjee. Just close to the scenic village, there are interesting sights like the living roots bridge and a beautiful sight boulder balancing on another rock.<br />
<br />
In the afternoon we will return back to Shillong and en-route we will visit the Elephanta falls and Shillong Peak for enjoying some breath taking views. Upon arrival at Shillong, we will transfer to the hotel for overnight stay.</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> Shillong - Guwahati
								</p>
								<p class="aj">In the morning after breakfast, we will go on local tour of Shillong. We will visit the Ward Lake and Hydari Park. Later, drive to Guwahati. Upon arrival, check into a hotel. In the evening enjoy sunset boat cruise on Brahmaputra. Overnight stay 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 7:</b> Departure
								</p>
								<p class="aj">After breakfast transfer to the airport to board the flight for onward destinations.</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>
															</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.grihapraveshtravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kaziranga with 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="118792"/>
						</form>
						</div>
						
						";i:1;s:68:"Book Kaziranga with Meghalaya Tour - 6 Nights / 7 Days Tour Packages";i:2;s:130:"book kaziranga with meghalaya tour - 6 nights / 7 days tour packages, hill station tour packages, guwahati, golaghat tour packages";i:3;s:182:"Book Kaziranga with Meghalaya Tour - 6 Nights / 7 Days tour packages from Grihapravesh Travels - Get attractive 6 Nights / 7 Days Hill Station  tour packages for  Guwahati, Golaghat.";i:4;s:419:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Guwahati, Golaghat"        
		                 },
		      "description": "",
		      "name": "Kaziranga with Meghalaya Tour",
		      "telephone": "+91-9800718321"
		    }
		    </script>
			";i:5;N;}