a:6:{i:0;s:10374:"				<div class="h1"><h1>Exotic Kerala Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.geetcompany.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.geetcompany.com/holiday-tour-packages.htm" title="Holiday Tour Packages">Holiday Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Exotic Kerala Tour</p>
				<br />
				
									<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>
					
					<table class="w100 formTable imgWidth">
					<tr>
					
											<td class="p10px vat imgWidth150 w150px">
						<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_1/22362/55109.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/22362/55109.jpg"  width="150" height="150"    alt="Exotic Kerala Tour" title="Exotic Kerala Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											
					<td class="p10px">
											<p class="mb5px"><b>Tour Code :</b> 119</p>
												<p class="mb5px"><b>Duration :</b> 
						7 Nights / 8 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Kochi, Kovalam, Thekkady, Alleppey, Munnar</p>
												<p><b>Price (Starting From) :</b>						
						INR 19999 Per Person						</p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.geetcompany.com/travel-inquiry.htm">
						<input type="hidden" name="subject" value="Exotic Kerala Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="28090"/>
						</form>
						</p>
											</td>
					</tr>
					</table>
											<div class="mt7px dif">* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.</div>
											<br />
					
					<div class="packageTabs myTabs horizontal mc"><!--MY TABS STARTS-->
					<ul class="fo lsn m0px p0px">
					
											<li id="tab2"><a href="#data2">Itinerary</a></li>
												<li id="tab4"><a href="#data4">Tour Detail</a></li>
												<li id="tab6"><a href="#data6">Terms &amp; Conditions</a></li>
											</ul>
					
					
											<div class="ic bdr" id="data2"><!--DATA2 START-->
						<br />
						<ul class="lsn m0px p0px">
									<li>
									<p class="b mb5px">Day 1: Cochin
									</p>
									<div class="data p10px">Arrival at the Cochin Airport our representative will receive you and take to the hotel. Spend the afternoon with local sightseeing in and around Cochin - the "Queen of Arabian Sea", this is one of the finest natural harbors in the World and was one of the major centers for commerce and trade with British, Chinese, Portugese, Dutch, etc. Sightseeing attractions in Cochin include Dutch Palace, Jewish Synagogue, Jewish Street, St. Francis Church and Chinese Fishing Nets. Overnight stay in Cochin.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 2: Cochin - Munnar
									</p>
									<div class="data p10px">After breakfast check out from the hotel and drive to Munnar (150 km - 04 Hours drive) on arrival check into the hotel. Spend the day at leisure. Overnight stay in Munnar.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 3: Munnar
									</p>
									<div class="data p10px">Explore more in Munnar during the second day in Munnar. After breakfast, proceed to visit the Eravikulam National Park "where you get to see the endangered Nilgiri Tahr". Later on proceed to visit Mattupetty Dam, Eco Point etc. Back to the hotel after an exciting day. Overnight stay arranged at the hotel in Munnar.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 4: Munnar - Thekkady
									</p>
									<div class="data p10px">Morning after breakfast, continue your journey to Thekkady reaching there in few hours. Check into the resort and relax. Later on proceed for a spice plantation tour. Explore wide variety of spices in Kerala. You may also shop few varieties. Travel by boat on the Periyar Lake to spot the elephants and avifauna for which this reserve is well known. Boat cruises and sunrise and sunset are particularly recommended. Back to the hotel for an overnight stay.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 5: Thekkady - Alleppey
									</p>
									<div class="data p10px">After early breakfast check out from the hotel and drive to Alleppey(170 km – 5 hours drive) on arrival check into the hotel. After breakfast proceed for local sightseeing in and around Alleppey-. The stretch of backwater is spread over 900 sq. km. The hamlet clings to tradition and the local population prefers to live adhering to their old ways. Choose a canoe, motor boat or a houseboat and devour the beauty of this backwater paradise at its best. Overnight stay is arranged in Alleppey(Hotel).</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 6: Alleppey - Kovalam
									</p>
									<div class="data p10px">After breakfast check out from the hotel proceed to Kovalam. Whole day enjoy at Kovalam beach. Overnight stay at Kovalam.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 7: Kovalam
									</p>
									<div class="data p10px">After breakfast proceed to Trivandrum sightseeing. Evening back to hotel for overnight stay.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 8: Kovalam - Trivandrum
									</p>
									<div class="data p10px">After Breakfast drop to Trivandrum Airport.</div>					
									</li>
									<br />					
							</ul>						<!--DATA2 EMD--></div>
											
						<div class="ic bdr" id="data4"><!--DATA4 START-->
						<br />
						Kochi<br />
<br />
The striking port city of Kochi or Cochin is a tourist's paradise. Lush mangroves, coconut tress reflected in the translucent waters of backwaters, ancient churches, cathedrals and fort - tourists on sightseeing tours of Cochin would find all these and more. Flanked by the Western Ghats on the east and the majestic looking Arabian Sea in the west, Kochi occupies a very strategic location and has been a significant trading zone and attractive tourist destination since time immemorial. The tradition and reputation of this enchantingly quaint port city has maintained till date.<br />
<br />
Munnar<br />
<br />
Munnar is situated at the confluence of three mountain streams - Mudrapuzha, Nallathanni and Kundala. 1,600 m above sea level, this hill station was once the summer resort of the erstwhile British Government in South India. Sprawling tea plantations, picture-book towns, winding lanes and holiday facilities make this a popular resort town. Among the exotic flora found in the forests and grasslands here is the Neelakurinji. This flower which bathes the hills in blue once in every twelve years will bloom next in 2018. Munnar also has the highest peak in South India, Anamudi, which towers over 2,695 m. Anamudi is an ideal spot for trekking.<br />
<br />
Thekkady<br />
<br />
The very sound of the word Thekkady conjures up images of elephants, unending chains of hills and spice scented plantations. The Periyar forests of Thekkady are one of the finest wildlife reserves in India. Spread across the entire district is picturesque plantations and hill towns that hold great opportunities for treks and mountain walks.<br />
 <br />
Alleppey<br />
<br />
The village of Alleppey is a cluster of little islands on the Vembanad Lake, and is part of the Kuttanad region. The bird sanctuary here, which is spread across 14 acres, is a favorite haunt of migratory birds and an ornithologist's paradise. Egrets, darters, herons, teals, waterfowl's, cuckoo, wild duck and migratory birds like the Siberian Stork visit here in flocks and are a fascinate the visitors. An enchanting backwater destination, Kumarakom offers visitors many other leisure options.<br />
<br />
Kovalam<br />
<br />
Kovalam is an internationally renowned beach with three adjacent crescent beaches. It has been a favorite haunt of tourists, especially Europeans, since the 1930s. A massive rocky promontory on the beach has created a beautiful bay of calm waters ideal for sea bathing.Any Meals other than mentioned in inclusions<br />
Any Entrance & Guide Charges<br />
Train / Air Tickets<br />
Personal expenses such as tips, porterage, telephone calls, rooms service, etc<br />
Travel Insurance.<br />
GST - 3.09% extra01-1031-03							<p class="b mb5px dif">Inclusions :</p>
							<ul>
																	<li>Sightseeing</li>
																				<li>Transfers</li>
																	</ul>
							<br />
														<p class="b mb5px dif">Exclusions :</p> <ul><li>Any Meals other than mentioned in inclusions</li><li>
Any Entrance & Guide Charges</li><li>
Train / Air Tickets</li><li>
Personal expenses such as tips, porterage, telephone calls, rooms service, etc</li><li>
Travel Insurance.</li><li>
GST - 3.09% extra</li></ul><br />
													<!--DATA4 EMD--></div>
												<div class="ic bdr" id="data6"><!--DATA6 START-->
						<br />
						* 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. ~^#^~						<!--DATA6 EMD--></div>
											
					<!--MY TABS END--></div>
					";i:1;s:57:"Book Exotic Kerala Tour - 7 Nights / 8 Days Tour Packages";i:2;s:143:"book exotic kerala tour - 7 nights / 8 days tour packages, hill station tour packages, kochi, kovalam, thekkady, alleppey, munnar tour packages";i:3;s:189:"Book Exotic Kerala Tour - 7 Nights / 8 Days tour packages from Geet & Company - Get attractive 7 Nights / 8 Days Hill Station  tour packages for  Kochi, Kovalam, Thekkady, Alleppey, Munnar.";i:4;s:3057:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kochi, Kovalam, Thekkady, Alleppey, Munnar"        
		                 },
		      "description": "Kochi

The striking port city of Kochi or Cochin is a tourist's paradise. Lush mangroves, coconut tress reflected in the translucent waters of backwaters, ancient churches, cathedrals and fort - tourists on sightseeing tours of Cochin would find all these and more. Flanked by the Western Ghats on the east and the majestic looking Arabian Sea in the west, Kochi occupies a very strategic location and has been a significant trading zone and attractive tourist destination since time immemorial. The tradition and reputation of this enchantingly quaint port city has maintained till date.

Munnar

Munnar is situated at the confluence of three mountain streams - Mudrapuzha, Nallathanni and Kundala. 1,600 m above sea level, this hill station was once the summer resort of the erstwhile British Government in South India. Sprawling tea plantations, picture-book towns, winding lanes and holiday facilities make this a popular resort town. Among the exotic flora found in the forests and grasslands here is the Neelakurinji. This flower which bathes the hills in blue once in every twelve years will bloom next in 2018. Munnar also has the highest peak in South India, Anamudi, which towers over 2,695 m. Anamudi is an ideal spot for trekking.

Thekkady

The very sound of the word Thekkady conjures up images of elephants, unending chains of hills and spice scented plantations. The Periyar forests of Thekkady are one of the finest wildlife reserves in India. Spread across the entire district is picturesque plantations and hill towns that hold great opportunities for treks and mountain walks.
 
Alleppey

The village of Alleppey is a cluster of little islands on the Vembanad Lake, and is part of the Kuttanad region. The bird sanctuary here, which is spread across 14 acres, is a favorite haunt of migratory birds and an ornithologist's paradise. Egrets, darters, herons, teals, waterfowl's, cuckoo, wild duck and migratory birds like the Siberian Stork visit here in flocks and are a fascinate the visitors. An enchanting backwater destination, Kumarakom offers visitors many other leisure options.

Kovalam

Kovalam is an internationally renowned beach with three adjacent crescent beaches. It has been a favorite haunt of tourists, especially Europeans, since the 1930s. A massive rocky promontory on the beach has created a beautiful bay of calm waters ideal for sea bathing.Any Meals other than mentioned in inclusions
Any Entrance & Guide Charges
Train / Air Tickets
Personal expenses such as tips, porterage, telephone calls, rooms service, etc
Travel Insurance.
GST - 3.09% extra01-1031-03",
		      "name": "Exotic Kerala Tour",
		      "telephone": "+91-9896771268"
		    }
		    </script>
			";i:5;N;}