a:6:{i:0;s:10217:"				<div class="h1"><h1>Jim Corbett with Nainital Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.rapidactionexpedition.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.rapidactionexpedition.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Jim Corbett with Nainital 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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Nainital, Corbett</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.rapidactionexpedition.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Jim Corbett with Nainital 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="75000"/>
						</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_15/446641/133663.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/446641/133663.jpg"  width="150" height="150"    alt="Jim Corbett with Nainital Tour" title="Jim Corbett with Nainital Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Overview<br />
<br />
Nainital is a hill station which is known for its captivating beauty and ancient temples. The cool climate and tranquility of the place makes it a perfect holiday destination for the tourists. The place has a lot to offer when it comes to tourist attractions and these include Naini Lake, Snow View Point, Tiffin Top, Naukuchiatal, Naini Peak and adventurous experience at the Jim Corbett.<br />
<br />
Jim Corbett with Nainital by Indian Holiday is a 5 Nights / 6 Days tour package which makes you enjoy every ounce of the place. The tour promises with a comfortable and peaceful holiday.<br />
<br />
Note: That this is just a suggested itinerary indicative of what could be possible. We tailor holidays for your specific needs. Contact us if you want modifications so that we could tailor a holiday to suit your need for an unforgettable India tour.<br />
Trip Highlights<br />
<br />
Enjoy Jeep Safari and elephant ride at JIm Corbett<br />
Sightseeing at Naina Peak, Nainadevi Temple, Snow View, Tiffin Top<br />
Visit scenic lake at Bhimtal, Sattal and Naukuchiatal<br />
Enjoy Boat ride & Ropeway ride at Nainital<br />
Sightseeing at the beautiful Mukteshwar<br />
Explore exotic wildlife at Jim Corbett National park<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> Delhi - Nainital
								</p>
								<p class="aj">On reaching Delhi, meet our IHPL representative who will help you take a transfer to Nainital. En-route visit Gajraula which is well-known for its tourist destinations such as Najibudaulah’s Fort, Mandawar Ka Mahal and Raza library. After arriving in Nainital, check-in to the hotel. Nainital is a beautiful place which promises to calm your senses. Enjoy the day at any of the scenic locations of the place and relax yourself in a comfortable and calming atmosphere.</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> Nainital - Bhimtal - Sattal- Nainital
								</p>
								<p class="aj">You can begin this morning with a visit to the Cheena Peak which offers a breathtaking panoramic view of the Himalayas. Spend rest of the day with a trip to Bhimtal and Sattal. Bhimtal is a scenic lakeside destination which offers a soothing environment to all the visitors.<br />
<br />
Sattal is a place where seven lakes come together. The place is surrounded by beautiful green scenery. In the evening, return to Nainital and enjoy shopping at the mall road. Have a comfortable stay at night.</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> Nainital - Mukteshwar - Nainital
								</p>
								<p class="aj">Munch your breakfast and then head to Mukteshwar for a full day outing. Set in the Kumaon Hills, Mukteshwar is popular tourist destination. Seek blessings at Mukteshwar Temple which is an ancient temple located in a beautiful isolated place. You can also visit the Little Church which is 75 years old and is located on the side of the hill. Also, you can enjoy a cable car ride to the Snow View Point. Later, return back to Nainital and stay overnight.</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> Nainital - Corbett
								</p>
								<p class="aj">After having your breakfast, drive to Corbett National Park. The park is 60 km from Nainital and it covers an area of 521 km². The park houses more than 500 species of animals, reptiles and birds. The place offers a lot to those who wish to have a closer look of nature. People can enjoy Jeep Safari and Elephant Ride in the park and enjoy their encounter with different species.<br />
<br />
Wildlife of the park includes the Tiger, the Leopard, slot Bear, Jungle Cat, Fishing Cat, Wild Boar, Langur and Rhesus Monkeys, Gharial and Muggar Crocodiles. On arrival, check-in to the lodge and stay overnight.</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> Corbett
								</p>
								<p class="aj">Have a memorable experience this morning by taking up elephant ride or jeep safari. Enjoy the pleasant climate of the place amid the greenery surrounding the place. In the evening either go for a safari to spot the wildlife or spend time at leisure. Dinner and stay overnight at the lodge.</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> Departure
								</p>
								<p class="aj">Departure</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.rapidactionexpedition.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Jim Corbett with Nainital 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="75000"/>
						</form>
						</div>
						
						";i:1;s:69:"Book Jim Corbett with Nainital Tour - 5 Nights / 6 Days Tour Packages";i:2;s:148:"book jim corbett with nainital tour - 5 nights / 6 days tour packages, wildlife and nature tour packages, new delhi, nainital, corbett tour packages";i:3;s:203:"Book Jim Corbett with Nainital Tour - 5 Nights / 6 Days tour packages from Rapid Action Expedition - Get attractive 5 Nights / 6 Days Wildlife and Nature  tour packages for  New Delhi, Nainital, Corbett.";i:4;s:1607:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Nainital, Corbett"        
		                 },
		      "description": "Overview

Nainital is a hill station which is known for its captivating beauty and ancient temples. The cool climate and tranquility of the place makes it a perfect holiday destination for the tourists. The place has a lot to offer when it comes to tourist attractions and these include Naini Lake, Snow View Point, Tiffin Top, Naukuchiatal, Naini Peak and adventurous experience at the Jim Corbett.

Jim Corbett with Nainital by Indian Holiday is a 5 Nights / 6 Days tour package which makes you enjoy every ounce of the place. The tour promises with a comfortable and peaceful holiday.

Note: That this is just a suggested itinerary indicative of what could be possible. We tailor holidays for your specific needs. Contact us if you want modifications so that we could tailor a holiday to suit your need for an unforgettable India tour.
Trip Highlights

Enjoy Jeep Safari and elephant ride at JIm Corbett
Sightseeing at Naina Peak, Nainadevi Temple, Snow View, Tiffin Top
Visit scenic lake at Bhimtal, Sattal and Naukuchiatal
Enjoy Boat ride & Ropeway ride at Nainital
Sightseeing at the beautiful Mukteshwar
Explore exotic wildlife at Jim Corbett National park",
		      "name": "Jim Corbett with Nainital Tour",
		      "telephone": "+91-9411191687"
		    }
		    </script>
			";i:5;N;}