a:6:{i:0;s:11636:"				<div class="h1"><h1>National Parks Of Assam</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.neroutes.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.neroutes.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>National Parks Of Assam</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">Tour Code </td>
						<td class="p5px pl0px vat">NER 10</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						9 Nights / 10 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Tinsukia, Sonitpur, Nagaon</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 44000 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.neroutes.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="National Parks Of Assam - 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="47561"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
										</tr>
					</table>
					</div>
					<br />
					
					Major Meals<br />
Tea, snacks and mineral water<br />
Camera Charges<br />
Tips, laundry and telephone bills<br />
Travel Insurances<br />
Guide services<br />
Any up gradation cost<br />
Other Expenses of personal nature01-1130-04<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> Dibrugarh - Tinsukia
								</p>
								<p class="aj">Today arrive at Dibrugarh airport and then drive to Tinsukia (40 kms / 01 hrs drive), reach Tinsukia and check into hotel and overnight stay.</p>					
									<p><b>Meals : </b> Breakfast </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> Tinsukia - Dibru Saikhowa National Park
								</p>
								<p class="aj">After breakfast visit Maguri Beel on a country boat (without motor).  Maguri Beel is a wetland located just outside the Dibru Saikhowa National Park and Biosphere Reserve. After lunch go for another excursion on country made boat to Dibru Saikhowa National Park. Evening back to lodge and at leisure. Overnight at Tinsukia.</p>					
									<p><b>Meals : </b> Breakfast</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> Dibru Saikhow - Jorhat
								</p>
								<p class="aj">Today go for another boat ride in Dibru Saikhowa National Park for half day, explore the bird and wildlife and you might encounter the Endangered River Dolphin. Later back to Tinsukia and proceed to Jorhat (265 kms / 05 hrs drive), reach Jorhat and check into hotel and evening at rest. Overnight stay at Jorhat.</p>					
									<p><b>Meals : </b> Breakfast</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> Jorhat - Gibbon Wls - Kaziranga
								</p>
								<p class="aj">Today very early morning we will drive to Gibbon WLS ( the only Gibbon  Sanctuary in India) , in Gibbon one can find six primates, many birds and butterflies, take a walk along with the Forest Guard ( 03 hrs walk – depending on interest), ( Breakfast will be packed from Hotel) later drive back to Jorhat ( 22 kms) and after refreshment drive to Kaziranga National Park ( 100 kms / 03 hrs drive), day at leisure in Kaziranga NP. Overnight stay at Kaziranga.</p>					
									<p><b>Meals : </b> Breakfast</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
								</p>
								<p class="aj">Today you will go for safaris and elephant ride inside the national park. Early morning go for an Elephant ride ( timing 5:00 AM/ 06:00 AM/ 7:00 AM) then return back to the lodge and after breakfast go for a Jeep Safari (timing  8:00 AM / 9:00 AM) for 03 hrs, after the safari come back to lodge. After lunch and refreshment go for another Jeep Safari in the Western/ Central range of the park (timing 2:00AM / 3:00 AM) for 02 ½ hrs ( also depending on the sunset as in winters the sun sets early in Northeast India), evening at leisure. Overnight stay at Kaziranga.</p>					
									<p><b>Meals : </b> Breakfast</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> Kaziranga - Nameri
								</p>
								<p class="aj">Today after breakfast at Kaziranga you will be driven to Nameri National Park (100 kms / 02 ½ hrs drive), enroute we will do local sightseeing in Tezpur – the ruins and temples of the Ban Dynasty, proceed and  reach Nameri, check into Eco Camp. Overnight stay in Eco Camp.</p>					
									<p><b>Meals : </b> Breakfast</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> Nameri
								</p>
								<p class="aj">Today go for a trekking trip inside the national park (only national park where you can walk with forest arm guard) for 03 hrs, back to Eco Camp and after having breakfast and refreshment go for a gentle boat ride in rubber dinghies in Jia Bhoreli River flowing along the national park ( 02 ½ hrs on the river). Afternoon you free at leisure or after lunch and refreshment go for a village walk in nearby villages. Overnights stay in Eco Camp.</p>					
									<p><b>Meals : </b> Breakfast</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 8:</b> Nameri - Manas
								</p>
								<p class="aj">Today after breakfast you will be driven to Manas National Park (235 kms / 06 ½ hrs drive), reach Manas and check into hotel, evening at leisure. Overnight stay at Manas.</p>					
									<p><b>Meals : </b> Breakfast</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 9:</b> Manas National Park
								</p>
								<p class="aj">Today early morning go for an Elephant Ride inside the national park (timing: 06:00 AM / 07:00 AM) for 40 min of ride, return back to lodge and after breakfast and refreshment go for a walk into nearby villages and also visit a Tea Garden, later after lunch go for a Jeep safari in the Mathunguri Range of the park, spend around 4-5 hrs inside the national park, back to lodge and overnight stay.</p>					
									<p><b>Meals : </b> Breakfast</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 10:</b> Manas - Guwahati Airport
								</p>
								<p class="aj">Today after breakfast drive to Guwahati airport for onward destination ( 220 kms / 05 hrs drive)</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>Sightseeing</li>
																		<li>Transport</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Major Meals</li><li>
Tea, snacks and mineral water</li><li>
Camera Charges</li><li>
Tips, laundry and telephone bills</li><li>
Travel Insurances</li><li>
Guide services</li><li>
Any up gradation cost</li><li>
Other Expenses of personal nature</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.neroutes.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="National Parks Of Assam - 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="47561"/>
						</form>
						</div>
						
						";i:1;s:63:"Book National Parks Of Assam - 9 Nights / 10 Days Tour Packages";i:2;s:140:"book national parks of assam - 9 nights / 10 days tour packages, wildlife and nature tour packages, tinsukia, sonitpur, nagaon tour packages";i:3;s:165:"NERoutes offers National Parks Of Assam - 9 Nights / 10 Days tour package, budget Wildlife and Nature tour packages for Tinsukia, Sonitpur, Nagaon at exciting price.";i:4;s:617:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Tinsukia, Sonitpur, Nagaon"        
		                 },
		      "description": "Major Meals
Tea, snacks and mineral water
Camera Charges
Tips, laundry and telephone bills
Travel Insurances
Guide services
Any up gradation cost
Other Expenses of personal nature01-1130-04",
		      "name": "National Parks Of Assam",
		      "telephone": "+91-9085090801"
		    }
		    </script>
			";i:5;N;}