a:6:{i:0;s:13463:"				<div class="h1"><h1>East India Wildlife Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.mobileplazatt.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.mobileplazatt.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>East India Wildlife 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">
						13 Nights / 14 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Kalimpong, Kolkata, 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.mobileplazatt.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="East India Wildlife 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="48404"/>
						</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/381965/94284.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/381965/94284.jpg"  width="150" height="150"    alt="East India Wildlife Tour" title="East India Wildlife 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 in Delhi
								</p>
								<p class="aj">Late evening arrival in Delhi, the capital city of India. Get an assisted transfer to your pre-booked hotel for an 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> Delhi
								</p>
								<p class="aj">The second day of the tour is for New Delhi sightseeing where you are going to cover attractions like India Gate, President House, the complex of Qutab Minar and Humayun's tomb. Stay 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 3:</b> Delhi
								</p>
								<p class="aj">Today, after breakfast, you are going to enjoy a tour of Old Delhi which is going to include major tourist attraction such as Red Fort, Raj Ghat, Jama Masjid etc. Later in the evening, if then you can enjoy a rickshaw ride in Chandni Chowk or can indulge in shopping. Stay 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> Delhi - Guwahati - Kaziranga National Park
								</p>
								<p class="aj">Board a flight for Delhi from the airport of Delhi. On arrival, drive towards the Kaziranga National Park. On arrival, check into a resort. This national park is a UNESCO World Heritage Site and holds around 2-3rd population of One-horned rhinos in the world. Attend a Bihu dance performance in the evening and enjoy dinner around a bonfire.  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 5:</b> Kaziranga National Park
								</p>
								<p class="aj">Enjoy an early morning nature walk in the park to enjoy the lush surroundings. Later, enjoy wildlife viewing at the park to spot the various animal and bird species. The evening is booked to observe silk worm rearing at a nearby tribal village. Dinner and night stay at the resort.</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 National Park
								</p>
								<p class="aj">Embark on an early morning elephant safari into the park where you may spot animals and birds like Indian Muntjac, wild boar, hog deer, Swamp Francolin, Bengal Florican. In the afternoon, enjoy a walk around tea garden and visit a tea factory. Relish sumptuous dinner at a tea garden bungalow. Stay 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 7:</b> Kaziranga -Guwahati - Bagdogra - Kalimpong
								</p>
								<p class="aj">Have your breakfast and leave for Guwahati airport to board to Bagdogra. Once you reach Bagdogra, set off by road for one of the popular tourist attractions of northeast India, Kalimpong. Enjoy the pleasant weather and ethereal landscape. On arrival, check into your hotel. Enjoy dinner. Stay 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 8:</b> Kalimpong
								</p>
								<p class="aj">Have your breakfast on day 8; spend the morning in doing the activities of your interest. After lunch, venture out of your room to visit the popular attractions of this hill town, which may include Deolo Hill, The Roman Catholic Church, Kalimpong Cactus Nursery etc. 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 9:</b> Kalimpong - Siliguri - Kolkata
								</p>
								<p class="aj">On the early morning of day 9, you are going to enjoy a thrilling rafting session in river Teesta. Afterwards, drive towards the railway station in Siliguri (New Jalpaigudi Railway Station) from where you are going to board an overnight train to Kolkata.</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> Kolkata
								</p>
								<p class="aj">Once you arrive in Kolkata, receive an assisted transfer to your pre-booked hotel. After breakfast, the day is booked for sightseeing the City of Joy, which may include Victoria Memorial, Howrah Bridge, Birla Planetarium etc. Night stay in the hotel</p>
								</td>
								</tr>
								</table>					
								</div><div id="show_more_content" style="display:none;">
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 11:</b> Kolkata - Sunderbans National Park
									</p>
									<p class="aj">Have your breakfast and leave for Basanti Port from where you are going to board a boat for Sundarbans. After you reach Sundarbans, get aboard a motorized cruise which will take you towards Sajnekhali Bird Watching. On the way, indulge in bird watching and wildlife viewing which may include Royal Bengal Tiger. Fishing Cats, Leopard Cats, Macaques, Wild Boar, Indian Grey Mongoose, Fox, Jungle Cat, spot egrets, herons and more. Overnight aboard.</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 12:</b> Sunderbans National Park
									</p>
									<p class="aj">Cruise all along the mangrove creeks for the whole day. Treat your eyes to the surrounding greenery and wildlife. You are going to reach Sajnekhali around sunset. The Mangrove Interpretation Centre will play host to you where you will enjoy refreshments along with watching a slide show on wildlife. Lunch, Dinner and Overnight aboard the boat</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 13:</b> Sunderbans National Park - Kolkata
									</p>
									<p class="aj">The morning is booked for a cycle rickshaw ride to the Rangabelia Taagore Society for observing the rural development project. In the afternoon, back to Basanti Port. Set-off for Kolkata by road. Overnight in Kolkata.</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 14:</b> Kolkata - Delhi - Onward Destination
									</p>
									<p class="aj">Go aboard a morning flight for Delhi. After arrival, the day is free. If you want then you some last minute shopping at the popular markets of Delhi. Later, get transported to the railway station or airport for your onward journey.</p>
									</td>	
									</tr>
									</table>				
									</div>					
							</div>							<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
													<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">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.mobileplazatt.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="East India Wildlife 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="48404"/>
						</form>
						</div>
						
						";i:1;s:65:"Book East India Wildlife Tour - 13 Nights / 14 Days Tour Packages";i:2;s:155:"book east india wildlife tour - 13 nights / 14 days tour packages, wildlife and nature tour packages, new delhi, kalimpong, kolkata, golaghat tour packages";i:3;s:216:"Book East India Wildlife Tour - 13 Nights / 14 Days tour packages from Mobile Plaza Tour & Travels - Get attractive 13 Nights / 14 Days Wildlife and Nature  tour packages for  New Delhi, Kalimpong, Kolkata, Golaghat.";i:4;s:435:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Kalimpong, Kolkata, Golaghat"        
		                 },
		      "description": "",
		      "name": "East India Wildlife Tour",
		      "telephone": "+91-9831390524"
		    }
		    </script>
			";i:5;N;}