a:6:{i:0;s:18921:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>Darjeeling Kalimpong Tour Package</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.sunbeamholidays.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.sunbeamholidays.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
																
					<b class="ffv p2px">&rsaquo;</b> Darjeeling Kalimpong Tour Package</p>
					</div>
					</div>
					</div>
					<script>jQuery('#breadcrumbA').append(jQuery('#append2PageTittle').html());jQuery('#append2PageTittle').remove()</script>
									<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-->				
								
						<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> 
						4 Nights / 5 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Darjeeling, Kalimpong</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.sunbeamholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling Kalimpong 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="129394"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_9/257222/206990.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_9/257222/206990.jpg"  width="150" height="150"    alt="Darjeeling Kalimpong Tour Package" title="Darjeeling Kalimpong Tour Package" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<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> Arrival
										</p>
										<p class="aj">On reaching New Jalpaiguri Railway Station (70 km) / Bagdogra Airport (65 km) / Tenzing Norgay Bus Stand (62 km), meet our  representative who assists you while you take a transfer to your first destination, Darjeeling.<br />
<br />
Best known for housing Darjeeling Himalayan Railway, UNESCO World Heritage Site, Darjeeling is set at an elevation of 2050 meter. This beautiful hill station allures tourists from all over with its natural beauty and serenity. Darjeeling is one of the most traveled destinations of the India, because of the pleasant weather that prevails through the year.<br />
<br />
Check-in to the hotel and leave for a stroll around the mall or local shopping center in the evening. Stay overnight at Darjeeling.</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> Darjeeling Local Sight Seeing
										</p>
										<p class="aj">This early morning, start driving towards the famous Tiger Hill. Overlooking the Kanchenjunga Peak, the hill makes you enjoy a breathtaking sunrise that you will remember for a lifetime (Subject to clear weather).<br />
<br />
Located at a distance of 11 km from Darjeeling, Tiger hill is known to offer breathtaking views of the Kanchenjunga Peak during sunrise. While soft breeze caresses your face, you get to view the twin peaks of Kanchenjunga, changing their hues from pink to orange.<br />
<br />
On your way back to Darjeeling, visit attractions like Ghoom Monastery, War memorial and Batasia Loop.<br />
<br />
Set at a distance of around 8 km from Darjeeling, Ghoom Monastery is one of the most popular attractions of Darjeeling. The Gompa is considered one of the oldest Gompas in Darjeeling as it was found back in 1875. Also known as Yogachoeling Gompa, the monastery is known to house a number of bells, ornate thanka scrolls and drums.<br />
<br />
Later, visit War Memorial and Batasia Loop. Enjoy ride with Darjeeling Himalayan Railway that takes you through Batasia Loop, set in a loop-like pattern. The war memorial is located near the Batasia Loop and was built to commemorate the brave soldiers who lost their lives during wars after independence.<br />
<br />
After sightseeing at these locations, go back to the hotel and munch some healthy breakfast. Take some rest and then leave for your half day city tour covering attractions like Padmaja Naidu Zoological Park, Himalayan Mountaineering Institute (Closed on Thursday), Ropeway, Tensing Gumpo Rock, Tibetan Refugee Self Help Center (Closed on Sunday), Tea Estate, Natural History Museum (Sunday Closed) and Peace Pagoda.<br />
<br />
Awaken the mountaineering spirit in you with a visit to Himalayan Mountaineering Institute. Refresh yourself with a visit to the Tea Estate and pick up some of the best tea for yourself. Have a look at the beautiful peaks of the Himalayas with a cable car ride to Rangit Valley.</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> Excursion to Mirik
										</p>
										<p class="aj">Munch some healthy breakfast in the morning and then leave for Mirik (62 km). A beautiful destination set in the beautiful hills of Darjeeling, Mirik is known for its natural beauty and serenity.<br />
<br />
As you pass through scenic locations, capture some beautiful moments with your friends and family. The star attraction of Mirik is Sumendu Lake which is has a beautiful garden on one side and thick pine trees on the other. Enjoy your day amid its picture perfect gardens, tea plantations, orange orchards, cardamom groves and breathtaking view of the Himalayan ranges. Go for a horse ride around the lake. Also, you can enjoy boating at the lake. Feel close to nature in the serene and peaceful setting of the lake.<br />
<br />
Visit Pashupati Nagar Market and Shop for some cosmetics and clothes from Thailand.<br />
<br />
Later, head back to Darjeeling. In the evening, go for a walk around the mall or the local market area. Stay overnight at Darjeeling.</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> Kalimpong & Sightseeing
										</p>
										<p class="aj">This early morning, have your breakfast and then take a transfer to Kalimpong (49 km).<br />
<br />
A popular tourist destination in West Bengal, Kalimpong is a small hill station, known for its tranquility and scenic beauty. Kalimpong is a great destination for those who wish to escape from the hustle and bustle of the city and spend some time in peace. Set at an elevation of 1247 meter, Kalimpong offers spectacular view of the Himalayas and a green ambience to all the visitors. The place is a paradise for nature lovers because of its flower markets and horticulture.<br />
<br />
On reaching Kalimpong, check-in to the hotel. Later, leave for a sightseeing tour around Kalimpong and visit its major attractions like Forest Museum (Closed On Thursday), Deolo Hill, Hanuman Mandir, Dr Graham Homes, Durpin Monastery, Mangaldham and Pine View Nurseries (Cactus Only).<br />
<br />
One of the major tourist attractions of Kalimpong, Deolo Hill is the highest point of Kalimpong. Deolo Hill is set amid a picture perfect landscape which makes it an ideal picnic spot. There is a beautiful garden with colorful flowers, which adds to the experience of visiting this attraction.<br />
<br />
After your sightseeing tour, head back to the hotel. In the evening, go for walk around the flowers markets of the place and interact with the locals.<br />
<br />
Stay overnight at Kalimpong.</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 having your breakfast, leave from Kalimpong to Siliguri / New Jalpaiguri Railway Station (71 km) / Bagdogra Airport (78 km) / Tenzing Norgay Bus Stand (65 km). On reaching, leave for your onward journey.</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>Meals</li>
																						<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.sunbeamholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling Kalimpong 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="129394"/>
						</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.sunbeamholidays.com/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 "><a class="dif" href="http://www.sunbeamholidays.com/packages-in-goa-city.htm" title="Packages in Goa City">Goa City</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sunbeamholidays.com/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sunbeamholidays.com/packages-in-idukki.htm" title="Packages in Idukki">Idukki</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sunbeamholidays.com/packages-in-srinagar.htm" title="Packages in Srinagar">Srinagar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sunbeamholidays.com/packages-in-kaziranga.htm" title="Packages in Kaziranga">Kaziranga</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sunbeamholidays.com/packages-in-kalimpong.htm" title="Packages in Kalimpong">Kalimpong</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sunbeamholidays.com/packages-in-kochi.htm" title="Packages in Kochi">Kochi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sunbeamholidays.com/packages-in-anantnag.htm" title="Packages in Anantnag">Anantnag</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sunbeamholidays.com/packages-in-munnar.htm" title="Packages in Munnar">Munnar</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.sunbeamholidays.com/packages-in-darjeeling.htm" title="Packages in Darjeeling">Darjeeling</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.sunbeamholidays.com/packages-in-baramulla.htm" title="Packages in Baramulla">Baramulla</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.sunbeamholidays.com/packages-in-corbett.htm" title="Packages in Corbett">Corbett</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.sunbeamholidays.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sunbeamholidays.com/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sunbeamholidays.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sunbeamholidays.com/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 "><a class="dif" href="http://www.sunbeamholidays.com/winter-holidays-catid.htm" title="Winter Packages">Winter</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sunbeamholidays.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sunbeamholidays.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sunbeamholidays.com/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sunbeamholidays.com/safari-holidays-catid.htm" title="Safari Packages">Safari</a> <b class="alpha50 bn small">(1)</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:72:"Book Darjeeling Kalimpong Tour Package - 4 Nights / 5 Days Tour Packages";i:2;s:137:"book darjeeling kalimpong tour package - 4 nights / 5 days tour packages, hill station tour packages, darjeeling, kalimpong tour packages";i:3;s:171:"Sun Beam Holidays offers Darjeeling Kalimpong Tour Package - 4 Nights / 5 Days tour package, budget Hill Station tour packages for Darjeeling, Kalimpong at exciting price.";i:4;s:426:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Darjeeling, Kalimpong"        
		                 },
		      "description": "",
		      "name": "Darjeeling Kalimpong Tour Package",
		      "telephone": "+91-9990249290"
		    }
		    </script>
			";i:5;N;}