a:6:{i:0;s:30330:"				<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>Full Day Local Sightseeing Tour of Kalimpong</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.navigatioleisures.org.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.navigatioleisures.org.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>Full Day Local Sightseeing Tour of Kalimpong</p> 
										<div class="fo dt w100"> 
					<div class="dtc vat ttw-detail pr20px pr">					
												<ul class="lsn gallery-slide" id="bxlider_ins">
																	<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_18/519705/255650.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_18/519705/255650.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/519705/255650.jpg"  alt="Full Day Local Sightseeing Tour of Kalimpong" title="Full Day Local Sightseeing Tour of Kalimpong" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																	</ul>
												
					<script>
					var $j = jQuery.noConflict();
					var realSlider= $j("ul#bxlider_ins").bxSlider({
					      speed:500,
					      pager:false,
					      auto: true,
					      slideWidth: 450,
					      slideMargin: 0,
					      nextText:'',
					      prevText:'',
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					        changeRealThumb(realThumbSlider,newIndex);
					        
					      }
					      
					    });
					    
					    var realThumbSlider=$j("ul#bxslider-pager").bxSlider({
					      minSlides: 4,
					      maxSlides: 4,
					      slideWidth: 200,
					      slideMargin: 5,
					      moveSlides: 1,
					      pager:false,
					      speed:1000,
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      nextText:'<span></span>',
					      prevText:'<span></span>',
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					
					      }
					    });
					    
					    linkRealSliders(realSlider,realThumbSlider);
					    
					    if($j("#bxslider-pager li").length<5){
					      $j("#bxslider-pager .bx-next").hide();
					    }
					
					// sincronizza sliders realizzazioni
					function linkRealSliders(bigS,thumbS){
					  
					  $j("ul#bxslider-pager").on("click","a",function(event){
					    event.preventDefault();
					    var newIndex=$j(this).parent().attr("data-slideIndex");
					        bigS.goToSlide(newIndex);
					  });
					}
					
					//slider!=$thumbSlider. slider is the realslider
					function changeRealThumb(slider,newIndex){
					  
					  var $thumbS=$j("#bxslider-pager");
					  $thumbS.find('.active').removeClass("active");
					  $thumbS.find('li[data-slideIndex="'+newIndex+'"]').addClass("active");
					  
					  if(slider.getSlideCount()-newIndex>=4)slider.goToSlide(newIndex);
					  else slider.goToSlide(slider.getSlideCount()-4);
					
					}
					
					</script>
					</div>
			        <div class="dtc">
			        <p class="b xlarge mb10px">Full Day Local Sightseeing Tour of Kalimpong</p>
					
											<p class="mb5px"><b>Duration :</b> 
						1 Day 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Kalimpong</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px">Price</p>
						<p class="xxsmall">On Request</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.navigatioleisures.org.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Full Day Local Sightseeing Tour of Kalimpong - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px ts0 xxlarge dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="168982"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
											<div class="mt30px mb30px">
						<div class="b xxlarge mb10px">
								   					Overview
		   											</div>					
						<p class="aj">You can combine the East and West Kalimpong local tours I have described above to make a full day local sightseeing tour. In addition to all the places I have mentioned above, you can also cover the following: <br />
<br />
1) Kalimong's colorful market (particularly Haat Bazaar which sets up on Wednesday or Saturday). You can buy unique local hand made products here and taste local food. <br />
<br />
2) Sahid Park - a monument and a small park set up in memory of the Gorkhas who laid their lives during the agitation of Gorkhaland movement for a separate state. <br />
<br />
3) Gouripur House - Poet Rabindranth Tagore used to visit this house and wrote several of his verses here. This house was one of his favorites. <br />
<br />
4) Rishi Bankim Park - nice park for a leisure stroll. <br />
<br />
5) Kalimpong College, Surya Sadan, Curcuit House etc. <br />
<br />
LOCAL SIGHTSEEING (EAST KALIMPONG) - HALFDAY, 4 HOURS <br />
<br />
1) Dr Graham's Homes: This missionary school was set up by Dr. J A Graham in 1900 as an orphanage cum school for the destitute Anglo Indian children. It started only with one cottage that accommodated up to 35 children. Over the years it has grown as a well known multi religious and co-educational school spanning over 500 acres of lush landscape and having some 50 cottages. It is located on the way to Deolo Hills. You can walk across to various parts of the school. <br />
<br />
2) Lord Buddha Statue: Close to Deolo there is a small rock garden in which you will find this nice statue of Lord Buddha sitting in a lotus position. This is only a quick stop over point and a good place to click a picture.<br />
<br />
3) Sherpa View Point: This is a watershed near Buddha statue from where you get great views towards both north and south. You get excellent views of  Sikkim hills and Mount Kanchenjung if you look north, towards south is the beautiful view of a valley and the Relli river flowing through it as well Loleygaon (Kafer) and also the hills of Samthar plateau. This view point is unfortunately not well maintained. <br />
<br />
4) Durga Mandir: This is a Hindu temple of Goddess Durga located near Sherpa View Point. A nice garden full of flowering plants and a viewing gallery. The temple is small but quite nice. Good place to relax for a while. <br />
<br />
5) Hanuman Temple: Right after Durga Mandir is a huge statue of Lord Hanuman perched on the hill. Climb several flights of stairs to reach up to the temple. <br />
<br />
6) Deolo Hill: This is the major attraction in East Kalimpong. The tourism department has created an 8-acre lush parkland with manicured flower gardens and several view points with breathtaking views of Kanchenjunga, Durpin hill, Kalimpong Township and the valley with rivers flowing through them. <br />
<br />
Deolo hill is the highest point of Kalimpong with an altitude of about 5,500ft. There is a GTA (erstwhile DGHC) lodge here and a multi cuisine restaurant. Children can also take pony rides. At one corner of the lawn are stalls offering coffee and snacks. Overall a great place to have a picnic or just relax. Entry fee: Rs. 10/- for day visitors. <br />
<br />
7) Mangal Dham: An excellent temple complex built in the memory of late Guruji Mangal Dasji and dedicated to Lord Krishna. Devotees come from far away places. <br />
<br />
8) Thongsa Gompa: This is the oldest monsatery in Kalimpong which was built in 1692. It's also known as the Bhutan Monastery and located close to Mangal Dham. <br />
<br />
LOCAL SIGHTSEEING (WEST KALIMPONG) - HALF DAY, 4 HOURS <br />
<br />
1) Nature Interpretation Center: This is a museum run by the forest department. It has many pictures and paintings of flora & fauna explaining the nature and environment of Kalimpong area. It's located close to the town. <br />
<br />
2) Army Golf Course: A scenic 9-hole golf course which was conceived and laid by the army authorities. You can see the golf course from the roadside Watershed View Point. From here you also get splendid views of the mountains as well as Loleygaon. It's located close to the Circuit House. <br />
<br />
3) Morgan House: This used to be an old British property and reflect a typical colonial architecture with sprawling garden and views of Kanchenjunga. It has been converted into a hotel and now run by West Bengal Tourism Department. You can enter the premises and walk around, but can not go upstairs in the building where most rooms are located. Morgan House is located opposite to the Army Golf Course.<br />
<br />
4) Durpin Monastery: This Tibetan monastery is located on the Durpin hill and hence such name. The actual name is Zang Dog Palri monastery. It was built in 1972 and has some rare Buddhist scripts that were brought here by Dalai Lama from Tibet. From the upper terrace of the monastery, you get magnificent views of Kalimpong town with Kanchenjunga in the background, the valley and the plains, Teesta & Reang rivers flowing down, and lovely tea estates of Peshoke area. <br />
<br />
5) Jelepla View Point: You get spectacular view of Jelepla Pass which once used to be a route for regular trade with Tibet. You can also see the confluence of river Teesta, Reang and Relli. The view point is maintained by the army. <br />
<br />
6) Pratima Tagore House: This house with nice garden and lovely views was built by Pratima Tagore in 1943, daughter-in-law of the poet Rabindranath Tagore. You will find original furnishing, lot of memorabilia and poet's verses in this house. It is located on Atisha road close to the Pine View Nursery. <br />
<br />
7) Pine View Nursery: It has great collections of cactus and ornamental plants. You get great view of Kalimpong town from the backside lawn. Entry fee: Rs. 10/- per person. <br />
<br />
8) Kali Mandir: Temple of goddess Kali. Climb a stairway from the roadside to reach up to the temple. From an adjoining terrace, you get wonderful view of west Kalimpong and the mountain range.</p>
						</div>
														<div class="mt30px b xlarge">
												   					Detailed Tour Itinerary
				   													</div>		   
								<br/>
																			<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 1											
											:</b> DAY & OVERNIGHT TRIPS FROM KALIMPONG										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												1) Lava & Loleygaon Trip: Drive to Loleygaon (2.5hours), take a canopy walk amongst tree tops on a thrilling tree-top hanging bridge made in lush jungle, then drive to Lava (1hour), visit the Lava monastery and drive back in the evening via Algarah. If you plan to stay overnight in Lava or Loleygaon, know what else you can do & where to stay. <br />
<br />
2) Pedong and View Points: Take a short drive of about half an hour and see the ruins of Damsang Fort of 1690. Then visit Pedong, its heritage sites and some of the lovely view points around, and drive back to Kalimpong in the evening. <br />
<br />
3) Village Tour & Trek: Visit several villages, experience the village life in virgin Kalimpong area, understand Nepali culture & traditions, interact with the villagers to get deeper insight into their lifestyle, experience quaint home stay and village food, walk through the forests and villages and be one with nature.															
														   
											</div> 
											</div>
																			<script>
								jQuery(document).ready(function() {
									//jQuery('.product-detail').css('display','none');
								    jQuery(".sub-title").click(function() {
								        var $this = jQuery(this);
										  jQuery('.w-title').addClass('h15px',400);
								          $this.find('.w-title').removeClass('h15px',400);
										  jQuery('.product-detail').slideUp();
								          $this.next().slideDown();
								          if($this.find('i').hasClass('fa-angle-up')){
								          	$this.find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
								          } else {
								          	$this.find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
								          }
								        });
									});
								</script>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>Sightseeing</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.</li></ul>						
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
						
						<ul><li>* 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.</li></ul>						
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.navigatioleisures.org.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Full Day Local Sightseeing Tour of Kalimpong - 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="168982"/>
						</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.navigatioleisures.org.in/packages-in-port-blair.htm" title="Packages in Port Blair">Port Blair</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-havelock.htm" title="Packages in Havelock">Havelock</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-gangtok.htm" title="Packages in Gangtok">Gangtok</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-guwahati.htm" title="Packages in Guwahati">Guwahati</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-darjeeling.htm" title="Packages in Darjeeling">Darjeeling</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-kaziranga.htm" title="Packages in Kaziranga">Kaziranga</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-phuket.htm" title="Packages in Phuket">Phuket</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-lachen.htm" title="Packages in Lachen">Lachen</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-kalimpong.htm" title="Packages in Kalimpong">Kalimpong</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-jorhat.htm" title="Packages in Jorhat">Jorhat</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.navigatioleisures.org.in/packages-in-tawang.htm" title="Packages in Tawang">Tawang</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.navigatioleisures.org.in/packages-in-ravangla.htm" title="Packages in Ravangla">Ravangla</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.navigatioleisures.org.in/packages-in-tezpur.htm" title="Packages in Tezpur">Tezpur</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.navigatioleisures.org.in/packages-in-bomdila.htm" title="Packages in Bomdila">Bomdila</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.navigatioleisures.org.in/packages-in-sibsagar.htm" title="Packages in Sibsagar">Sibsagar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-golaghat.htm" title="Packages in Golaghat">Golaghat</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-bangkok.htm" title="Packages in Bangkok">Bangkok</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-chandigarh-city.htm" title="Packages in Chandigarh City">Chandigarh City</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-kinnaur.htm" title="Packages in Kinnaur">Kinnaur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-puri.htm" title="Packages in Puri">Puri</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-lahaul-spiti.htm" title="Packages in Lahaul & Spiti">Lahaul & Spiti</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-punakha.htm" title="Packages in Punakha">Punakha</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-pelling.htm" title="Packages in Pelling">Pelling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-durgapur.htm" title="Packages in Durgapur">Durgapur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-hemkunt-sahib.htm" title="Packages in Hemkund Sahib">Hemkund Sahib</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-mumbai.htm" title="Packages in Mumbai">Mumbai</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-phuntsholing.htm" title="Packages in Phuntsholing">Phuntsholing</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-pattaya.htm" title="Packages in Pattaya">Pattaya</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-manali.htm" title="Packages in Manali">Manali</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/packages-in-kaza.htm" title="Packages in Kaza">Kaza</a> <b class="alpha50 bn small">(1)</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.navigatioleisures.org.in/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/romantic-holidays-catid.htm" title="Romantic Packages">Romantic</a> <b class="alpha50 bn small">(9)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/honeymoon-holidays-catid.htm" title="Honeymoon Packages">Honeymoon</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.navigatioleisures.org.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(9)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(9)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</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.navigatioleisures.org.in/elephant-safari-holidays-catid.htm" title="Elephant Safari Packages">Elephant Safari</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.navigatioleisures.org.in/jeep-safari-holidays-catid.htm" title="Jeep Safari Packages">Jeep Safari</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/national-parks-holidays-catid.htm" title="National Parks Packages">National Parks</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.navigatioleisures.org.in/river-rafting-holidays-catid.htm" title="River Rafting Packages">River Rafting</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/rock-climbing-holidays-catid.htm" title="Rock Climbing Packages">Rock Climbing</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.navigatioleisures.org.in/safari-holidays-catid.htm" title="Safari Packages">Safari</a> <b class="alpha50 bn small">(1)</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>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Kalimpong</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.navigatioleisures.org.in/tour-packages/senior-citizen-sikkim-trip.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/519705/308209.jpg"  alt="Senior Citizen Sikkim Trip" title="Senior Citizen Sikkim Trip"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.navigatioleisures.org.in/tour-packages/senior-citizen-sikkim-trip.htm" title="Senior Citizen Sikkim Trip"><h3>Senior Citizen Sikkim Trip</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								4 Nights / 5 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Kalimpong</p>
															<div class="mt10px small">
							<form name="pkg_194606" id="pkg_194606" method="post" action="http://www.navigatioleisures.org.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.navigatioleisures.org.in/tour-packages/senior-citizen-sikkim-trip.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Senior Citizen Sikkim Trip - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="194606"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</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:72:"Book Full Day Local Sightseeing Tour of Kalimpong - 1 Days Tour Packages";i:2;s:122:"book full day local sightseeing tour of kalimpong - 1 days tour packages, adventure tour packages, kalimpong tour packages";i:3;s:161:"Book Full Day Local Sightseeing Tour of Kalimpong - 1 Days tour packages from Navigatio Leisures - Get attractive 1 Days Adventure  tour packages for  Kalimpong.";i:4;s:6153:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kalimpong"        
		                 },
		      "description": "You can combine the East and West Kalimpong local tours I have described above to make a full day local sightseeing tour. In addition to all the places I have mentioned above, you can also cover the following: 

1) Kalimong's colorful market (particularly Haat Bazaar which sets up on Wednesday or Saturday). You can buy unique local hand made products here and taste local food. 

2) Sahid Park - a monument and a small park set up in memory of the Gorkhas who laid their lives during the agitation of Gorkhaland movement for a separate state. 

3) Gouripur House - Poet Rabindranth Tagore used to visit this house and wrote several of his verses here. This house was one of his favorites. 

4) Rishi Bankim Park - nice park for a leisure stroll. 

5) Kalimpong College, Surya Sadan, Curcuit House etc. 

LOCAL SIGHTSEEING (EAST KALIMPONG) - HALFDAY, 4 HOURS 

1) Dr Graham's Homes: This missionary school was set up by Dr. J A Graham in 1900 as an orphanage cum school for the destitute Anglo Indian children. It started only with one cottage that accommodated up to 35 children. Over the years it has grown as a well known multi religious and co-educational school spanning over 500 acres of lush landscape and having some 50 cottages. It is located on the way to Deolo Hills. You can walk across to various parts of the school. 

2) Lord Buddha Statue: Close to Deolo there is a small rock garden in which you will find this nice statue of Lord Buddha sitting in a lotus position. This is only a quick stop over point and a good place to click a picture.

3) Sherpa View Point: This is a watershed near Buddha statue from where you get great views towards both north and south. You get excellent views of  Sikkim hills and Mount Kanchenjung if you look north, towards south is the beautiful view of a valley and the Relli river flowing through it as well Loleygaon (Kafer) and also the hills of Samthar plateau. This view point is unfortunately not well maintained. 

4) Durga Mandir: This is a Hindu temple of Goddess Durga located near Sherpa View Point. A nice garden full of flowering plants and a viewing gallery. The temple is small but quite nice. Good place to relax for a while. 

5) Hanuman Temple: Right after Durga Mandir is a huge statue of Lord Hanuman perched on the hill. Climb several flights of stairs to reach up to the temple. 

6) Deolo Hill: This is the major attraction in East Kalimpong. The tourism department has created an 8-acre lush parkland with manicured flower gardens and several view points with breathtaking views of Kanchenjunga, Durpin hill, Kalimpong Township and the valley with rivers flowing through them. 

Deolo hill is the highest point of Kalimpong with an altitude of about 5,500ft. There is a GTA (erstwhile DGHC) lodge here and a multi cuisine restaurant. Children can also take pony rides. At one corner of the lawn are stalls offering coffee and snacks. Overall a great place to have a picnic or just relax. Entry fee: Rs. 10/- for day visitors. 

7) Mangal Dham: An excellent temple complex built in the memory of late Guruji Mangal Dasji and dedicated to Lord Krishna. Devotees come from far away places. 

8) Thongsa Gompa: This is the oldest monsatery in Kalimpong which was built in 1692. It's also known as the Bhutan Monastery and located close to Mangal Dham. 

LOCAL SIGHTSEEING (WEST KALIMPONG) - HALF DAY, 4 HOURS 

1) Nature Interpretation Center: This is a museum run by the forest department. It has many pictures and paintings of flora & fauna explaining the nature and environment of Kalimpong area. It's located close to the town. 

2) Army Golf Course: A scenic 9-hole golf course which was conceived and laid by the army authorities. You can see the golf course from the roadside Watershed View Point. From here you also get splendid views of the mountains as well as Loleygaon. It's located close to the Circuit House. 

3) Morgan House: This used to be an old British property and reflect a typical colonial architecture with sprawling garden and views of Kanchenjunga. It has been converted into a hotel and now run by West Bengal Tourism Department. You can enter the premises and walk around, but can not go upstairs in the building where most rooms are located. Morgan House is located opposite to the Army Golf Course.

4) Durpin Monastery: This Tibetan monastery is located on the Durpin hill and hence such name. The actual name is Zang Dog Palri monastery. It was built in 1972 and has some rare Buddhist scripts that were brought here by Dalai Lama from Tibet. From the upper terrace of the monastery, you get magnificent views of Kalimpong town with Kanchenjunga in the background, the valley and the plains, Teesta & Reang rivers flowing down, and lovely tea estates of Peshoke area. 

5) Jelepla View Point: You get spectacular view of Jelepla Pass which once used to be a route for regular trade with Tibet. You can also see the confluence of river Teesta, Reang and Relli. The view point is maintained by the army. 

6) Pratima Tagore House: This house with nice garden and lovely views was built by Pratima Tagore in 1943, daughter-in-law of the poet Rabindranath Tagore. You will find original furnishing, lot of memorabilia and poet's verses in this house. It is located on Atisha road close to the Pine View Nursery. 

7) Pine View Nursery: It has great collections of cactus and ornamental plants. You get great view of Kalimpong town from the backside lawn. Entry fee: Rs. 10/- per person. 

8) Kali Mandir: Temple of goddess Kali. Climb a stairway from the roadside to reach up to the temple. From an adjoining terrace, you get wonderful view of west Kalimpong and the mountain range.",
		      "name": "Full Day Local Sightseeing Tour of Kalimpong",
		      "telephone": "+91-9434888661"
		    }
		    </script>
			";i:5;N;}