a:6:{i:0;s:11711:"				<div class="h1"><h1>8 Days Kerala Tour Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.fourstoursandtravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.fourstoursandtravels.com/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>8 Days Kerala Tour Package</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">Kumarakom, Kochi, 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.fourstoursandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="8 Days Kerala Tour Package - 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="83841"/>
						</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_16/460853/148121.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/460853/148121.jpg"  width="150" height="150"    alt="8 Days Kerala Tour Package" title="8 Days Kerala Tour Package" /></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 Cochin (Kochi)
								</p>
								<p class="aj">On arrival at the Cochin Airport/Railway Station, our tour representative helps you with an assisted transfer to your hotel. Also known as the ‘Queen of the Arabian Sea’, Cochin or Kochi is one of the most famous cities of Kerala state. The city is dotted with several popular tourist attractions. As you reach the hotel, complete the check-in formalities. Now, you can relax for some time. In the evening, you can visit the local market where you can get your hands on some excellent spices, handicraft items and nuts.<br />
<br />
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> Cochin Sightseeing
								</p>
								<p class="aj">On day 2, after breakfast, you partake in sightseeing, visiting the popular tourist attractions of Cochin. Notice that most of the city’s attractions hold a Portuguese, Dutch and British touch in their architecture. The first visit of the day is to the Jewish Synagogue which was erected way back in the year 1568. The walls of the synagogue have been adorned beautifully hand -painted Chinese tiles in white and blue colors. Next, visit the oldest European church in India, the St. Francis Church. Visit to the church is followed by a visit to the Dutch Palace, also known as the Mattancherry Palace. This palace is known for its attractive murals, Palanquins and other ancient possessions. Thereafter, get all set to visit one of the most popular attractions of Cochin, the Chinese fishing nets. The evening is scheduled for enjoying a Kathakali performance.<br />
<br />
Overnight stay in Cochin.</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> Cochin - Munnar (approx. 4 hours)
								</p>
								<p class="aj">On this day, go onboard a bus to proceed to your next destination, Munnar, fondly known as the ‘Switzerland of India’. Upon arrival, check into the hotel. Probably, the most popular hill station of Kerala, Munnar is known to be blessed with abundant scenic beauty. The day is scheduled for a wildlife safari at the Eravikulam National Park, home to a rare species of a kind of mountain goat, Nilgiri Tahr. Embark on a jungle safari inside the national park. Once back to the hill town, explore the old town market.<br />
<br />
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> Munnar
								</p>
								<p class="aj">After breakfast on the 4th day of tour, have an early morning safari inside the Eravikulam National Park where you can spot several exotic animal species such as Tiger, Leopard, Nilgiri Tahr, Indian bison and more. This national park is also known for owing a rich biodiversity with high elevation shoal-grassland ecosystem. Enjoy the wonderful weather and treat your eyes to the lovely lush views.<br />
<br />
Overnight stay in Munnar.</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> Munnar - Periyar
								</p>
								<p class="aj">Today leave your beds early for an early morning leisure nature walk in the verdant tea estates of Munnar where you can also spot Neela Kurunji, a rare floral species found in the region. Back to the hotel and pack your belongings as now you leave by road for Thekaddy to go the extremely popular Periyar National Park, known for housing a decent population of elephant and tigers. As you reach Pariyar, check-in at a jungle resort. The evening is fixed for a bird watching tour while you enjoy boating in the placid waters of the vast Periyar Lake. You would be able to spot several colorful species of resident as well as migratory birds.<br />
<br />
Overnight stay in the jungle lodge.</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> Periyar - Kumarakom
								</p>
								<p class="aj">On day 6, hit the road to the mesmerizing Kumarakom, lying on the banks of Lake Vembanad. This beautiful town is a popular destination of Kerala, flocked by tourists all year round. On reaching, you complete the check-in formalities at a hotel/resort along the banks of the placid lake. Check-in is followed by lunch. Thereafter, spend the afternoon in enjoying the sights around the Lake. Hop into a boat and spot several colorful avifauna species. In the evening, embark on a leisure walk to explore the serene town or you can also visit the local market to get your hands on some wonderful handicrafts.<br />
<br />
Overnight stay in 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> Kumarakom - Alleppey
								</p>
								<p class="aj">In the morning, get into a houseboat, traditionally known as Ketuvallam. This is going to be an overnight boat from Kumarakom to Alleppey. Spend your day on this splendid cruise exploring the lush vast stretches of palm-fringe Kerala backwaters. Savor tasty meals prepared by a chef who would be accompanying you. This houseboat has well-equipped rooms and a fully-loaded kitchen. Admire the lovely surroundings.<br />
<br />
Overnight on-board.</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> Alleppey - Cochin for Departure
								</p>
								<p class="aj">In the morning, you arrive at the beautiful Alleppey backwater. From here, de-board the houseboat. Later on, get transferred to the Cochin airport to board the flight to your onward destination.</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.fourstoursandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="8 Days Kerala Tour Package - 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="83841"/>
						</form>
						</div>
						
						";i:1;s:65:"Book 8 Days Kerala Tour Package - 7 Nights / 8 Days Tour Packages";i:2;s:143:"book 8 days kerala tour package - 7 nights / 8 days tour packages, hill station tour packages, kumarakom, kochi, alleppey, munnar tour packages";i:3;s:182:"Four S Tours & Travels offers 8 Days Kerala Tour Package - 7 Nights / 8 Days tour package, budget Hill Station tour packages for Kumarakom, Kochi, Alleppey, Munnar at exciting price.";i:4;s:432:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kumarakom, Kochi, Alleppey, Munnar"        
		                 },
		      "description": "",
		      "name": "8 Days Kerala Tour Package",
		      "telephone": "+91-8089895191"
		    }
		    </script>
			";i:5;N;}