a:6:{i:0;s:25823:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>6 Days & 5 Nights Kerala Tour</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.thebluetour.in/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.thebluetour.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> 6 Days & 5 Nights Kerala Tour</p>
						</div>
						</div>
						</section>
										<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
								
						<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">
					
											<p class="mb5px"><b>Duration :</b> 
						5 Nights / 6 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Kumarakom, Kochi, Thekkady, Alleppey, Munnar</p>
												<p class="mb5px"><b>Price (Starting From) :</b> 
						INR 15999 Per Person						</p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.thebluetour.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="6 Days & 5 Nights 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="191032"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_20/579882/300734.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_20/579882/300734.jpg"  width="150" height="99"    alt="6 Days & 5 Nights Kerala Tour" title="6 Days & 5 Nights Kerala Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
											<div class="mt7px dif">* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.</div><br />
														<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								Cushioned between the Western Ghats and the Arabian Sea, Kerala has established a heritage of roving mountains, emerald beaches and palm-lined shoreline. The pervasive beauty of palm trees and huge expanses of sand are precursors to a state adorned with diverse landscapes. Munnar, located along the Western Ghats, is home to undulating mountains and brews a flavour of the colonial times through its museums and high-peak points. The enchanting woods of Thekkady allow a glimpse into the cultural strings of the state with its air infused with the aroma of fresh spices. Alleppey, the site of the famed backwaters, weaves a tale of pristine blue waters that enchants every visitor with its tranquility. Bask in the majesti city of “God’s Own Country”, relishing OYO’s services on a 5 Nights and 6 Days trip covering all these beautiful locations.								</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 at Kochi
										</p>
										<p class="aj">Board your flight and reach Kochi. The tour begins with your arrival at Kochi. The main attractions in the city are Fort Kochi, Bolgatty Palace, and the backwaters. Proceed to your hotel in Kochi, check-in and relax. In the evening, you can go out and explore the local markets and experiment with the local food there (on your own). Return to the hotel and have a comfortable 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> Transfer to Munnar
										</p>
										<p class="aj">Post an early breakfast, check-out of the hotel by early morning (around 9 AM) and proceed for a quick half-day sightseeing tour of Fort Kochi, Dutch Palace, Jewish Synagogue, St. Francis Church, and the Chinese Fishing Nets. In the afternoon, begin your journey to Munnar, which was previously the summer resort of the erstwhile British rulers in the colonial days. On the way stop at a restaurant for lunch (on your own). Enroute you can visit Cheeyappara Waterfalls and Spice Garden. After covering 135 kms, you will reach Munnar. On arrival, check-in to the hotel and relax a bit. You can go and explore the local market in the evening (on your own). Return to the hotel and have a pleasant overnight stay.<br />
Note: The Dutch Palace remains closed on Fridays and National holidays, and the Jewish Synagogue remains closed on Fridays, Saturdays, and Jewish holidays.</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 Sightseeing
										</p>
										<p class="aj">After breakfast, move from the hotel for a sightseeing tour of Munnar where you can explore the Tata Tea Museum, Eravikulam National Park, Mattupetty Dam, Echo Point, Old Munnar Town, and the town market. In the evening, return to hotel after the sightseeing and sleep in comfort overnight.<br />
Note: Eravikulam National Park remains closed from January to March due to the calving season of Nilgiri Tahr.<br />
Tata Tea Museum remains closed on Mondays.</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> Transfer to Thekkady
										</p>
										<p class="aj">After breakfast and completing the check-out formalities, proceed towards Thekkady. Mapped 110 kms far, the route is filled with eye-binding attractions, following which you will arrive at Thekkady by noon. You may opt for the Periyar Boat Ride (entrance fee not included) and indulge in activities like watching Kathakali, the famous classical Indian dance form native to Kerala and Kalaripayattu, an ancient Martial Art practiced here (on your own). You can explore the market for a variety of spices as Thekkady is famous for it. Overnight accommodation will be 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 5:</b> Transfer to Alleppey
										</p>
										<p class="aj">After breakfast, move to Alleppey to experience the celebrated houseboat paradise. After the three-and-a-half hour journey, rest of the day can be spent in leisure, enjoying the local serenity and taking a casual walk. Overnight accommodation will be at the hotel in Alleppey (you may opt for a houseboat stay at an additional cost).</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> Return to Kochi
										</p>
										<p class="aj">After breakfast, move back to Kochi converging a distance of 55 kms to board the return flight or train.</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>EP (No Meal)</li>
																				<li>Breakfast</li><li>
Accommodation on Twin/Double Sharing basis.</li><li>
All transfers and sightseeing by private vehicle.</li><li>
Pick-up and Drop from Kochi Airport/railway Station.</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Meals other than those specified above.</li><li>
Personal expenses like portages, tips, laundry, mineral water, etc.</li><li>
Any entrance fee, camera charges, etc.</li><li>
Any activity not mentioned in the inclusions.</li><li>
Travel Insurance.</li><li>
Additional cost due to flight cancellation/roadblocks, political unrest, etc.</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>All given rates are per person on Twin/Double sharing basis, unless specified especially in the quotation.</li><li>
2. All given rates at quotation level are based on real time availability. There may be a change in price in between the time interval of quotation and confirmation of package. Any such change will be specified accordingly.</li><li>
3. Special payment and cancellation policy will be applicable during peak season/Blackout dates. These dates usually are city events, regional/national holidays, political conferences, major cultural festivals or any other event which may affect regular tourist movement.</li><li>
4. In case of unavailability of rooms in the given hotels due to any unexpected scenario, alternate accommodation arrangement will be made in a similar standard available hotel.</li><li>
5. Room occupancy will strictly be in accordance with the one confirmed at the time of booking.</li><li>
6. Check-in and Check-out timings of hotels are different and based on the regulations/policies of local hotel unions of the concerned region/city or general trend of market. These will be specified at the time of quotation/communication.</li><li>
7. In case of a Triple Sharing Room, a rolling mattress will be provided for the third person. Occupancy regulations for family rooms and other Club rooms will be in accordance with the hotel’s policy.</li><li>
8. Availability of rooms, given at the time of quotation, will be on real time basis and final availability will be shared at the time of confirmation of package. OYO will not hold any service as confirmed at the quotation stage.</li><li>
9. Any booking related with flight tickets will be done on real time price basis. OYO will not hold any air ticket on confirmed basis without the final payment of air tickets’ share. As airfares are extremely dynamic in nature, any difference in cost, that arises during acknowledgement and issuance of ticket, will be taken care of by the Client.</li><li>
10. Any amendment in the issued flight tickets, like change in dates, names, timing, airline or any other information will attract amendment charges as per Airline’s amendment policies.</li><li>
11. Flight ticket cancellation/refund is strictly in accordance with the Airline’s cancellation/refund policies.</li><li>
12. OYO shall not be responsible for any loss of baggage/loss of belongings/broken baggage at airport or anywhere else.</li><li>
13. Flight timings are to be taken into consideration while reaching the airport. OYO shall not be responsible for any incidence where client is not able to reach the airport/board the flight due to any reason of personal nature, insufficient time duration between connecting flights or any other reason related with airline’s governance like delay in flight, change in timing/overbooking by the airline or any other factor.</li><li>
14. Vehicle provided during the tour will follow the tour plan specified in the itinerary. Driver in any way will not be deviated from the specified/common route.</li><li>
15. Vehicle provided during the tour will not be on disposable basis. Any travel, after the activity decided as part of the tour will not be permitted. Late evening/late night drive apart from designed plan will be prohibited.</li><li>
16. There are some monuments/areas, restricted for vehicle entrance by the local authorities. In any such case, the vehicle will drop you till the nearest possible point and further arrangements will have to be managed by the Client.</li><li>
17. Vehicle will not be allocated on the leisure day (day free for relaxation).</li><li>
18. Air conditioner in vehicles will not be operational in hilly areas (due to mechanical reasons). Driver reserves the rights to switch off/operate the AC as per the terrain, climatic and vehicle’s condition.</li><li>
19. Any entrance fees, monument fees or any other activity charges, including but not limited to charges in relation to parking, transportation, tolls, taxes, camping, admission, meals etc. will not be included in the package unless specified, especially in the inclusions section.</li><li>
20. The above mentioned package may not be available at the displayed price during long weekends, national holidays and regional festivals. There is a probability of difference in cost, which will be specified at the time of communication.</li><li>
21. In case of any amendment in package due to increase in the number of guests, the difference in the cost shall be borne by the Client/customer.</li><li>
22. Any charges related with on-ground modification/addition of service, which is opted by the Client by his/her own choice and not affecting rest of the tour itinerary, will have to be paid directly to the Driver/Supplier on behalf of OYO.</li><li>
23. OYO reserves the right to modify or cancel the tour package, in part or in whole, at any time prior to the commencement of the tour or a particular part of the tour, as the case may be, for any reason including but not limited to the act of god, act of man whether or not unforeseen and/or unexpected, etc. In all such cases, refund will be processed according to the cancellation policy of OYO as applicable at that specific point of time.</li><li>
24. OYO shall not be held responsible for any refund/charges, in case services booked are of non-refundable nature. OYO’s liability in relation to the Package shall at all times be limited to those circumstances where an express liability has been cast on it under these terms.</li><li>
25. In case of any on-ground issues with any third party, OYO shall try to support in all possible ways but shall not be held liable for the act and hence will not be liable for any sort of compensation.</li><li>
26. In case of any natural calamity or any other force majeure incident, OYO reserves the rights to modify/change or cancel the partial or complete tour Package. OYO shall not be held responsible for any refund/compensation in any such circumstances.</li><li>
27. Package price is a consolidation of different components inseparable in nature in terms of costing. Any unused service/services due to any unspecified reason will not be refunded back.</li><li>
28. Refund on cancellation (cancellation in accordance with the cancellation policies) is strictly dependent on cancellation policies and the refund process will take minimum 14 working days.</li><li>
29. Oyo's entire liability to the Client for any claim arising out of this Package/browsing the website/application, shall be limited to the amount equivalent to the price paid by the Client for the Package giving rise to such claim minus all applicable taxes and third-party charges.</li><li>
30. OYO shall not be liable to pay for any loss suffered by the Client, if it is found that the Client had been in violation of any express or implied directions given by or on behalf of OYO, applicable laws, rules and/or regulations.</li><li>
31. No offer, promo code or discount shall be applicable to this Package unless so expressly notified by OYO on its website and this Package cannot be clubbed with any scheme, offer, package of OYO or its associates.</li><li>
32. All grievances shall first be raised with the customer relationship team within 15 days of the occurrence of such an event. In case no resolution to such grievance is provided by the customer relationship team within 30 days, the</li><li>
Client shall have the right to escalate the dispute in the accordance with these terms and OYO’s applicable policies.</li><li>
33. Client shall be liable to reimburse OYO for any and all losses suffered and/or charges incurred as a result of the Client’s actions, direct or indirect, in relation to the Client.</li><li>
34. This Package shall be governed by laws of India, and all disputes in relation to this package shall be resolved via arbitration in Delhi in accordance with the Arbitration and Conciliation Act, 1996. The courts of Delhi shall have the exclusive jurisdiction in relation to any matter arising out of the Package.</li><li>
35. This Package and all of your rights and obligations in relation to the same are non-transferable and cannot be assigned without the prior permission of OYO.</li></ul>					
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>Cancellation Policy:</li><li>
Time</li><li>
Cancellation amount</li><li>
15 days or more prior to departure</li><li>
25% of the package OR min prepayment, whichever is higher</li><li>
Within 15 days to departure</li><li>
100% of the package cost</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.thebluetour.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="6 Days & 5 Nights Kerala 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="191032"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thebluetour.in/new-delhi-tour-packages.htm" title="New Delhi Tour Packages">New Delhi</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thebluetour.in/goa-city-tour-packages.htm" title="Goa City Tour Packages">Goa City</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thebluetour.in/manali-tour-packages.htm" title="Manali Tour Packages">Manali</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thebluetour.in/kochi-tour-packages.htm" title="Kochi Tour Packages">Kochi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thebluetour.in/jispa-tour-packages.htm" title="Jispa Tour Packages">Jispa</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thebluetour.in/mysore-tour-packages.htm" title="Mysore Tour Packages">Mysore</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thebluetour.in/leh-ladakh-tour-packages.htm" title="Leh Ladakh Tour Packages">Leh Ladakh</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thebluetour.in/shimla-tour-packages.htm" title="Shimla Tour Packages">Shimla</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thebluetour.in/coimbatore-tour-packages.htm" title="Coimbatore Tour Packages">Coimbatore</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thebluetour.in/thekkady-tour-packages.htm" title="Thekkady Tour Packages">Thekkady</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.thebluetour.in/kumarakom-tour-packages.htm" title="Kumarakom Tour Packages">Kumarakom</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.thebluetour.in/munnar-tour-packages.htm" title="Munnar Tour Packages">Munnar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.thebluetour.in/coorg-tour-packages.htm" title="Coorg Tour Packages">Coorg</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.thebluetour.in/ooty-tour-packages.htm" title="Ooty Tour Packages">Ooty</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.thebluetour.in/alleppey-tour-packages.htm" title="Alleppey Tour Packages">Alleppey</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thebluetour.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thebluetour.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thebluetour.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thebluetour.in/camping-holidays-catid.htm" title="Camping Packages">Camping</a> <b class="alpha50 bn small">(1)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
								
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:68:"Book 6 Days & 5 Nights Kerala Tour - 5 Nights / 6 Days Tour Packages";i:2;s:161:"book 6 days & 5 nights kerala tour - 5 nights / 6 days tour packages, beach and islands tour packages, kumarakom, kochi, thekkady, alleppey, munnar tour packages";i:3;s:200:"The Blue Tour & Travel offers 6 Days & 5 Nights Kerala Tour - 5 Nights / 6 Days tour package, budget Beach and Islands tour packages for Kumarakom, Kochi, Thekkady, Alleppey, Munnar at exciting price.";i:4;s:1300:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kumarakom, Kochi, Thekkady, Alleppey, Munnar"        
		                 },
		      "description": "Cushioned between the Western Ghats and the Arabian Sea, Kerala has established a heritage of roving mountains, emerald beaches and palm-lined shoreline. The pervasive beauty of palm trees and huge expanses of sand are precursors to a state adorned with diverse landscapes. Munnar, located along the Western Ghats, is home to undulating mountains and brews a flavour of the colonial times through its museums and high-peak points. The enchanting woods of Thekkady allow a glimpse into the cultural strings of the state with its air infused with the aroma of fresh spices. Alleppey, the site of the famed backwaters, weaves a tale of pristine blue waters that enchants every visitor with its tranquility. Bask in the majesti city of “God’s Own Country”, relishing OYO’s services on a 5 Nights and 6 Days trip covering all these beautiful locations.",
		      "name": "6 Days & 5 Nights Kerala Tour",
		      "telephone": "+91-9509888449"
		    }
		    </script>
			";i:5;N;}