a:6:{i:0;s:19822:"				<div class="h1"><h1>North East Delight with Kalimpong Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.onyourmarkstravel.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.onyourmarkstravel.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>North East Delight with 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</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.onyourmarkstravel.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="North East Delight with 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="95154"/>
						</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/465683/161864.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/465683/161864.jpg"  width="150" height="150"    alt="North East Delight with Kalimpong Tour" title="North East Delight with 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.</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.onyourmarkstravel.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="North East Delight with 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="95154"/>
						</form>
						</div>
						
						";i:1;s:77:"Book North East Delight with Kalimpong Tour - 8 Nights / 9 Days Tour Packages";i:2;s:134:"book north east delight with kalimpong tour - 8 nights / 9 days tour packages, valley tour packages, gangtok, darjeeling tour packages";i:3;s:183:"Book North East Delight with Kalimpong Tour - 8 Nights / 9 Days tour packages from OnyourmarksTravel - Get attractive 8 Nights / 9 Days Valley  tour packages for  Gangtok, Darjeeling.";i:4;s:429:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling"        
		                 },
		      "description": "",
		      "name": "North East Delight with Kalimpong Tour",
		      "telephone": "+91-8334014211"
		    }
		    </script>
			";i:5;N;}