a:6:{i:0;s:14179:"				<div class="h1"><h1>Guwhati/Nameri/Tawang/Bomdila/Kaziranga/Shillong/Cherrapunji Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.hotelparashuram.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.hotelparashuram.com/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Guwhati/Nameri/Tawang/Bomdila/Kaziranga/Shillong/Cherrapunji 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">Tour Code </td>
						<td class="p5px pl0px vat">005</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">Guwahati, Shillong, Cherrapunji, Sonitpur, 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.hotelparashuram.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Guwhati/Nameri/Tawang/Bomdila/Kaziranga/Shillong/Cherrapunji 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="91132"/>
						</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_13/370299/157172.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/370299/157172.jpg"  width="150" height="150"    alt="water falls" title="water falls" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					any personal belonging<br />
fooding27-0328-02<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> Airport Pickup, Guwahati to Nameri (240km/5hrs)
								</p>
								<p class="aj">After receiving you at the Lokapriya Gopinath Bordoloi International Airport we will take straight to Nameri National Park situated 240 kilometres away from Guwahati. Nameri is famous for wide range of wildlife species including tigers, Himalayan bison, stags etc. There you will also get to enjoy wildlife trekking inside the forest reserve as well as fast river water rafting over the Jia Bhoroli River. At the end of a complete day of fun, you will stay at the Nameri Eco-camp for the night.</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> Nameri to Dirang (160Km/6hrs)
								</p>
								<p class="aj">On this day, we will set out for Dirang valley of Arunachal Pradesh. Dirang valley is a Himalayan foothill valley on the way to Tawang and famous for Dirang – Dzong. It is also well known among the birders of the world for the different species of Himalayan birds seen around this place. The other attractions of Dirang are a very old electricity mill, the monasteries, old Tibetan architectures and Tibetan villages. We will stay for the night at Dirang.</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> Dirang to Tawang (145Km/7hrs)
								</p>
								<p class="aj">Next day we will set off to Tawang. On the way to Tawang, in the outskirts of Dirang there is a beautiful hot water spring. We will show you the spring and then continue towards Tawang. We will also get to see many attractive places on our way. The Sela Pass situated at a height of 13700 feet, the Paradise Lake or the Sela Lake near the Sela Pass and the War Memorial of Jaswantgarh are some of the beautiful sightseeing spots that fall on the way to Tawang. Before reaching Tawang, you will also get to see the beautiful Nuranang waterfalls. After reaching Tawang, we will take you out for sightseeing of the local places of Tawang. We will show you the places like the second largest monastery in Asia, the Tawang Monastery, the Sixth Dalai Lama birthplace, the Nun monastery (which is also accessible by a rope way), the Craft centre, the Emporium, Apple garden, and Tawang War Memorial. Your stay will be at Tawang.</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> Around Tawang Sightseeing (150km/7hrs)
								</p>
								<p class="aj">On the next day at Tawang, we will go for the sightseeing of places around Tawang which are not within the locality of Tawang. We will see places like the Sangester Lake, PTSO Lake, the Heart Lake, the Nagula Lake, Y Junction, and the Bum La Pass at the border of India and China. Also, please note an important point that if you are planning to visit the India – China border, then you must choose one of our itineraries with at least 3 days stay at Tawang as the pass for visiting Bum La Pass cannot be obtained within a day. You will be staying at the same place for the night.</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> Tawang to Bomdila (185Km/8hrs)
								</p>
								<p class="aj">Next day, we will come back to Bomdila after finishing all the sightseeing. Bomdila is a beautiful town in the valley of Himalayan foothills famous for the Bomdila monastery, Bomdila market, apple orchards, orchid farms etc. The Eaglenest Wildlife Sanctuary, famous among the birders is also nearby Bomdila. Your stay for the night will be at Bomdila.</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> Bomdila to Kaziranga, Tezpur Sightseeing (240Km/7hrs)
								</p>
								<p class="aj">From there, we will take you to Kaziranga National Park in the morning. Kaziranga is a World Heritage site situated famous for the one horned rhinoceros. It is also famous for a number of wildlife species like the tiger (which is seen in its natural habitat), different species of deer, Himalayan bison, different species of migratory bird, Himalayan birds etc. On our way to Kaziranga, we stop by Tezpur and visit the beautiful sightseeing places of this city. Situated along the banks of Brahmaputra, Tezpur is also known as the cultural city of Assam. After sightseeing of places like the Agnigarh, the Lord Shiva temples, the Ghats of Brahmaputra, and the gardens, we will continue towards Kaziranga. Your stay will be 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 7:</b> Kaziranga Sightseeing (80Km/8hrs)
								</p>
								<p class="aj">Next day early in the morning, we will take you out for Elephant safari of Kaziranga National Park. As you will travel through the forest on the back of an elephant, you can enjoy the views of different wildlife species along with the one horned rhinoceros from very closeness. After that we will take you out for the local sightseeing of Kaziranga like the orchid garden, the vast tea-gardens, ethnic villages and Assamese local villages. In the afternoon, we will take you for Jeep safari of Kaziranga National Park in any of the range of your choice. You will also get to taste the delicious Assamese fish curries and cuisines during the stay. Your stay will be at the same place.</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> Kaziranga to Shillong (280km/7hrs)
								</p>
								<p class="aj">From Kaziranga, we will take you straight to Shillong – the Scotland of the East situated in Meghalaya. Famous for the beautiful western-like weather, it is a beautiful hill station situated in Khasi hills. The prime attractions in Shillong are Shillong Peak, Elephant falls, Umiam Lake, Wards Lake, Lady Hydari Park and Don Bosco Museum. We will show you the possible places till the evening, and complete the rest sightseeing on the next day. You will be staying at Shillong for the night.</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> Shillong & Cherrapunji Sightseeinhg (170km/9hrs)
								</p>
								<p class="aj">In the morning, we will complete all the sightseeing places of Shillong and head towards Cherrapunji. On the way we will show you the Elephant falls and the Shillong Peak and then continue towards Cherrapunji. Cherrapunji is an amazing place known for the rainfalls throughout the year. The places to see in Cherrapunji are the living root bridges fromed naturally by the trees, the Seven sisters falls, the Nohkalikai falls and the Mawsmai caves. After completing the sightseeing of Cherrapunji, we will head back to Shillong to stay there for the night.</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> Shillong to Guwahati, Airport Drop (100km/4hrs)
								</p>
								<p class="aj">We will take you to Guwahati from Shillong. After reaching Guwahati, if there is enough time available we can show you one or two sightseeing places around Guwahati (like the Kamakhya temple or the Srimanta Sankardev Kalakshetra or a cruise on Brahmaputra). After that, we will drop you at the airport at the required time.</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>
																		<li>Transport</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>any personal belonging</li><li>
fooding</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.hotelparashuram.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Guwhati/Nameri/Tawang/Bomdila/Kaziranga/Shillong/Cherrapunji 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="91132"/>
						</form>
						</div>
						
						";i:1;s:105:"Book Guwhati/Nameri/Tawang/Bomdila/Kaziranga/Shillong/Cherrapunji Tour - 9 Nights / 10 Days Tour Packages";i:2;s:207:"book guwhati/nameri/tawang/bomdila/kaziranga/shillong/cherrapunji tour - 9 nights / 10 days tour packages, wildlife and nature tour packages, guwahati, shillong, cherrapunji, sonitpur, golaghat tour packages";i:3;s:256:"Book Guwhati/Nameri/Tawang/Bomdila/Kaziranga/Shillong/Cherrapunji Tour - 9 Nights / 10 Days tour packages from Hotel Parashuram - Get attractive 9 Nights / 10 Days Wildlife and Nature  tour packages for  Guwahati, Shillong, Cherrapunji, Sonitpur, Golaghat.";i:4;s:529:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Guwahati, Shillong, Cherrapunji, Sonitpur, Golaghat"        
		                 },
		      "description": "any personal belonging
fooding27-0328-02",
		      "name": "Guwhati/Nameri/Tawang/Bomdila/Kaziranga/Shillong/Cherrapunji Tour",
		      "telephone": "+91-9435709730"
		    }
		    </script>
			";i:5;N;}