a:6:{i:0;s:20648:"				<div class="h1"><h1>Darjeeling - Kalimpong - Peling - Gangtok Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.seaqueenholiday.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.seaqueenholiday.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Darjeeling - Kalimpong - Peling - Gangtok 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.seaqueenholiday.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling - Kalimpong - Peling - Gangtok 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="52594"/>
						</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_8/235469/102935.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/235469/102935.jpg"  width="150" height="150"    alt="Darjeeling - Kalimpong - Peling - Gangtok Tour" title="Darjeeling - Kalimpong - Peling - Gangtok 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.seaqueenholiday.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling - Kalimpong - Peling - Gangtok 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="52594"/>
						</form>
						</div>
						
						";i:1;s:85:"Book Darjeeling - Kalimpong - Peling - Gangtok Tour - 8 Nights / 9 Days Tour Packages";i:2;s:162:"book darjeeling - kalimpong - peling - gangtok tour - 8 nights / 9 days tour packages, valley tour packages, gangtok, darjeeling, kalimpong, pelling tour packages";i:3;s:197:"Sea Queen Holidays offers Darjeeling - Kalimpong - Peling - Gangtok Tour - 8 Nights / 9 Days tour package, budget Valley tour packages for Gangtok, Darjeeling, Kalimpong, Pelling at exciting price.";i:4;s:457:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling, Kalimpong, Pelling"        
		                 },
		      "description": "",
		      "name": "Darjeeling - Kalimpong - Peling - Gangtok Tour",
		      "telephone": "+91-9833538295"
		    }
		    </script>
			";i:5;N;}