a:6:{i:0;s:17449:"				<div class="h1"><h1>Exotic Kerala 5Night/6Days Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.chaturveditravels.com/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Exotic Kerala 5Night/6Days Tour</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">Tour Code </td>
						<td class="p5px pl0px vat">CTT05/KERELA PACKAGE</td>
						</tr>
												<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">Kovalam, 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.chaturveditravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Exotic Kerala 5Night/6Days 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="27753"/>
						</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_8/229281/56081.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/229281/56081.jpg"  width="150" height="150"    alt="exoitic kerala" title="exoitic kerala" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Any Airfare, Train fare, Overland Journey which is not mentioned in the Itinerary.<br />
Any personal nature items like Laundry, bar bills, table bills, camera fee, tips or any other item.<br />
Major Meals i.e. Lunch & Dinner<br />
Any Medical/rescue evacuation due to mishaps.<br />
Optional Activities mentioned in the itinerary<br />
Any other things that is not included in the “Package Cost Includes” Column.<br />
Note:<br />
Any changes in Govt. taxes, Hotel Tariff, etc will be intimated before confirming the Package.<br />
Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad weather, ill health, roadblocks and/or any factors beyond control.<br />
Government Service tax @ 3.09 Extra<br />
Every passenger is traveling on his own responsibility. The company will not be responsible for any loss of luggage or any accidents. We are not responsible for theft or damage to your luggage.<br />
Also note that Video & Audio systems are prohibited in commercial vehicles as per law and we do not guarantee for it always.<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> Cochin - Munnar (135 Km I 4.5 Hrs)
								</p>
								<p class="aj">On arrival Cochin airport / railway station meet our representative and get transferred to Munnar. <br />
Munnar is situated at the confluence of three mountain streams - Muthirapuzha, Nallathanni and Kundala, and perched about 1600 m above sea level, the hill station of Munnar once used to be the summer resort of the erstwhile British administration in south India. This hill station is marked by vast expanses of tea plantations, colonial bungalows, rivulets, waterfalls and cool weather. It is also an ideal destination for trekking and mountain biking.<br />
On arrival, check in at hotel. Spend the rest of the day at leisure trekking around tea estate. Overnight stay at 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 2:</b> Munnar
								</p>
								<p class="aj">After morning breakfast proceed for sightseeing trip of Munnar visiting the Eravikulam National Park where you can see the very rare mountain goats locally called the Nilgiri Tahr, the Mattupetty Dam & Dairy Farm, Old Munnar Town, the town market etc. Rest of the day at leisure and enjoy another, Overnight stay at 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 3:</b> Munnar - Alleppey (140 Km-4 Hrs)
								</p>
								<p class="aj">After morning breakfast, Proceed to Alleppey. <br />
Alleppey or Alappuzha is the Venice of the East; It is famous for its boat races, backwater holidays, beaches, marine products and coir industry. Alappuzha beach is a popular picnic spot. The pier, which extends into the sea here, is over 137 years old. Entertainment facilities at the Vijaya Beach Park add to the attraction of the beach. There is also an old lighthouse nearby which is greatly fascinating to visitors.<br />
On arrival Check into hotel. Rest of the day at leisure. Overnight 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 4:</b> Alleppey - Kovalam (190 KM- 4.5 HRS)
								</p>
								<p class="aj">After breakfast check out from the hotel & get transferred to Kovalam.<br />
Kovalam is an internationally renowned beach with three adjacent crescent beaches. It has been a favorite haunt of tourists, Sunbathing, swimming, herbal body toning massages, special cultural programmes and catamaran cruising are some of them. The tropical sun acts so fast that one can see the faint blush of coppery tan on the skin in a matter of minutes. Life on the beach begins late in the day and carries on well into the night. The beach complex includes a string of budget cottages, Ayurvedic health resorts, and convention facilities, shopping zones, swimming pools, Yoga and Ayurvedic massage centres.<br />
Arrive at Kovalam check in into the hotel. Evening is free or spend time at Beach. Overnight stay at Kovalam.</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> Kovalam
								</p>
								<p class="aj">After breakfast proceed for a sightseeing of Thiruvananthapuram covering Museum complex, Padmanabha Swamy Temple, Science & Technology museum, Veli Tourist village, Aakulam boat club, Shangmugham Beach. Later back to Kovalam. Overnight stay at hotel in Kovalam.</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> Kovalam - Cochin / Trivandrum
								</p>
								<p class="aj">Morning enjoy in your buffet breakfast and get transfer to Cochin / Trivandrum airport/ railway station for your onward journey.</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>
																		<li>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Any Airfare, Train fare, Overland Journey which is not mentioned in the Itinerary.</li><li>
Any personal nature items like Laundry, bar bills, table bills, camera fee, tips or any other item.</li><li>
Major Meals i.e. Lunch & Dinner</li><li>
Any Medical/rescue evacuation due to mishaps.</li><li>
Optional Activities mentioned in the itinerary</li><li>
Any other things that is not included in the “Package Cost Includes” Column.</li><li>
Note:</li><li>
Any changes in Govt. taxes, Hotel Tariff, etc will be intimated before confirming the Package.</li><li>
Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad weather, ill health, roadblocks and/or any factors beyond control.</li><li>
Government Service tax @ 3.09 Extra</li><li>
Every passenger is traveling on his own responsibility. The company will not be responsible for any loss of luggage or any accidents. We are not responsible for theft or damage to your luggage.</li><li>
Also note that Video & Audio systems are prohibited in commercial vehicles as per law and we do not guarantee for it always.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p>Tour Terms and Conditions Per person rates (Rs) - Applicable on 2/3 persons staying together sharing the same room Package rates are subject to change without prior notice Meal plan: EP- accommodation only, CP-accommodation with breakfast, MAP- accommodation with breakfast, lunch or dinner, AP-accommodation with breakfast, lunch &amp; dinner The packages can not be combined with any other offer. The above package is not valid during national holidays, festivals &amp; long weekends Chaturvedi Travels and Tours . Reserves the right to change/modify or terminate the offer any time at its own discretion and without any prior notice Package does not includes Meals not mentioned in the itinerary. Package does not include entry fees to monuments and places anything not mentioned in the package includes. Porte rage at hotels and airports, tips, insurance, laundry, liquors, wine, mineral water, telephone charges all items of personal nature. Any cost arising due to natural calamities like landslides, roadblocks, etc. (to be borne by the clients directly on the spot). Any increase in taxes or fuel leading to an increase in surface transportation &amp; land arrangements, which may come into effect prior to departure. Rates are subject to change &amp; Rooms are subject to availability. Peak season / Holiday surcharge will be applicable in case if there are any events. No reservation has been made till date. This is just a quotation. Final costing will be given at the time of confirmation. The above rate is valid only for mentioned dates. The above is only an offer and not confirmation of your bookings. We shall proceed with your booking once we have receive the payment from you &amp; if we are not able to get the original hotels, shall provide equivalent/ alternative hotels. You are requested to make advance payment (50 % of the total tour cost) by credit card along with 2 % bank charges OR bank transfer to initiate with the bookings. Balance payment can be made 15 days prior to your tour starting date. On receipt of full payment we will send you the travel vouchers. PLEASE NOTE STANDARD CHECK IN TIME IS 1400 HRS &amp; CHECK OUT TIME IS 0900 HRS. PLEASE RECONFIRM THE ABOE PACKAGE WITH PAYMENT DETAILS AT THE EARLIEST. KINDLY DEPOSIT THE PACKAGE COST IN OUR ACCOUNT AT THE EARLIEST. PLEASE FIND OUR ACCOUNT DETAILS GIVEN BELOW CUSTOMER&#39;S OPTION TO MAKE PAYMENTS THROUGH DEBIT CLEARING Particulars Details Company Name CHATURVEDI TRAVELS &amp; TOURS Beneficiary Name CHATURVEDI TRAVELS &amp; TOURS Beneficiary&#39;s Office Address 29, WHITE HOUSE, CITY CENTER , GWALIOR 474001 Beneficiary&#39;s Bank Name ICICI BANK LIMITED Beneficiary&#39;s Bank Address CITY CENTER , GWALIOR 474001 Beneficiary&#39;s Bank A/c No. 019705004795 IFSC Code of the bank branch of the Beneficiary - For RTGS Transfer ICIC0000197 IFSC Code of the bank branch of the Beneficiary - For NEFT Transfer ICIC0000197 PAN NUMBER AFIPC8313B Type of Bank A/c ( Current A/c / Saving A/c or Cash Credit A/c) Current A/c Certified that the particulars furnished above are correct as per our records. IN KEEPING WITH OUR HEIGHTENED SECURITY PROCEDURES WE REQUEST YOU TO CARRY A PHOTO-IDENTITY TO PRESENT AT CHECH-IN. FOREIGN NATIONALS WILL REQUIRETO PRESENT THE PASSPORT AND VALID VISA WHILE INDIAN NATIONALS CAN PRESENT ANY ONE OF THESE: PASSPORT, DRIVING LICENSE, VOTER ID CARD or PAN CARD. Our rates are based on the prevailing rates as negotiated by us with the hotels. Hotels retain the right to modify the rates without notice. In case of such changes the rates quoted before the modification, can be changed by us according to the modifications by hotels. All hotel bookings are based on usual check in and check out time of the hotels until unless indicated in the itinerary We shall not be responsible for any delays &amp; alterations in the program or expenses incurred - directly or indirectly - due to natural hazards, flight cancellations, accident, breakdown of machinery or equipments, breakdown of transport, weather, sickness, landslides, political closures or any untoward incidents. We shall not be responsible for any loss, injury or damage to person, property, or otherwise in connection with any accommodation, transportation or other services, resulting - directly or indirectly - from any act of GOD, dangers, fire, accident, breakdown in machinery or equipment, breakdown of transport, wars, civil disturbances, strikes, riots, thefts, pilferages, epidemics, medical or custom department regulations, defaults, or any other causes beyond our control. Reservation Policy: 1. Confirmation of Hotel Rooms / House boat is subject to the availability. 2. Confirmation of the Packages is subject to receipt of 100% payment i.e..., 70 % of the payment as advance at time of booking &amp; balance 30 % before 15 days of departure. Cancellation Policy:- 1. Cancellation of the tour packages IS NON REFUNDABLE / Hotel Booking / Transportation or Non Utilization of the same: 100 % Retention... Terms &amp; Conditions:- 1. The above itinerary is suggested Tour Plan. The Company is responsible for only those services which are charged from the guest. All other services which are not paid by the guest to the Company are Suggested services and Company is nowhere bound to provide that service or pay the cost for the same. 2. Check in and Check out Timing of the Hotel will be according to the timing of the respective Hotels. 3. Company is not responsible for compensating any loss or additional cost incurred by the guest while taking the tour. 4. Company is not responsible, nor liable for any damage, loss or injury caused to any passenger while taking the tour. 5. Dollar rates are applicable only to foreign nationals &amp; Indians possessing foreign passports, while the INR package rates will be applicable to Indian nationals 6. All the disputes are subject to Gwalior Jurisdiction only. 7. Any Claim related to the Package must be brought to the notice of the Company within a week.												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.chaturveditravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Exotic Kerala 5Night/6Days 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="27753"/>
						</form>
						</div>
						
						";i:1;s:70:"Book Exotic Kerala 5Night/6Days Tour - 5 Nights / 6 Days Tour Packages";i:2;s:144:"book exotic kerala 5night/6days tour - 5 nights / 6 days tour packages, forts and palaces tour packages, kovalam, alleppey, munnar tour packages";i:3;s:189:"Chaturvedi Travels and Tours offers Exotic Kerala 5Night/6Days Tour - 5 Nights / 6 Days tour package, budget Forts and Palaces tour packages for Kovalam, Alleppey, Munnar at exciting price.";i:4;s:1448:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kovalam, Alleppey, Munnar"        
		                 },
		      "description": "Any Airfare, Train fare, Overland Journey which is not mentioned in the Itinerary.
Any personal nature items like Laundry, bar bills, table bills, camera fee, tips or any other item.
Major Meals i.e. Lunch & Dinner
Any Medical/rescue evacuation due to mishaps.
Optional Activities mentioned in the itinerary
Any other things that is not included in the “Package Cost Includes” Column.
Note:
Any changes in Govt. taxes, Hotel Tariff, etc will be intimated before confirming the Package.
Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad weather, ill health, roadblocks and/or any factors beyond control.
Government Service tax @ 3.09 Extra
Every passenger is traveling on his own responsibility. The company will not be responsible for any loss of luggage or any accidents. We are not responsible for theft or damage to your luggage.
Also note that Video & Audio systems are prohibited in commercial vehicles as per law and we do not guarantee for it always.",
		      "name": "Exotic Kerala 5Night/6Days Tour",
		      "telephone": "+91-9826355115"
		    }
		    </script>
			";i:5;N;}