a:6:{i:0;s:22408:"				<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-->				
									<div class="h1"><h1>Mahabaleshwar Holiday Tour Package</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.omshivtours.co.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.omshivtours.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>Mahabaleshwar Holiday Tour Package</p> 
									
						<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> 
						2 Nights / 3 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Mahabaleshwar</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.omshivtours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Mahabaleshwar Holiday Tour Package - 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="20663"/>
						</form>
						
												</p>
											</td>
										</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								New Mahabaleshwar:<br />
Wilson Point: Also called as Sunrise point. The highest point. 4710 ft above sea level. It is a vast plateau. There are three masonary round platforms to see the sunrise. You are advised to see sunrise from platform no:2. You can see sunset also from this point.<br />
<br />
Connaught peak: The second highest point. Presents panoramic view of a green carpet. You can see sunrise as well as sunset from this point.<br />
<br />
Elphiston point: The first point of M'war/ Overlooking two valleys, koyna on the left & savitri on the right.<br />
<br />
Marjorie Point: Shoes several ranges of the Sahyadri range.<br />
<br />
Castle Rock: On the way to the Arthur's seat shows Savitri Valley.<br />
<br />
Arthur's Seat: Queen of all points. Some compare the stractification of rocks on southern side to the world famous stratification of rocks of the Grand Canyon of Colarado. USA. It is facinating to see the barren deep valley Savitri on the left & shallow green valley on the right. It is more facinating to know that Arthur's seat is the only place showing geographical distinction of kokan & Desh (Deccan), two territories of Mahabaleshwar, so clear & so near. If you go by the steps you come across a spring known as Tiger's spring which is supposed to be the source of the river Savtri. Immidiately below the seat is window point. You have to go deep by steps to reach the window point.Kates Point: Offers breathtaking view of krishna valley & deep waters of the dhom dam. From southern side it looks like an elephants head. There is also an echo point.<br />
<br />
Baghdad Point: A very beautiful point. It goes past village Moleshware on the way. You see a superb scenic view of the back waters of koyna dam on your left, river solshi in front of you with tiny villages as if sqatting on river banks & vast green slopes of M'war plateau on your right.<br />
<br />
Babington Point: Presents a view of saddle back & Koyna Valley.<br />
<br />
Northcote Point: Presents koyana valley view & saddle back.<br />
<br />
Falkland Point: Below it the Artists Point also called as lovers point by some nature lover, presents beautiful koyana & Valley below you.<br />
<br />
Carnac Point: On the same way of falkland point.<br />
<br />
Fitzgerald Point: Same view of Bombay point.<br />
<br />
Bombay Point: Very popular sunset point. Shows the sahyadri range koyana valley & pratap garh.<br />
<br />
Gaolani Point: At a distance of about 7 kms from ST bus station, by Tapola road you will meet the junction of road which will lead you to village Maharola From Maharola with little inquiry or following the map it should not be difficult to find this point. after reaching the point you will find yourself standing over a pass known as Zolachi Khind & enjoy the scenery of two valleys on the two sides. If you walk by gaolani ride you will enjoy the scenery of Koyana Valley on your right hand at many spots.<br />
<br />
Lodwick Point & Boars Head: Protruding towards pratapgardh from M'war plateau you will see the surrounding scenery with awe.<br />
<br />
The Lamington Plateau: You can go to by a foot path from ganapati mandir. If you follow the map correctly you will reach the plateau safely.<br />
<br />
Panchgani Point: Shows the tableland of panchgani on the eastern side.<br />
<br />
Helen's Point: River solshi starts from this point with a small fall near her origin. Poetic blue valley will be in front of you.<br />
<br />
Rosamond Rock: The grandeur of its celestial beauty surpasses all the limits of descriptions.<br />
<br />
Water Falls: Chinamans, Lingmala & Dhobi waterfalls, flow in abundance only during the rainy season.<br />
<br />
Polo Ground: Often been used as a helipad, also used for learning car driving.<br />
<br />
Bee keeping centre: Educational displays on the manufacture of honey by bees.<br />
<br />
Famous Places in the vicinity of Mahabaleshwar:<br />
Pratap Gadh: Pratap Gadh At a distance of 25 kms from Mahabaleshwar stands the majestic Pratapgadh housing the tomb of Afzalkhan at the toe of the fort. There is a temple of bhavani mata, the idol of worship of King Shivajiraje Bhosle. There is a statue of Shivaji Maharaj inside the fort called Bale killa.<br />
<br />
Table land:Largest in Asia. A small plane can land here.<br />
<br />
Old or Kshetra Mahabaleshwar:<br />
Panchaganga Mandir: As per the hindu mythology five holy rivers krishna, venna, koyna, Savitri & gayatri show their token appearance here in five springs flowing closely. They are seen flowing in five stone conduits & joining in one horizontal half channel leading to the Goumukhi cowface spout. Though the Gaomukh it falls in the cistern below. On the northen side there is a similar conduit through which the holy 'ganga' appears every twelve years. From the conduit on the southern side flows the holy saraswati when the following astrological times come together, namely, Bhadrapad month, shasthi (6th day), Tuesday sun in hasta nakshatra, Rohini nakshatra in predominance & Vyatipat. This miraculous yoga (coincidence) is known as the "Kapila Shasthi Yoga", which is believed to be very auspicious occassion as per the Hindu faith.<br />
<br />
Shri Shankar Mandir: The Mahalinga of the lord Shiva is of Rudraksha shape & believed to be 'self-bodied' (swayambhoo) It is called Trigunatmaka meaning Brahma-Visnhu-Mahesh are on it for ever. On the head of the mahalinga you see the marks of the five holy rivers (Panchaganga) & their waters never loose their level. Mother Jeejabai was weighed by gold by Raje Shivaji in this temple & then the gold was distributed in charity. This Mahalinga is considered to be superior to the twelve jyotirlingas.<br />
<br />
Shri Krishnabai Mandir: This is also an old temple. The carving in the stones of the columns & the ceiling is attractive. You can also see the grand view of Krishna Valley from the temple.23-1230-12								</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> Mahabaleshwar
										</p>
										<p class="aj">Depart from Pune at 7.00 am. Reach Mahabaleshwar at 11.00 am. Check In at the hotel at 11.00 am. After refreshing sight seeing of New Mahableshwar. </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> Panchgani
										</p>
										<p class="aj">Post breakfast tour sightseeing of New Mahabaleshwar by our car. Return to hotel for lunch. Post lunch tour of Panchgani. </p>					
											<p><b>Meals : </b> Breakfast, Lunch </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> Pratapgad
										</p>
										<p class="aj">Post breakfast tour of Pratapgad. Return to hotel for lunch. Old Mahableshwar sightseeing after lunch. (Pratapgad route being slippery in monsoons, this tour is not undertaken from June to October). After Tea in the evening depart to Pune. </p>					
											<p><b>Meals : </b> Breakfast, Lunch </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>Hotel</li>
																						<li>Sightseeing</li>
																						<li>Transport</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Departure Cities with rates</p>
								</div>
								9INR								</div>
									
								<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Terms &amp; Conditions</p>
								</div>				
								<p>Package Cost: Rs. 18500.00 for couple.								</div>
												
						<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Accommodation</p>
						</div>				
		
				    	<table class="mb15px bdrall bdreee w100 p5px15px formTable">
						<tr class="headVr b">
						<td class="p5px10px">City</td>
						<td class="p5px10px">Hotel Name</td>
						<td class="p5px10px">Star Rating</td>
						</tr>
												</tbody>
						</table>
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.omshivtours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Mahabaleshwar Holiday Tour Package - 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="20663"/>
						</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.omshivtours.co.in/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(21)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.omshivtours.co.in/packages-in-shimla.htm" title="Packages in Shimla">Shimla</a> <b class="alpha50 bn small">(19)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.omshivtours.co.in/packages-in-manali.htm" title="Packages in Manali">Manali</a> <b class="alpha50 bn small">(19)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.omshivtours.co.in/packages-in-srinagar.htm" title="Packages in Srinagar">Srinagar</a> <b class="alpha50 bn small">(19)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.omshivtours.co.in/packages-in-jammu.htm" title="Packages in Jammu">Jammu</a> <b class="alpha50 bn small">(14)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.omshivtours.co.in/packages-in-pahalgam.htm" title="Packages in Pahalgam">Pahalgam</a> <b class="alpha50 bn small">(12)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.omshivtours.co.in/packages-in-katra.htm" title="Packages in Katra">Katra</a> <b class="alpha50 bn small">(11)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.omshivtours.co.in/packages-in-sonamarg.htm" title="Packages in Sonamarg">Sonamarg</a> <b class="alpha50 bn small">(10)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.omshivtours.co.in/packages-in-gulmarg.htm" title="Packages in Gulmarg">Gulmarg</a> <b class="alpha50 bn small">(10)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.omshivtours.co.in/packages-in-kufri.htm" title="Packages in Kufri">Kufri</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-chandigarh-city.htm" title="Packages in Chandigarh City">Chandigarh City</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-kullu.htm" title="Packages in Kullu">Kullu</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-leh-ladakh.htm" title="Packages in Leh Ladakh">Leh Ladakh</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-jaipur.htm" title="Packages in Jaipur">Jaipur</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-dharamshala.htm" title="Packages in Dharamshala">Dharamshala</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-patnitop.htm" title="Packages in Patnitop">Patnitop</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-pathankot.htm" title="Packages in Pathankot">Pathankot</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-goa-city.htm" title="Packages in Goa City">Goa City</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-dalhousie.htm" title="Packages in Dalhousie">Dalhousie</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-udaipur.htm" title="Packages in Udaipur">Udaipur</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-khajjiar.htm" title="Packages in Khajjiar">Khajjiar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-agra.htm" title="Packages in Agra">Agra</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-kochi.htm" title="Packages in Kochi">Kochi</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-munnar.htm" title="Packages in Munnar">Munnar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-mount-abu.htm" title="Packages in Mount Abu">Mount Abu</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-pune.htm" title="Packages in Pune">Pune</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-nainital.htm" title="Packages in Nainital">Nainital</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-anantnag.htm" title="Packages in Anantnag">Anantnag</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-mussoorie.htm" title="Packages in Mussoorie">Mussoorie</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.omshivtours.co.in/packages-in-alleppey.htm" title="Packages in Alleppey">Alleppey</a> <b class="alpha50 bn small">(2)</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.omshivtours.co.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.omshivtours.co.in/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.omshivtours.co.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.omshivtours.co.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(39)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.omshivtours.co.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.omshivtours.co.in/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.omshivtours.co.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(3)</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:73:"Book Mahabaleshwar Holiday Tour Package - 2 Nights / 3 Days Tour Packages";i:2;s:132:"book mahabaleshwar holiday tour package - 2 nights / 3 days tour packages, lakes & rivers tour packages, mahabaleshwar tour packages";i:3;s:162:"Om Shiv Tours offers Mahabaleshwar Holiday Tour Package - 2 Nights / 3 Days tour package, budget Lakes & Rivers tour packages for Mahabaleshwar at exciting price.";i:4;s:6062:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Mahabaleshwar"        
		                 },
		      "description": "New Mahabaleshwar:
Wilson Point: Also called as Sunrise point. The highest point. 4710 ft above sea level. It is a vast plateau. There are three masonary round platforms to see the sunrise. You are advised to see sunrise from platform no:2. You can see sunset also from this point.

Connaught peak: The second highest point. Presents panoramic view of a green carpet. You can see sunrise as well as sunset from this point.

Elphiston point: The first point of M'war/ Overlooking two valleys, koyna on the left & savitri on the right.

Marjorie Point: Shoes several ranges of the Sahyadri range.

Castle Rock: On the way to the Arthur's seat shows Savitri Valley.

Arthur's Seat: Queen of all points. Some compare the stractification of rocks on southern side to the world famous stratification of rocks of the Grand Canyon of Colarado. USA. It is facinating to see the barren deep valley Savitri on the left & shallow green valley on the right. It is more facinating to know that Arthur's seat is the only place showing geographical distinction of kokan & Desh (Deccan), two territories of Mahabaleshwar, so clear & so near. If you go by the steps you come across a spring known as Tiger's spring which is supposed to be the source of the river Savtri. Immidiately below the seat is window point. You have to go deep by steps to reach the window point.Kates Point: Offers breathtaking view of krishna valley & deep waters of the dhom dam. From southern side it looks like an elephants head. There is also an echo point.

Baghdad Point: A very beautiful point. It goes past village Moleshware on the way. You see a superb scenic view of the back waters of koyna dam on your left, river solshi in front of you with tiny villages as if sqatting on river banks & vast green slopes of M'war plateau on your right.

Babington Point: Presents a view of saddle back & Koyna Valley.

Northcote Point: Presents koyana valley view & saddle back.

Falkland Point: Below it the Artists Point also called as lovers point by some nature lover, presents beautiful koyana & Valley below you.

Carnac Point: On the same way of falkland point.

Fitzgerald Point: Same view of Bombay point.

Bombay Point: Very popular sunset point. Shows the sahyadri range koyana valley & pratap garh.

Gaolani Point: At a distance of about 7 kms from ST bus station, by Tapola road you will meet the junction of road which will lead you to village Maharola From Maharola with little inquiry or following the map it should not be difficult to find this point. after reaching the point you will find yourself standing over a pass known as Zolachi Khind & enjoy the scenery of two valleys on the two sides. If you walk by gaolani ride you will enjoy the scenery of Koyana Valley on your right hand at many spots.

Lodwick Point & Boars Head: Protruding towards pratapgardh from M'war plateau you will see the surrounding scenery with awe.

The Lamington Plateau: You can go to by a foot path from ganapati mandir. If you follow the map correctly you will reach the plateau safely.

Panchgani Point: Shows the tableland of panchgani on the eastern side.

Helen's Point: River solshi starts from this point with a small fall near her origin. Poetic blue valley will be in front of you.

Rosamond Rock: The grandeur of its celestial beauty surpasses all the limits of descriptions.

Water Falls: Chinamans, Lingmala & Dhobi waterfalls, flow in abundance only during the rainy season.

Polo Ground: Often been used as a helipad, also used for learning car driving.

Bee keeping centre: Educational displays on the manufacture of honey by bees.

Famous Places in the vicinity of Mahabaleshwar:
Pratap Gadh: Pratap Gadh At a distance of 25 kms from Mahabaleshwar stands the majestic Pratapgadh housing the tomb of Afzalkhan at the toe of the fort. There is a temple of bhavani mata, the idol of worship of King Shivajiraje Bhosle. There is a statue of Shivaji Maharaj inside the fort called Bale killa.

Table land:Largest in Asia. A small plane can land here.

Old or Kshetra Mahabaleshwar:
Panchaganga Mandir: As per the hindu mythology five holy rivers krishna, venna, koyna, Savitri & gayatri show their token appearance here in five springs flowing closely. They are seen flowing in five stone conduits & joining in one horizontal half channel leading to the Goumukhi cowface spout. Though the Gaomukh it falls in the cistern below. On the northen side there is a similar conduit through which the holy 'ganga' appears every twelve years. From the conduit on the southern side flows the holy saraswati when the following astrological times come together, namely, Bhadrapad month, shasthi (6th day), Tuesday sun in hasta nakshatra, Rohini nakshatra in predominance & Vyatipat. This miraculous yoga (coincidence) is known as the "Kapila Shasthi Yoga", which is believed to be very auspicious occassion as per the Hindu faith.

Shri Shankar Mandir: The Mahalinga of the lord Shiva is of Rudraksha shape & believed to be 'self-bodied' (swayambhoo) It is called Trigunatmaka meaning Brahma-Visnhu-Mahesh are on it for ever. On the head of the mahalinga you see the marks of the five holy rivers (Panchaganga) & their waters never loose their level. Mother Jeejabai was weighed by gold by Raje Shivaji in this temple & then the gold was distributed in charity. This Mahalinga is considered to be superior to the twelve jyotirlingas.

Shri Krishnabai Mandir: This is also an old temple. The carving in the stones of the columns & the ceiling is attractive. You can also see the grand view of Krishna Valley from the temple.23-1230-12",
		      "name": "Mahabaleshwar Holiday Tour Package",
		      "telephone": "+91-9797467751"
		    }
		    </script>
			";i:5;N;}