a:6:{i:0;s:11323:"				<div class="h1"><h1>Neil Island - Port Blair by Ferry Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.natureviewtours.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.natureviewtours.co.in/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Neil Island - Port Blair by Ferry 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">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kochi, Kovalam, Thekkady, Thiruvananthapuram, Alleppey, Munnar</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.natureviewtours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Neil Island - Port Blair by Ferry 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="107710"/>
						</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_17/495762/178525.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/495762/178525.jpg"  width="150" height="150"    alt="Neil Island - Port Blair by Ferry Tour" title="Neil Island - Port Blair by Ferry 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> Arrive Cochin
								</p>
								<p class="aj">Best of Kerala tours starts with your arrival at the Cochin Airport. Meet our representative who will pick you up and transfer to hotel. Check-in to your hotel and freshen up. Later, get ready for a local sightseeing tour of Cochin. The multi-ethnic port city of Kerala offers a number of historic sites, cultural treasures and other impressive sights.<br />
<br />
Your tour covers the unique Chinese Fishing nets, Fort Cochin, Mattancherry Palace, St. Francis Church, Dutch Cemetery, Jewish Synagogue, Dutch Palace, Hill Palace, and Bolghatty Palace. Enjoy boating at the Marine drive. Later, get to the Lulu shopping mall. In the evening you will be taken for a cultural performance of the Kathakali dance show.<br />
<br />
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 2:</b> Cochin – Munnar
								</p>
								<p class="aj">Start the day with a hearty breakfast at the hotel. Later, pack your bags and check out from the hotel. Today you will be driven to Munnar. The lush scenic hill station of Munnar is one of the most beautiful places in India and not just Kerala. En-route, stop at the water falls and enjoy the natural beauty. The misty roads, the cloudy skies and the amazing views accompany on your ride. On arrival into the hill town, check in to a listed hotel. Rest of the day is at your leisure.<br />
<br />
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 3:</b> Munnar
								</p>
								<p class="aj">Wake up to the bliss of Munnar. Feast on a delicious breakfast and get ready. Proceed for a local sightseeing tour of Munnar. The first stop is the Tea Museum, where you learn about the processing of the favorite brew of India. Later, proceed to the beautiful Mattupetty Dam, Echo Point, and Kundala Lake. In the afternoon visit the Eravikulam National Park. The high attitude sanctuary is known for the Nilgiri Tahr and the Neelakurinji flowers that bloom once in 12 years.<br />
<br />
Return 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 4:</b> Munnar – Thekkady
								</p>
								<p class="aj">Wake up to an early breakfast. Later, pack your bags and check out from the hotel. Today you will leave for Thekkady by road. On arrival at the nature blessed town, check in to the hotel or the jungle lodge. In the afternoon, enjoy a boat ride on Periyar Lake. The Periyar National Park is right on the shores of the lake and on a boat tour it is quite possible for you to see wildlife and birds.<br />
<br />
Overnight stay at chosen accommodation.</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> Thekkady – Alleppey
								</p>
								<p class="aj">Start the day with breakfast, after which check out from hotel. Get assistance for transfer to Alleppey. On arrival in the town, check-in to the Hotel. Enjoy the full day at the scenic backwater. Board one of the luxury houseboat chosen for you. Cruise through the wonderful ecology. The sight of picturesque village, paddy fields, charming churches and temples is soothing. Spot rare birds and cherish the blessings. Even the dark is quite amazing when on the houseboat. Spend the stargazing on the deck.<br />
<br />
Overnight stay on the houseboat.</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> Alleppey - Kovalam
								</p>
								<p class="aj">Today the houseboat arrives to the land. Have an appetizing breakfast after which check out from the houseboat. Proceed to Kovalam by road. On arrival to the beach town, check in to the hotel. The day is free of schedules, spend at leisure. The serene beaches of Kovalam are perfect for scenic walks, sunbathing and a fun time with waves. Watch the marvelous sunset, get a grab of local seafood or you can indulge in one of the pampering Ayurvedic sessions.<br />
<br />
Overnight stay at the 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> Kovalam
								</p>
								<p class="aj">Start the day with a delicious breakfast. Later, proceed for local sightseeing tour of Trivandrum. Pay a visit to the revered Padmanabhaswamy Temple, the earthly abode of the Lord Vishnu from which the town gets its name. Also explore the Napier Museum and Zoo. Afternoon is free for shopping. Have a look at the handicrafts, seashell created items, etc.<br />
<br />
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 8:</b> Departure
								</p>
								<p class="aj">Today is the last day of the tour. Have a delicious breakfast of local dishes of Kerala. Pack your bags and check out from the hotel. You will be transferred to Trivandrum airport /Railway Station to connect for onward destination. Return home with the best memories of Kerala.</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>
															</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.natureviewtours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Neil Island - Port Blair by Ferry 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="107710"/>
						</form>
						</div>
						
						";i:1;s:77:"Book Neil Island - Port Blair by Ferry Tour - 7 Nights / 8 Days Tour Packages";i:2;s:188:"book neil island - port blair by ferry tour - 7 nights / 8 days tour packages, beach and islands tour packages, kochi, kovalam, thekkady, thiruvananthapuram, alleppey, munnar tour packages";i:3;s:231:"Nature View Tours & Travel offers Neil Island - Port Blair by Ferry Tour - 7 Nights / 8 Days tour package, budget Beach and Islands tour packages for Kochi, Kovalam, Thekkady, Thiruvananthapuram, Alleppey, Munnar at exciting price.";i:4;s:472:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kochi, Kovalam, Thekkady, Thiruvananthapuram, Alleppey, Munnar"        
		                 },
		      "description": "",
		      "name": "Neil Island - Port Blair by Ferry Tour",
		      "telephone": "+91-9324904946"
		    }
		    </script>
			";i:5;N;}