a:6:{i:0;s:13504:"				<div class="h1"><h1>4 Night 5 Days Nashik Shirdi Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.saisaharatravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.saisaharatravels.com/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>4 Night 5 Days Nashik Shirdi 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">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">Ahmednagar, Nashik</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.saisaharatravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="4 Night 5 Days Nashik Shirdi 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="100000"/>
						</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_10/270877/168427.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/270877/168427.jpg"  width="150" height="150"    alt="4 Night 5 Days Nashik Shirdi Tour" title="4 Night 5 Days Nashik Shirdi Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</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> Trimbakeshwar Temple
								</p>
								<p class="aj">Shri Trimbakeshwar Temple is located at a distance of about 30 km from Nashik City.  Maharashtra near the mountain named Brahamagiri from which the river Godavari flows. It was constructed by third Peshwa Balaji Bajirao (1740-1760) on the site of an old temple.<br />
Trimbakeshwar Temple is a religious centre having one of the twelve Jyotirlingas . The city of Trimbakeshwar is located at the foot of Brahamagiri hill ,height of which is 3000 feet above sea level.<br />
<br />
Panchvati<br />
<br />
Panchvati is situated on the left banks of sacred river Godavari in Nashik city.<br />
Close to Kalaram temple there are some very old and lofty banyan trees which are belived to be sprung from five banyans which gave its name to Panchvati.The name ‘Panchvati’ is derived from the words Panch which means five and Vati which means banyan tree. This is the site where Sita Gumph or Sita’s Cave is situated . Kalaram temple , Kapaleshwar temple, Ganga Godavari temple, Sunder Narayan temple, Talkuteshwar temple,temple, NilkantheshwarGoraram mandir Murlidhar Mandir,Tilbhandeshwar mandir, Balaji temple, Sandvyachi devi temple, Vitthal temple, Pataleshwar temple,Naroshankar temple, Ramkund, Karthikswami temple,Dutondya maruti , Katya marcuti temple, Panchmukhi Hanuman temple , Bhadrakali temple,Katpurthala monuments are located in and around Panchavati area.Nashik has earned name of the Banaras of western India due to large no of temples.<br />
<br />
Kalaram Temple<br />
<br />
The Kalaram Temple is an old Hindu shrine dedicated to Rama in the Panchavati area of Nashik city in Maharashtra, India. It is probably the most important Hindu shrine in the city.<br />
The temple derives its name from the statue of Lord Rama that is black. The literal translation of kalaram means black Rama. The sanctum sanctorum also houses the statues of goddess Sita and god Lakshmana. Thousands of devotees visit it every day.<br />
Sita Gumpha<br />
<br />
Sita gupha is situated in Panchawati area about 8 km away from our hotel.<br />
Significance:<br />
It is said that Seeta stayed in this caves for some days during  exile. (Vanvas) The deities of Ram, Seeta and Laxman are placed inside the first main gummpha. In the second small gupha there is a Shivling . The main reason attributed for the Shivling is that Seeta used to worship God Shiva and she never took her meals before worshiping him. So for her convenience Shivling was placed in that gupha. It was in this cave that Lord Rama used to hide Sita when he had to leave her, and it was from herethat Sita was carried by Ravana disguised as a begger.<br />
A room opposite to Seetagmupha is decorated with the scenes from Ramayana like Marich Vadha (i.e. Ram Killing Marich, the demon.), Seetaharan (the kidnapping of Seeta by Ravan).<br />
<br />
Ganga Godavri Temple<br />
<br />
This temple is adjacent to Ramkund . It was built in 1775 by Gopikabai Peshwe. Statue of Godavari and Bhagirath are placed inside the temple. The temple remains closed for 11 years, but opens on the day of Kartik Poornima (full moonlight) once in 12 years and kept open for a year in Simhastha period.<br />
<br />
Ramkund Nashik<br />
<br />
Ramkund is located along the bank of Godavari River. This place is situated at a distance of 8 km from our hotel. This is the holiest spot in Nashik as it is believed to be the place where Lord Rama used to bathe. It contains the bone dissolving Asthivilaya Tirth. It was built by Chitrarao Khatav, a landholder of Khatav in Satara in 1696havrao and was repaired by Gopikabai, the mother of Madhavrao the fourth Peshva<br />
<br />
Muktidham Temple<br />
<br />
MuktidhamTemple is located near to Nashik road railway station within Nashik city.<br />
The temple is built in white Makrana marble. The white colour signifies holiness and peace. It has replicas of 12 Jyotirlingas, which have been built as per dimension of original deities and have been sanctified by sending them to their respective pilgrimage centers. The architecture of this temple is known to be very unusual. 18 chapters of the Gita are inscribed on the walls, which is a very unique style of this temple.<br />
<br />
Back to Hotel and enjoy your dinner</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> Shirdi
								</p>
								<p class="aj">After breakfast leave for Sai Baba Darshan at Shirdi. <br />
<br />
Sai Baba, Shirdi- <br />
<br />
Shirdi is a holy place famous for the mystic saint Sai Baba. Shirdi is 97 kmsaway from Nashik. Sai Baba spent his life and also breathed his last in Shirdi. In the memory of Sai Baba, a big marble temple has been built in Shirdi, which attracts devotees from all over India and abroad. Sai Baba is worshipped with great reverence among all sects and religions of India<br />
<br />
Leave for Shani Shingnapur then return to Nashik hotel for Night halt.<br />
<br />
Grishneshwar<br />
<br />
Grishneshwar temple, sometimes referred to as the Ghrneshwar Jyotirlinga or Dhushmeshwar temple, is one of the 12 Jyotirlinga shrines mentioned in the Shiva Purana.[2][3] The word Ghrneshwar means "lord of compassion".[2] The temple is an important pilgrimage site in Shaivism tradition of Hinduism, which considers it as the last or twelfth Jyotirlinga (linga of light).[4] This pilgrimage site is located in Ellora (also called Verul), less than a kilometer from Ellora Caves – a UNESCO World Heritage site. It is about 30 kilometres (19 miles) north-west of the city of Aurangabad, and about 300 kilometres (190 miles) east-northeast from Mumbai. Around 90 km from Shirdi and 175 km from Nashik.<br />
<br />
Back to hotel and enjoy your meal.</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> Wani to Saptshrungi
								</p>
								<p class="aj">Proceed for Wani to Saptshrungi Saptashrungi Saptasrrgi) is a site of Hindu pilgrimage situated 60 kilometres (37 mi) from Nashik in west Indian state of Maharashtra in India. According to Hindu traditions, the goddess Saptashrungi Nivasini dwells within the seven mountain peaks. (Sapta means seven and shrung means peaks.) It is located in Nanduri, Kalwan taluka, a small village near Nashik in India. Devotees visit this place in large numbers every day.[1] The temple is also known popularly as one of the "three and half Shakti Peethas" of Maharashtra. The temple is also one among the 51 Shakti Peethas located on the Indian subcontinent and is a location where one of Sati's (first wife of Lord Shiva) limbs, her right arm is reported to have fallen.its half shaktipeeth among three and half shaktipeeth of Maharashtra.<br />
Back to hotel and relax till evening and enjoy the dinner in the local restaurant or spend some time in the mall nearby.</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> Bhimashankar Temple
								</p>
								<p class="aj">Bhimashankar near Pune.<br />
After the breakfast you can proceed to Bhimashankar near Pune. <br />
<br />
Bhimashankar Temple is a Jyotirlinga shrine located 50 km northwest of Khed (alias Rajguru Nagar), near Pune, in India. It is located 208 km from Nashik in the Ghat region of the Sahyadri hills. Bhimashankar is also the source of the river Bhima, which flows southeast and merges with the Krishna river near Raichur. The other Jyotirlinga shrines in Maharashtra are Trimbakeshwara near Nashik and Grishneshwar near Aurangabad .</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> Departure
								</p>
								<p class="aj">After the breakfast get relaxed in the hotel. Have your lunch and check out from the hotel for Nashik Road Railway station for further journey.  <br />
Wish you a happy further 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>
															</ul>
						<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount. 
* Retention Amount varies as per the number of days left before your package start date. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.saisaharatravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="4 Night 5 Days Nashik Shirdi 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="100000"/>
						</form>
						</div>
						
						";i:1;s:72:"Book 4 Night 5 Days Nashik Shirdi Tour - 4 Nights / 5 Days Tour Packages";i:2;s:144:"book 4 night 5 days nashik shirdi tour - 4 nights / 5 days tour packages, religious & pilgrimage tour packages, ahmednagar, nashik tour packages";i:3;s:202:"Book 4 Night 5 Days Nashik Shirdi Tour - 4 Nights / 5 Days tour packages from Sai Sahara Tours & Travels - Get attractive 4 Nights / 5 Days Religious & Pilgrimage  tour packages for  Ahmednagar, Nashik.";i:4;s:423:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Ahmednagar, Nashik"        
		                 },
		      "description": "",
		      "name": "4 Night 5 Days Nashik Shirdi Tour",
		      "telephone": "+91-9623788906"
		    }
		    </script>
			";i:5;N;}