a:6:{i:0;s:14734:"				<div class="h1"><h1>Ooty - Kodaikanal Deluxe Tour </h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.indiaonlinetourpackages.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.indiaonlinetourpackages.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Ooty - Kodaikanal Deluxe 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">22</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kodaikanal, Ooty</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 15000 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.indiaonlinetourpackages.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Ooty - Kodaikanal Deluxe 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="33833"/>
						</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_10/278399/69692.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/278399/69692.jpg"  width="150" height="150"    alt="Ooty - Kodaikanal Deluxe Tour " title="Ooty - Kodaikanal Deluxe 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_10/278399/69690.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/278399/69690.jpg"  width="150" height="150"    alt="Ooty - Kodaikanal Deluxe Tour " title="Ooty - Kodaikanal Deluxe 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_10/278399/69691.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/278399/69691.jpg"  width="150" height="150"    alt="Ooty - Kodaikanal Deluxe Tour " title="Ooty - Kodaikanal Deluxe 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_10/278399/69693.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/278399/69693.jpg"  width="150" height="150"    alt="Ooty - Kodaikanal Deluxe Tour " title="Ooty - Kodaikanal Deluxe 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_10/278399/69694.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/278399/69694.jpg"  width="150" height="150"    alt="Ooty - Kodaikanal Deluxe Tour " title="Ooty - Kodaikanal Deluxe 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_10/278399/69695.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/278399/69695.jpg"  width="150" height="150"    alt="Ooty - Kodaikanal Deluxe Tour " title="Ooty - Kodaikanal Deluxe Tour " /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					We are offer 02 very beautiful hill station of south India Ooty and Kodaikanal<br />
<br />
About Ooty :- Udhagai and better known as Ooty is a town, a municipality, and the district capital of the Nilgiris district in the Indian state of Tamil Nadu. It is located 80 km north of Coimbatore. It is a popular hill station located in the Nilgiri Hills. Originally occupied by the Todas, the area came under the rule of the East India Company at the end of the 18th century. Today, the town's economy is based on tourism and agriculture, along with manufacture of medicines and photographic film. The town is connected to the rest of India by road and rail, and its historic sites and natural beauty attract tourists<br />
<br />
About Kodaikanal :- The word Kodaikanal is actually an amalgamation of two words: Kodai and Kanal. And the Tamil language has at least four possible interpretations of the name "Kodaikanal". By pronouncing the first syllable of Kodaikanal with a long Tamil 'O', as in koe-dei, it means summer, whilst the final two syllables: kanal, in Tamil can mean to see, rendering 'Kodaikanal' as a 'place to see in Summer'. Kodaikanal is a summer forest, and it is also a place that the first missionaries to settle used as a refuge to escape the overbearing and mosquito-ridden heat of the plains - a place that they would have counted on seeing in the summer!<br />
<br />
"Kanal", in Tamil, can also mean dense forest or closed forest. In this case, "Kodai" can have at least four different meanings. By pronouncing 'Kodai' with the long Tamil 'O' and short 'e', Ko-dai means "the end". So that KODAI KANAL could mean "The End of the Forest" which makes poetic as well as geographical sense, in that Kodaikanal is situated at the crown of the Palani Hills, and is effectively surrounded and protected by thick forests, which one must traverse to reach Kodai.<br />
<br />
By pronouncing Kodai with the short Tamil 'O' (as in KODI), it would means "Creepers" or vines. So that Kodaikanal could also mean "The Forest of creepers", or the Forest of vines. "The Forest of Creepers" is also thought to be the English language meaning given in 1885 during the early western habitation of the place,  and is still accepted. They called like this with its beauty.Any meals other than those mentioned above.<br />
Any Airfare / Train fare.<br />
Entrance fees to Amusement parks & Boating charges.<br />
Any portage at airports and hotels, tips, insurance, wine, mineral water, telephone charges, and all items of personal nature.<br />
Any services not specifically mentioned in the inclusions.<br />
Expenses caused by factors beyond our control like rail and flight delays, roadblocks, vehicle malfunctions, political disturbances etc.<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  Coimbatore latter drive to Ooty (88 Kms.)
								</p>
								<p class="aj">Arrival at Coimbatore then dive to Ooty (88 kms). Ooty is popularly known as the "Queen of the blue mountains". Ooty is famous for its rolling hills covered in pine and eucalyptus forests and its coffee and tea plantation. On arrival check in at the hotel. Evening free for individual activities. Overnight in Ooty.</p>					
									<p><b>Meals : </b> None</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> Ooty 
								</p>
								<p class="aj">his day after breakfast proceed for Ooty sightseeing, visit Botanical Gardens which has total 1000 varieties of plants, shrubs and trees including orchids, ferns, alpines and medicinal plants among beautiful lawn. Raj Bhavan, Dodabetta, about 10 kms, the big mountain reaches 2638m. The second highest in Western Ghats. Enjoy boating (optional) on Ooty Lake, built in 1825, with beautiful surroundings. Overnight in Ooty.</p>					
									<p><b>Meals : </b> Breakfast </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> Ooty - Kodaikanal (265 Kms.)
								</p>
								<p class="aj">This day after breakfast check out and dive to Kodaikanal to Ooty (265 kms). On arrival check in at the hotel. Evening free for individual activities. Overnight in Kodaikanal.</p>					
									<p><b>Meals : </b> Breakfast </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> Kodaikanal
								</p>
								<p class="aj">This day after breakfast in and around sightseeing of Kodaikanal, visit the Coaker's Walk, it runs along a steep, emerald green wooded slope. From Coaker's Walk one can have a breath-taking view of the plains below. Bryant Park is situated on the eastern side of the lake it is famous for its flower hybrids and grafts. Pillar Rocks three boulders stand here, shoulder to shoulder, vertically measuring 122 meters providing majestic sight. Pillar Rocks is 7.4 kms from the lake. It has a mini garden with lovely flowers. Overnight in Kodaikanal.</p>					
									<p><b>Meals : </b> Breakfast </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> Kodaikanal to Coimbatore (169 Kms.)
								</p>
								<p class="aj">After morning breakfast check out hotel and drive to Coimbatore, (169 kms from Coimbatore).</p>					
									<p><b>Meals : </b> Breakfast </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>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Any meals other than those mentioned above.</li><li>
Any Airfare / Train fare.</li><li>
Entrance fees to Amusement parks & Boating charges.</li><li>
Any portage at airports and hotels, tips, insurance, wine, mineral water, telephone charges, and all items of personal nature.</li><li>
Any services not specifically mentioned in the inclusions.</li><li>
Expenses caused by factors beyond our control like rail and flight delays, roadblocks, vehicle malfunctions, political disturbances etc.</li></ul><br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>None<br />
												<p class="large b mb5px dif">Departure Cities with rates :</p> Coimbatore<br /><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul style="color: rgb(34, 34, 34); line-height: normal; padding-left: 20px; font-family: arial, sans-serif; font-size: 12px; background-color: rgb(255, 153, 0);">
	<li style="margin-left: 15px;">At Coorg, Ooty, Kodaikanal, A/c rooms are not provided due to low temp.</li>
	<li style="margin-left: 15px;">Dussehra Festival supplement (27 Sept. &acirc;&euro;&ldquo; 05 Oct. 2014) applicable at Mysore hotels, Diwali Festival supplement (15 Oct. &acirc;&euro;&ldquo; 10 Nov. 2014) applicable at Munnar hotels. Rates for these period available on request.</li>
	<li style="margin-left: 15px;">Package Rates not valid from 15 Dec. 2014 till 15 Jan. 2015</li>
	<li style="margin-left: 15px;">At Hotel Check-in time is 14.00 hrs &amp; / Check-out time 12.00 Noon.</li>
	<li style="margin-left: 15px;">Early check in and late checkout subject to availability.</li>
	<li style="margin-left: 15px;">The above rates are valid for the mentioned period only and subject to change without any prior notice.</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.indiaonlinetourpackages.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Ooty - Kodaikanal Deluxe 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="33833"/>
						</form>
						</div>
						
						";i:1;s:69:"Book Ooty - Kodaikanal Deluxe Tour  - 4 Nights / 5 Days Tour Packages";i:2;s:123:"book ooty - kodaikanal deluxe tour  - 4 nights / 5 days tour packages, valley tour packages, kodaikanal, ooty tour packages";i:3;s:171:"Book Ooty - Kodaikanal Deluxe Tour  - 4 Nights / 5 Days tour packages from Bharat Himalayas - Get attractive 4 Nights / 5 Days Valley  tour packages for  Kodaikanal, Ooty.";i:4;s:3101:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kodaikanal, Ooty"        
		                 },
		      "description": "We are offer 02 very beautiful hill station of south India Ooty and Kodaikanal

About Ooty :- Udhagai and better known as Ooty is a town, a municipality, and the district capital of the Nilgiris district in the Indian state of Tamil Nadu. It is located 80 km north of Coimbatore. It is a popular hill station located in the Nilgiri Hills. Originally occupied by the Todas, the area came under the rule of the East India Company at the end of the 18th century. Today, the town's economy is based on tourism and agriculture, along with manufacture of medicines and photographic film. The town is connected to the rest of India by road and rail, and its historic sites and natural beauty attract tourists

About Kodaikanal :- The word Kodaikanal is actually an amalgamation of two words: Kodai and Kanal. And the Tamil language has at least four possible interpretations of the name "Kodaikanal". By pronouncing the first syllable of Kodaikanal with a long Tamil 'O', as in koe-dei, it means summer, whilst the final two syllables: kanal, in Tamil can mean to see, rendering 'Kodaikanal' as a 'place to see in Summer'. Kodaikanal is a summer forest, and it is also a place that the first missionaries to settle used as a refuge to escape the overbearing and mosquito-ridden heat of the plains - a place that they would have counted on seeing in the summer!

"Kanal", in Tamil, can also mean dense forest or closed forest. In this case, "Kodai" can have at least four different meanings. By pronouncing 'Kodai' with the long Tamil 'O' and short 'e', Ko-dai means "the end". So that KODAI KANAL could mean "The End of the Forest" which makes poetic as well as geographical sense, in that Kodaikanal is situated at the crown of the Palani Hills, and is effectively surrounded and protected by thick forests, which one must traverse to reach Kodai.

By pronouncing Kodai with the short Tamil 'O' (as in KODI), it would means "Creepers" or vines. So that Kodaikanal could also mean "The Forest of creepers", or the Forest of vines. "The Forest of Creepers" is also thought to be the English language meaning given in 1885 during the early western habitation of the place,  and is still accepted. They called like this with its beauty.Any meals other than those mentioned above.
Any Airfare / Train fare.
Entrance fees to Amusement parks & Boating charges.
Any portage at airports and hotels, tips, insurance, wine, mineral water, telephone charges, and all items of personal nature.
Any services not specifically mentioned in the inclusions.
Expenses caused by factors beyond our control like rail and flight delays, roadblocks, vehicle malfunctions, political disturbances etc.",
		      "name": "Ooty - Kodaikanal Deluxe Tour ",
		      "telephone": "+91-9758626010"
		    }
		    </script>
			";i:5;N;}