a:6:{i:0;s:12767:"				<div class="h1"><h1>5 Night/6 Days 3Night Shillong/ 2 Night Kaziranga/1 Night Guwahati Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.travvelextent.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.travvelextent.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>5 Night/6 Days 3Night Shillong/ 2 Night Kaziranga/1 Night Guwahati 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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Guwahati, Shillong, Golaghat, Cheerapunjee</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.travvelextent.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="5 Night/6 Days 3Night Shillong/ 2 Night Kaziranga/1 Night Guwahati 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="109009"/>
						</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_10/274422/180253.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/274422/180253.jpg"  width="150" height="150"    alt="5 Night/6 Days 3Night Shillong/ 2 Night Kaziranga/1 Night Guwahati Tour" title="5 Night/6 Days 3Night Shillong/ 2 Night Kaziranga/1 Night Guwahati Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					<b>THE COST INCLUDES<br />
 <br />
COST BASED ON(valid for Indian National only)<br />
Twin Sharing Per Person <br />
Extra Person / Child With Bed (CWB) sharing the Room on mattress <br />
02 – 03 Pax - All Transfer & Sightseeing by 01 NON AC Indica / Wagon r / Similar <br />
04 – 06Pax - All Transfer & Sightseeing by 01 NON AC Tata Sumo / Similar <br />
Meet & Greet upon arrival at Airport / Guwahati Station<br />
1 Jeep Safari & 1 elephant safari in Kaziranga National Park <br />
Hotel Accommodation as per the name mentioned in the Category for duration as mentioned in the itinerary.<br />
All applicable Transfers & Sightseeing by Specified vehicle which will not be at disposal and will be exclusively used for the guest as per the itinerary onlyCost for supplementary service, optional Tours, Up-gradation Charges, Guide, Sightseeing entrance fees. <br />
Cost for Airfare, Train fare, Insurance Premiums, Rafting Charges.<br />
Cost for service provided on a personal request. <br />
Cost for personal expenses such as laundry, bottled water, soft drinks, incidentals, porter charges, tips etc.<br />
Cost for any other service not mentioned under the “Cost Includes” head.<br />
Difference in cost arising due to change in Taxes by the Government which will have to be collected directly ON ARRIVAL.<br />
Difference in cost arising due to extra usage of vehicle, other than scheduled & mentioned in the itinerary.<br />
Difference in cost arising due to mishaps, political unrest, natural calamities like - landslides, road blockage, etc. In such case extra will have to be paid on the spot by the guest directly.<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> Shillong
								</p>
								<p class="aj">Pick up form the Airport/railway station transfer to Shillong.  Check in to the hotel. Evening city tour like golf park, Ward Lake. Evening visit the famous market of police bazaar. Overnight stay 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 – Cheerapunjee
								</p>
								<p class="aj">Morning breakfast at the hotel. City tour of Cheerapunjee. On the way visit Shillong peak, Elephant falls, Wakhaba falls, Noikhalika falls,  evening visit mousami cave and seven sisters falls.   Overnight stay at Cherrapunji.</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> Cheerapunjee – Dawki Mawlynnong- Shillong
								</p>
								<p class="aj">After early breakfast drive to Dawki. The place Dawki is a well-known town near the Jaintia Hills of Meghalaya, as it is on the Indo-Bangladesh border. It is one of the few road borders crossing of India to Bangladesh. This pristine beauty of Meghalaya is well known for Umngot River and Dawki Bridge. It is a suspension bridge over the Umngot River and also serves as a place from where all tourists can enjoy some spectacular panoramic views and can do boating. You can also visit Indo-Bangladesh border. En-route visit Mawlynnong, (Mawlynnong –Asia’s Cleanest Village). Mawlynnong offers many interesting sights such as the living root bridge and another strange natural phenomenon of a boulder balancing on another small rock. Explore the Asia’s cleanest Village and drive to Shillong. Overnight stay 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 -  Kaziranga
								</p>
								<p class="aj">Morning breakfast at the hotel. check out of the hotel and transfer to  Kaziranga.  Check in. Rest of the day free at leisure. You can visit the Orchid Park and some tribal villages. Overnight at Kaziranga.</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> Kaziranga- Guwahti.
								</p>
								<p class="aj">Early morning Elephant safari. Return back to the hotel. Breakfast at the hotel. Afternoon go for Jeep Safari.   Check out of the hotel and transfer to Guwahati. Check in at the hotel. Relex for the rest of the Evening in the local Guwahti market. 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> Check- out
								</p>
								<p class="aj">Morning breakfast at the hotel. Check out of the hotel according to the flight timing or go for half day city tour. Transfer to the airport for your onward journey.</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">Exclusions :</p> <ul><li>Cost for supplementary service, optional Tours, Up-gradation Charges, Guide, Sightseeing entrance fees. </li><li>
Cost for Airfare, Train fare, Insurance Premiums, Rafting Charges.</li><li>
Cost for service provided on a personal request. </li><li>
Cost for personal expenses such as laundry, bottled water, soft drinks, incidentals, porter charges, tips etc.</li><li>
Cost for any other service not mentioned under the “Cost Includes” head.</li><li>
Difference in cost arising due to change in Taxes by the Government which will have to be collected directly ON ARRIVAL.</li><li>
Difference in cost arising due to extra usage of vehicle, other than scheduled & mentioned in the itinerary.</li><li>
Difference in cost arising due to mishaps, political unrest, natural calamities like - landslides, road blockage, etc. In such case extra will have to be paid on the spot by the guest directly.</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. ~^#^~						
    	<p class="h dif xlarge b mb5px">Rate Card</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">COST based in C.P. basis in standard package</td>
				<td class="headHr p5px b">Per Person Cost</td>
			</tr>
			<tr>
				<td class="data p5px">2 Pax</td>
				<td class="data p5px">19390</td>
			</tr>
			<tr>
				<td class="data p5px">4 Pax</td>
				<td class="data p5px">13756</td>
			</tr>
			<tr>
				<td class="data p5px">6 Pax</td>
				<td class="data p5px">6465</td>
			</tr>
			<tr>
				<td class="data p5px">Extra Person</td>
				<td class="data p5px">5100</td>
			</tr>
		</table></div><br>
    	<p class="h dif xlarge b mb5px">Hotel Details</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="data p5px">Shillong</td>
				<td class="data p5px">Eee Cee or similar</td>
			</tr>
			<tr>
				<td class="data p5px">Cherrapunji</td>
				<td class="data p5px">Coniferous Resort or similar</td>
			</tr>
			<tr>
				<td class="data p5px">Guwahati</td>
				<td class="data p5px">Siroy Lily or similar</td>
			</tr>
			<tr>
				<td class="data p5px">Kaziranga</td>
				<td class="data p5px">Cottage hrishikesh or similar</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.travvelextent.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="5 Night/6 Days 3Night Shillong/ 2 Night Kaziranga/1 Night Guwahati 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="109009"/>
						</form>
						</div>
						
						";i:1;s:110:"Book 5 Night/6 Days 3Night Shillong/ 2 Night Kaziranga/1 Night Guwahati Tour - 5 Nights / 6 Days Tour Packages";i:2;s:190:"book 5 night/6 days 3night shillong/ 2 night kaziranga/1 night guwahati tour - 5 nights / 6 days tour packages, valley tour packages, guwahati, shillong, golaghat, cheerapunjee tour packages";i:3;s:236:"Book 5 Night/6 Days 3Night Shillong/ 2 Night Kaziranga/1 Night Guwahati Tour - 5 Nights / 6 Days tour packages from Travvel Extent - Get attractive 5 Nights / 6 Days Valley  tour packages for  Guwahati, Shillong, Golaghat, Cheerapunjee.";i:4;s:2038:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Guwahati, Shillong, Golaghat, Cheerapunjee"        
		                 },
		      "description": "<b>THE COST INCLUDES
 
COST BASED ON(valid for Indian National only)
Twin Sharing Per Person 
Extra Person / Child With Bed (CWB) sharing the Room on mattress 
02 – 03 Pax - All Transfer & Sightseeing by 01 NON AC Indica / Wagon r / Similar 
04 – 06Pax - All Transfer & Sightseeing by 01 NON AC Tata Sumo / Similar 
Meet & Greet upon arrival at Airport / Guwahati Station
1 Jeep Safari & 1 elephant safari in Kaziranga National Park 
Hotel Accommodation as per the name mentioned in the Category for duration as mentioned in the itinerary.
All applicable Transfers & Sightseeing by Specified vehicle which will not be at disposal and will be exclusively used for the guest as per the itinerary onlyCost for supplementary service, optional Tours, Up-gradation Charges, Guide, Sightseeing entrance fees. 
Cost for Airfare, Train fare, Insurance Premiums, Rafting Charges.
Cost for service provided on a personal request. 
Cost for personal expenses such as laundry, bottled water, soft drinks, incidentals, porter charges, tips etc.
Cost for any other service not mentioned under the “Cost Includes” head.
Difference in cost arising due to change in Taxes by the Government which will have to be collected directly ON ARRIVAL.
Difference in cost arising due to extra usage of vehicle, other than scheduled & mentioned in the itinerary.
Difference in cost arising due to mishaps, political unrest, natural calamities like - landslides, road blockage, etc. In such case extra will have to be paid on the spot by the guest directly.",
		      "name": "5 Night/6 Days 3Night Shillong/ 2 Night Kaziranga/1 Night Guwahati Tour",
		      "telephone": "+91-9706071620"
		    }
		    </script>
			";i:5;N;}