a:6:{i:0;s:5760:"				<div class="h1"><h1>Kalimpong Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.grihapraveshtravels.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.grihapraveshtravels.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Kalimpong 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">
						1 Nights / 2 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kalimpong</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.grihapraveshtravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kalimpong 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="96802"/>
						</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/423905/163879.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/423905/163879.jpg"  width="150" height="150"    alt="Kalimpong Tour" title="Kalimpong Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					It is also called Kalimpong in local dialect meaning "black spur". As per the Lepchas Kalimpong means 'Ridge Where we play'. It is said that these local tribesman used to organise field sports while not engaged in agricultural pursuit.<br />
 <br />
Situated at an altitude of 1250 meters it enjoys temperate climate throughout the year. Somewhat secluded and tucked away in the corner under the big Darjeeling umbrella, Kalimpong offers a quite and relaxed holiday against the backdrop of Kanchenjunga.<br />
 <br />
The journey from Darjeeling to Kalimpong is a beautiful experience. The road drops from Ghoom 7407ft., to Teesta Bazar 700 ft. in 12km and passes through lush green forests and tea gardens. One can stop at the view point of 'Lovers Meet' from where the confluence of river Teesta and Rangeet can be seen. One can travel direct to Siliguri from Kalimpong and this road follows the river Teesta from the hills till it emerges into the plains of Siliguri.<br />
 <br />
Kalimpong General Information<br />
 <br />
Area :<br />
3.5 Sq. miles<br />
Altitude :<br />
1250 metres (4100 ft)<br />
Population :<br />
40,000 (approx)<br />
Rainfall :<br />
86.20 inch (Yearly)<br />
Language :<br />
English, Gorkha, Bengali & Hindi<br />
Climate :<br />
Summer : 27°C Max - Min 17.2°C<br />
Winter :<br />
15°C Max - Min 7.2 °C<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>
												</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.grihapraveshtravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kalimpong 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="96802"/>
						</form>
						</div>
						
						";i:1;s:53:"Book Kalimpong Tour - 1 Nights / 2 Days Tour Packages";i:2;s:100:"book kalimpong tour - 1 nights / 2 days tour packages, valley tour packages, kalimpong tour packages";i:3;s:152:"Book Kalimpong Tour - 1 Nights / 2 Days tour packages from Grihapravesh Travels - Get attractive 1 Nights / 2 Days Valley  tour packages for  Kalimpong.";i:4;s:1630:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kalimpong"        
		                 },
		      "description": "It is also called Kalimpong in local dialect meaning "black spur". As per the Lepchas Kalimpong means 'Ridge Where we play'. It is said that these local tribesman used to organise field sports while not engaged in agricultural pursuit.
 
Situated at an altitude of 1250 meters it enjoys temperate climate throughout the year. Somewhat secluded and tucked away in the corner under the big Darjeeling umbrella, Kalimpong offers a quite and relaxed holiday against the backdrop of Kanchenjunga.
 
The journey from Darjeeling to Kalimpong is a beautiful experience. The road drops from Ghoom 7407ft., to Teesta Bazar 700 ft. in 12km and passes through lush green forests and tea gardens. One can stop at the view point of 'Lovers Meet' from where the confluence of river Teesta and Rangeet can be seen. One can travel direct to Siliguri from Kalimpong and this road follows the river Teesta from the hills till it emerges into the plains of Siliguri.
 
Kalimpong General Information
 
Area :
3.5 Sq. miles
Altitude :
1250 metres (4100 ft)
Population :
40,000 (approx)
Rainfall :
86.20 inch (Yearly)
Language :
English, Gorkha, Bengali & Hindi
Climate :
Summer : 27°C Max - Min 17.2°C
Winter :
15°C Max - Min 7.2 °C",
		      "name": "Kalimpong Tour",
		      "telephone": "+91-9800718321"
		    }
		    </script>
			";i:5;N;}