a:6:{i:0;s:20479:"				<div class="h1"><h1>Kalimpong Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.kunzongtourandtravel.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.kunzongtourandtravel.com/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">
						8 Nights / 9 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Gangtok, Darjeeling, Kalimpong, Pelling</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.kunzongtourandtravel.com/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="75847"/>
						</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_16/451899/134880.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/451899/134880.jpg"  width="150" height="150"    alt="Kalimpong Tour" title="Kalimpong 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> Arrival and transfer to Darjeeling
								</p>
								<p class="aj">On your arrival at Bagdogra airport/ Jalpaiguiri railway station/ Tenzing Norgay bus stand, meet our tour representative and straight away drive to Darjeeling.<br />
<br />
Settled at a height up to 2050m, Darjeeling is listed among the most popular honeymoon destinations in India. The marvelous hill station attracts thousands of visitors from all parts of India and across the globe.<br />
<br />
Referred to as the ‘queen of hills’, the exotic location has a number of attractions and tourist spots. The prime highlights of the place are Darjeeling Himalayan Railway- a UNESCO World Heritage Site and several tea estates. The hill station has all what a traveler requires for a perfect holiday.<br />
<br />
Later, Check-in at a pre-booked hotel and settle down. In the evening either you can loosen up or go out for shopping. Some of the unique buys of Darjeeling are amazing kitchen wares, variety of teas, brass statue, woven fabrics and shimmering accessories.<br />
<br />
Overnight stay in the hotel.</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 sightseeing (half day)
								</p>
								<p class="aj">Get up early in the morning, around 3:45am, to drive to Tiger hill which is up to 8, 500ft surrounded by gorgeous beauty all around. Explore the highest point of the region and adore enchanting views from top, the snow-covered Himalayan ranges, Kanchenjunga (the third highest peak. In-addition, if it is a clear day you may also have an opportunity to see the world’s highest peak, Mount Everest.<br />
<br />
Thereafter, on your way back to hotel, visit Ghoom Monastery and War Memorial and Batasia Loop. One among the most sanctified monasteries in Sikkim is the Ghoom monastery; a Tibetan Buddhist Gompa. You can check some lovely thangkas on the walls and rare Buddhist manuscripts inside the monastery. Another attraction, Batasia Loop, a scenic garden which is home to War Memorial, built in order to pay tribute to Gorkha soldiers of Darjeeling.<br />
<br />
Get back to the hotel room, have breakfast and relax. Again get ready for local sightseeing in Darjeeling. We take you to some of the important places of interest in Darjeeling including Padmaja Naidu Zoological Park, Himalayan Mountaineering Institute (closed on Thursday), Passenger Ropeway, Tenzing and Gumbo Rock, Tibetan Refugee Self Help Center, Tea Estate, Natural history museum (Sunday closed) and Peace Pagoda.<br />
<br />
Listed among the highest Zoos in India, Padmaja Naidu Zoological Park houses some rarely seen species of Red Panda, Siberian Tiger and Snow Leopard. The park was put up specially to conserve these endangered species of fauna. The best part of the Zoo is its lush greenery and serenity.<br />
<br />
Talking about Tea Estate visit, there are a number of Tea estates in Darjeeling which boasts of varieties in teas of different flavors and tastes. In fact, large numbers of the families in Darjeeling are dependent on employment wages of these Tea Estates.<br />
<br />
Other places of interest-<br />
<br />
One of the finest ways to adore the beautiful Darjeeling is by Passenger Ropeway; India’s first passenger ropeway. Enjoy scenic views of mountains in Sikkim, River Rangeet and well-maintained green farms; Bengal Natural History Museum- exhibits a rich display of flora and fauna; Peace Pagoda- one of the most important places in Darjeeling that deserves your visit is Peace Pagoda. It was put up by Nichidatsu Fujii, as a symbol of world peace, to unite people of all caste and religion. The structure of the building symbolizes simplicity and sanctity.<br />
<br />
Return back to your hotel and relax. Rest of the evening is free for you, either you can relax or just stroll around. Overnight stay in the hotel.</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> Transfer to Kalimpong (48km/ around one and a half hour drive)
								</p>
								<p class="aj">Today, post an unhurried breakfast, check-out from the hotel and get transferred to Kalimpong.<br />
<br />
Overlooking the Teesta River, Kalimpong is an amazing hill station, located at a height up to 1250m above the sea level. The hill station houses numerous beautiful ancient monasteries, holy shrines and well-reputed educational institutions.<br />
<br />
You c an also enjoy the location as a great picnic spot. Not to forget the wonderful markets which are full with Tibetan jewelries, artifacts, copperwares, handicrafts, masks and items made from bone.<br />
<br />
Upon reaching Kalimpong, check-in at a booked hotel and settle down. Later, in the evening, you are free to roam around near by nurseries or shop at local markets. Overnight stay in the hotel.</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> Sightseeing in Kalimpong
								</p>
								<p class="aj">Fourth day is set out to explore Kalimpong. Take your morning breakfast and proceed through scenic road to Forest museum (closed on Thursday), Deolo Hill, Hanuman Mandir, Dr. Graham Homes (school), Durpin Monastery, Mangaldham and Pine view nursery.<br />
<br />
Scale the highest point of the region, 1704m above the sea level, Deolo hill; one among the two hills in between which Kalimpong town is setup. Relish some cherry time at Deolo hill, along with spectacular views of Kanchenjunga and scenic surrounding.<br />
<br />
Durpin Monastery is another major attraction to visit in Kalimpong. The monastery is placed on Durpin Dara hill with two big cylinders each roughly 10ft high, on both the sides. As you turn the cylinders by a crank, the lever is so arranged that a bell would ring on each turn. You also get to see a row of prayer wheels.<br />
<br />
One of the best features of Kalimpong is its various attractive nurseries. Visit the Pine view nursery boasting of a great collection of cactus in whole Asia. The breathtaking range of cactus would surely make you wonder about the cactus as a possibility in North Eastern parts too.<br />
<br />
Get back to your hotel for overnight stay.</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> Transfer to Pelling
								</p>
								<p class="aj">On fifth day of your Darjeeling- Kalimpong- Pelling- Gangtok tour, check out from the hotel and travel to Pelling via Jorethang (a town in South Sikkim).<br />
<br />
Entirely surrounded by appealing scenery, Pelling is another important town that should not be missed during your trip. The place is popular for spectacular views of Himalayan range with snow-capped mount Pandim, Rathong, Kanchenjunga and Siniolchu and adding on to its beauty is the salubrious weather.<br />
<br />
Situated at an altitude up to 2072m, there are several scenic places to explore in Pelling as when it comes to attractions, the place has a whole lot. From well-known monasteries to pristine lakes, the Pelling houses a number of attractions. Not to forget the varieties of Rhododendron and orchids making it a wonder land for plant lovers.<br />
<br />
Afterwards, check-in at a hotel and rest down. You can spend your evening either by walking around the small town or go for markets which are full with hand woven carpets, traditional motifs, shawls and blankets in Lepcha leaves, Buddhist religious items, thangkas and paper products.</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> Local Sightseeing in Pelling (full day)
								</p>
								<p class="aj">After morning breakfast, you head to travel in and around Pelling for full day. The routes are forested and the botanical and zoological richness is inspiring. Some of the important tourist spots you visit in Pelling are Rimbi waterfalls, Rimbi Rock Garden, Khecheoplalri Lake, Khecheoplalri Monastery, Kanchenjunga waterfalls, Pemayangtse Monastery and Rabdantse ruins.<br />
<br />
Khecheopalri Lake is one among the holiest lakes in Pelling, for Buddhist as well as Hindu community. The pristine lake is popular with different names such as Kha-Chot-Palri, wishing Lake and Sho Dzo Sho. Holding great spirituality and sanctity, the lake comes under Buddhist religious Pilgrimage circuit including Yuksom, Dubdi Monastery, Pemayangtse monastery, Rabdantse ruins, Sanga Choeling monastery and Tashiding monastery.<br />
<br />
Visit Pemayangtse Monastery; one of the striking Gompas, put up by Lama Lhatsun Chempo mainly for ‘ta-sang’ lamas (the purest of monks). Pemayangtse Gompa in Pelling boasts of several ancient Buddhist antique idols, scriptures and sculptures. The prime highlight of the monastery is a seven-tiered painted wooden structure portraying Guru Rimpoche’s Heavenly Palace, Santoplari. The structure took around five years to finish it single handed by Late Dungzin Rimpoche.<br />
<br />
Kanchenjunga Waterfalls, one of the famous tourist spots in Pelling. Enjoy the water cascading down from a certain height relaxing all your sense. The natural beauty and the tranquil surrounding of the place open arms to people from all parts of the world.<br />
<br />
Declared to be a monument of National importance by Archaeological Survey of India, Rabdantse ruins are one of the important tourist places in Sikkim. As already mentioned above in Khecheopalri Lake, the ruins come under Buddhist pilgrimage that starts from Yuksom at Dubdi Monastery, then Norbugang Chorten, Tashiding Monastery, Pemayangtse Monastery, Sangachoeling Monastery, ending at Khecheopalri Lake. The place is reachable by approximately 2km trek from Pelling offering a panoramic view of dense jungles and snow covered mountains.<br />
<br />
Get back to the hotel for overnight stay. Rest of the evening is free to roam around or shop at vibrant bazaars.</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 7:</b> Transfer to Gangtok/ local sightseeing in Gangtok (half day)
								</p>
								<p class="aj">On seventh day, done with your morning breakfast, check-out from the hotel and straight away travel to Gangtok. Popular for its iconic monasteries, educational institutions, striking valleys and wonderful sanctuaries, Gangtok is the most travelled destinations in North East of India. The place has much to offer when it comes to attractions. In fact, the place has so many monasteries that it has been also famed as the ‘land of monasteries’.<br />
<br />
You may visit Rumtek Monastery; largest Gompa in Sikkim, Saramsa Garden (a beautiful garden where you can see number of fruits and flowers planted), Fambong La Wildlife Sanctuary (wonderful sanctuary famous for varied flora and fauna) and Yumthang valley (the valley is home to Shingba Rhododendron Sanctuary where there are 24 species of Rhododendron).<br />
<br />
Some of prime attractions we take you in Gangtok are- Directorate of Handicrafts & Handloom Emporium, Research Institute of Tibetology, Do Drul Chorten (Stupa), Enchey Monastery, White Hall and Flower Show.<br />
<br />
Counted among the main places to shop in the state of Sikkim is Directorate of Handicrafts and Handlooms Emporium. The center provides you several articles falling under your budget. Some of the items you may go for are Tibetan carpets, excellent handicrafts including Thankas, Choksee and locally made furniture.<br />
<br />
Do Drul Chorten is the magnificent stupa in Sikkim where you can see some Kangyur relics (holy books) and other religious objects. There are around 108 prayer wheels, which are turned during worship ceremony while chanting ‘Om Mani Padme Hum’ to invoke Bodhisattva.<br />
<br />
Enchey Monastery is believed to be constructed on a land blessed by Lama Druptab Karpo (a tantrik master); Enchey monastery belongs to Nyingmapa order of Vajrayana school of Buddhism. Structured in the form of Chinese pagoda, the monastery is highly revered and constitutes of shells which hold great importance among Buddhist community.<br />
<br />
Afterwards, get back to your hotel. Rest of the time is at leisure or you can roam around MG mall road and get some popular stuff of the place including handicrafts, locally made artifacts, Tibetan carpets, alpine cheese, Sikkim tea, black cardamom, shimmering jewelries and other traditional outfits. Overnight stay in the hotel.</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 8:</b> Excursion to Tsomgo Lake and Baba Mandir (full day)
								</p>
								<p class="aj">Today, have breakfast and proceed for short trip to Tsomgo Lake and Baba Mandir.<br />
<br />
Tsomgo Lake in Gangtok is regarded as a holy lake among Buddhist, around 38km away from the city center. Located at an altitude up to 12,400 ft, the water of the lake derives from melting of snow from mountains. Usually, the lake is covered with snow for most of the year.<br />
<br />
Locals of the place claim that the color of the lake was studied by Lamas, to predict the future. One of the best things you can indulge in here is yak or mule rides along the lake and adore the serene ambience.<br />
<br />
Near to Tsomgo lake is Baba mandir which is another pious shrine holding great importance. The shrine is settled at an altitude up to 1300ft on Nathula pass. Referred to as the Baba Harbhajan Singh Temple, the temple was put up in the memory of Baba Harbhajan Singh, a soldier. The temple is now maintained by Indian army.<br />
<br />
Return back to the hotel room. Rest of the evening is free to stroll around or shop at bazaars. Overnight stay in Gangtok.<br />
<br />
In case of landslide or due to any other reasons, if Tsomgo Lake is closed then an alternate sightseeing would be provided.</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 9:</b> Departure Gangtok to Siliguri (around 115km/ around two hours drive)
								</p>
								<p class="aj">Today, have breakfast, check-out from the hotel and leave for Siliguri. Further, travel to Jalpaiguri railway staion/Bagdogra airport/Tenzing Norgay bus stand, for your onward 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>
																		<li>Sightseeing</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.kunzongtourandtravel.com/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="75847"/>
						</form>
						</div>
						
						";i:1;s:53:"Book Kalimpong Tour - 8 Nights / 9 Days Tour Packages";i:2;s:130:"book kalimpong tour - 8 nights / 9 days tour packages, valley tour packages, gangtok, darjeeling, kalimpong, pelling tour packages";i:3;s:171:"Kunzong Tours and Travel offers Kalimpong Tour - 8 Nights / 9 Days tour package, budget Valley tour packages for Gangtok, Darjeeling, Kalimpong, Pelling at exciting price.";i:4;s:425:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling, Kalimpong, Pelling"        
		                 },
		      "description": "",
		      "name": "Kalimpong Tour",
		      "telephone": "+91-9593716601"
		    }
		    </script>
			";i:5;N;}