a:6:{i:0;s:10777:"				<div class="h1"><h1>Coimbatore - Kodaikanal - Munnar - Thekkady - Coimbatore (05 nights 06 days)</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.grabyourholidays.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.grabyourholidays.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Coimbatore - Kodaikanal - Munnar - Thekkady - Coimbatore (05 nights 06 days)</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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Thekkady, Kodaikanal, Munnar</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 17000 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.grabyourholidays.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Coimbatore - Kodaikanal - Munnar - Thekkady - Coimbatore (05 nights 06 days) - 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="197288"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<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_16/457916/314606.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457916/314606.jpg"  width="150" height="86"    alt="Coimbatore - Kodaikanal - Munnar - Thekkady - Coimbatore (05 nights 06 days)" title="Coimbatore - Kodaikanal - Munnar - Thekkady - Coimbatore (05 nights 06 days)" /></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_16/457916/314607.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457916/314607.jpg"  width="150" height="84"    alt="Coimbatore - Kodaikanal - Munnar - Thekkady - Coimbatore (05 nights 06 days)" title="Coimbatore - Kodaikanal - Munnar - Thekkady - Coimbatore (05 nights 06 days)" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Here is your tour package for Kodaikanal, Munnar, Thekkady from Coimbatore.<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> Coimbatore to Kodaikanal
								</p>
								<p class="aj">Pick up from Coimbatore and proceed to Kodaikanal, on arrival check in to the hotel, and after fresh up proceed to visit some nearest sightseeing and overnight stay at Kodaikanal.</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> Kodaikanal Local Sightseeing
								</p>
								<p class="aj">After breakfast proceeds to visit local sightseeing in Kodaikanal like Kodai-Palani Trek, Dolphin's Nose, Bryant Park, Trekking, Silent Valley View, Silver Cascade Falls, Kurinji Temple, Kodaikanal Solar Observatory, Subrahmanya Temple (Kartikeya Temple) after that return back to the hotel and night stay at Kodaikanal.</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> Kodaikanal to Munnar
								</p>
								<p class="aj">After breakfast proceeds to Munnar hills (130 Kms), the green Paradise of Kerala with unending expands of Tea plantations, spice plantations, and a variety of flora and fauna. On the way visit two beautiful waterfalls as Cheeyappara and Valara along with the foggy Tea meadows across the hills and valleys. Check-in your hill resort and afternoon at leisure/ you can go to visit Munnar town and nearby places & 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 local sightseeing
								</p>
								<p class="aj">Today after breakfast, go for sightseeing at Mattupetty Dam; a beautiful spot for viewing the picturesque Munnar, Kundala Lake- a natural lake with recreational facilities like boating and having an excellent view of the Western Ghats as well as the lush green forest surrounded with.  Also visit Eco point, blossom park, Hyde Park, TATA Tea museum, etc, and tea plantations. Afternoon you can visit Eravikulam National park; where the endangered Nilgiri Tahr is conserved also it's the prime attraction Munnar to have a soft trekking and from the hill, one can enjoy the breathtaking view of entire Munnar hills. Later drive back to your resort 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 5:</b> Munnar - Thekkady
								</p>
								<p class="aj">Today after breakfast check out your hotel and drive towards Thekkady, the Wildlife destination of Kerala. Its also known as the spice bag of the state. You can enjoy a beautiful journey through the hills and valleys of Western Ghats to reach this jungle destination. Check-in your hotel and later go for an optional Kathakali show, Spice plantation visit, elephant ride, or an Ayurvedic massage treatment there. Also, have an amazing boat ride in Periyar Lake which flows through the Periyar tiger reserve. You will have the chance to watch wild animals like elephant, Bison, Sambar, Deer, etc are roaming both shores. 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 6:</b> Thekkady to Coimbatore
								</p>
								<p class="aj">After breakfast check out from the hotel and proceed to Coimbatore for Drop before 10:00 Pm.</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>CP (Room + Breakfast)</li>
																		<li>3 Star Hotel</li>
																		<li>Sightseeing</li>
																		<li>Transfers</li>
																		<li>Private Cab</li>
																		<li>Pickup-Drop</li>
																<li>Accommodation 01 room for 05 nights.</li><li>
Breakfast Complimentary.</li><li>
All taxes of hotels and vehicles.</li><li>
All sightseeing and transfer by Dzire AC / similar.</li><li>
Toll, Parking, Driver Allowance, Fuel Charges.</li>
													</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Monument Entrance fee at places.</li><li>
Personal expenses like shopping and Laundry.</li><li>
Travel Insurance.</li><li>
GST 05% extra on the total amount.</li><li>
Lunch & Dinner at all places.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>Advance 50 % instead of confirmation.
Remaining 50% pay on your journey.~^#^~>30 days prior to arrival – 20 % of the total amount
<30 but >15 days prior to arrival – 30 % of the total amount
<15 but >7 days prior to arrival – 50% of the total amount
<7 days prior to arrival – 100% of the total amount
In the case of Natural Calamity / Strike / Political Disturbances, if Roads remain open – the above Cancellation Policy will be applicable.~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.grabyourholidays.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Coimbatore - Kodaikanal - Munnar - Thekkady - Coimbatore (05 nights 06 days) - 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="197288"/>
						</form>
						</div>
						
						";i:1;s:115:"Book Coimbatore - Kodaikanal - Munnar - Thekkady - Coimbatore (05 nights 06 days) - 5 Nights / 6 Days Tour Packages";i:2;s:187:"book coimbatore - kodaikanal - munnar - thekkady - coimbatore (05 nights 06 days) - 5 nights / 6 days tour packages, hill station tour packages, thekkady, kodaikanal, munnar tour packages";i:3;s:237:"Book Coimbatore - Kodaikanal - Munnar - Thekkady - Coimbatore (05 nights 06 days) - 5 Nights / 6 Days tour packages from Grab Your Holidays - Get attractive 5 Nights / 6 Days Hill Station  tour packages for  Thekkady, Kodaikanal, Munnar.";i:4;s:551:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Thekkady, Kodaikanal, Munnar"        
		                 },
		      "description": "Here is your tour package for Kodaikanal, Munnar, Thekkady from Coimbatore.",
		      "name": "Coimbatore - Kodaikanal - Munnar - Thekkady - Coimbatore (05 nights 06 days)",
		      "telephone": "+91-8888872247"
		    }
		    </script>
			";i:5;N;}