a:6:{i:0;s:12094:"				<div class="h1"><h1>Charismatic 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>Charismatic 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" id="detailslider1">
															<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/55107.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/22362/55107.jpg"  width="150" height="150"    alt="Charismatic Kerala Tour" title="Charismatic Kerala Tour" /></a></p></div></li>
																		<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/55108.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/22362/55108.jpg"  width="150" height="150"    alt="Charismatic Kerala Tour" title="Charismatic Kerala Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											
					<td class="p10px">
											<p class="mb5px"><b>Tour Code :</b> 118</p>
												<p class="mb5px"><b>Duration :</b> 
						5 Nights / 6 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Kochi, Thekkady, Alleppey, Munnar</p>
												<p><b>Price (Starting From) :</b>						
						INR 14299 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="Charismatic 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="28089"/>
						</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: Arrival at Cochin
									</p>
									<div class="data p10px">Welcome to God?s Own Country, upon arrival our ever smiling representative will greet you and will later escort you to the hotel in Cochin. Check in and relax for a while amidst the comforts of your room. Later, move for a half day city leisurely walk around the city of Cochin. Cochin which is having the best preserved history of colonial times and the ideal way to bring it alive is to take a walk down memory lane. Surrender to the comfort of your bedroom at the hotel for the night as your tour starts the day after.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 2: Cochin - Munnar
									</p>
									<div class="data p10px">Full day sightseeing tour of Cochin will commence in the morning. On today's sightseeing you will get to explore St. Francis Church, Jewish Synagogue and more. Believed to be the oldest church in India, it was built in 1503 by Portuguese Franciscan monks. Jewish Synagogue houses The Great Scrolls of Old Testament. The Mattancherry Palace also known as Dutch Palace features Kerala's murals displaying Hindu temple art, portraits of former Kings of Kochi. Also watch the Chinese fishing nets in action along the sea front. Conclude the sightseeing trip with a visit to St. Francis Church; the church built in 1503 is the oldest European church in the country and thus is a significant historic monument as well. Moving ahead with the journey you will be escorted to your next destination, Munnar. A scenic hill station nestled in the lap of Mother Nature Munnar is known for its natural beauty, calmness and mild cold climate. On arrival check-in a hotel for your stay in the town</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 3: Munnar
									</p>
									<div class="data p10px">Located in the south Western Ghats of India, Munnar is a charming hill station in the Idukki district of Kerala. The land blessed with natural splendor looks dazzling with rocky peaks, rolled mountains, manicured tea gardens and soothing mountain air. Munnar is located at the confluence of Muthirappuzha, Nallathanni and Kundaly rivers. The day at Munnar brings a sightseeing tour of the picturesque environs of the town. Essentially a tea town, Munnar catches the visitor?s attention with its refreshing aroma first and then continues to impress with its beauty and placidity. The sightseeing plan for the day includes visit to pristine Mattupetty Lake and neighboring Swiss Livestock Project, a specialized dairy farm where about 100 varieties of high yielding cattle are reared. The region is worth paying a visit for both its enchanting flora and fauna. Take a stroll around the local markets to pick souvenirs before you return to your hotel in the evening.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 4: Munnar - Thekkady
									</p>
									<div class="data p10px">Transfer to Thekkady & check into a wildlife resort. In the afternoon, set on wildlife safari inside Periyar Wildlife Sanctuary that spreads over 777 sq km of landscape. Roughly half of the landscape is dense evergreen forest, savannah grassland and moist deciduous forest. Set on a jeep safari inside Periyar Wildlife Sanctuary situated on the banks of the Periyar Lake. Home to myriad wild creatures this protected area lies in the middle of mountainous region of Cardamom Hills and is cradled with picturesque Periyar Lake. Venture deep inside the park and explore the verdant environs at the care of an expert naturalist. Animals such as elephant, sambar, gaur and wild boars and beauteous bird populations such as darters, cormorants, kingfishers and racket tailed Drongos have made the park their home. Spot these animals coming to the banks of Periyar Lake to quench their thirst while you sail on a boat in the pristine lake. Also, visit a spice plantation in the vicinity later before you return to the hotel for night stay.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 5: Thekkady - Alleppey
									</p>
									<div class="data p10px">Morning depart for Alleppey a town with picturesque canals, backwaters, beaches and lagoons, once described as the list of places known as Venice of the East by Lord Curzon. The most popular destination of Kerala renowned for its angelic beauty and picture perfect looks, this backwaters town is base for most houseboat action in the province. Enjoy backwaters boat ride amidst lush green vegetation at Alleppey.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 6: Alleppey - Cochin - Departure
									</p>
									<div class="data p10px">Your trip ends back at Cochin where guided by our representative you will reach in time to start your journey back homeward</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.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>Hotel</li>
																				<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:62:"Book Charismatic Kerala Tour - 5 Nights / 6 Days Tour Packages";i:2;s:139:"book charismatic kerala tour - 5 nights / 6 days tour packages, hill station tour packages, kochi, thekkady, alleppey, munnar tour packages";i:3;s:185:"Book Charismatic Kerala Tour - 5 Nights / 6 Days tour packages from Geet & Company - Get attractive 5 Nights / 6 Days Hill Station  tour packages for  Kochi, Thekkady, Alleppey, Munnar.";i:4;s:2768:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kochi, 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.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": "Charismatic Kerala Tour",
		      "telephone": "+91-9896771268"
		    }
		    </script>
			";i:5;N;}