a:6:{i:0;s:36026:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>DARJEELING-GANGTOK-KALIMPONG TOUR 5N/6D</h1></div>
						<p class="breadcrumb ar uu small"><a href="https://www.globetrottertour.in/" title="Home">Home</a>
						
							
						<b class="ffv p2px">&rsaquo;</b> DARJEELING-GANGTOK-KALIMPONG TOUR 5N/6D</p>
						</div>
						</div>
						</section>
										<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> 
						5 Nights / 6 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Gangtok, 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="https://www.globetrottertour.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="DARJEELING-GANGTOK-KALIMPONG TOUR 5N/6D - 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="186374"/>
						</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_19/555474/289592.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_19/555474/289592.jpg"  width="150" height="84"    alt="DARJEELING-GANGTOK-KALIMPONG TOUR 5N/6D" title="DARJEELING-GANGTOK-KALIMPONG TOUR 5N/6D" /></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 at Gangtok
										</p>
										<p class="aj">On your arrival at Bagdodra airport/ Jalpaiguri railway station, meet our tour representative and get escorted to pre-booked hotel in Gangtok.<br />
Revered as the ‘land of monasteries, Gangtok is one of the top tourist destinations to visit in India. The city boasts of number of iconic monasteries, educational institutions, striking valleys and wonderful sanctuaries. With its breathtaking attractions, Gangtok allures travelers from all parts of India and across the globe. The place has much to offer when it comes to attractions.<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 />
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> Excursion to Tsomgo Lake (38 km/ around an hour drive)
										</p>
										<p class="aj">After breakfast, proceed for short trip to Tsomgo Lake; one of the most popular tourist spots settled at an attitude up to 12, 400ft. The lake receives its water from the melting of snows of the mountains. The lake holds great religious importance among locals. Legends say that, Buddhist<br />
monks in earlier times predicted the future after the study of color of water.<br />
You may also indulge in wonderful yak and mule ride along the lake and adore the spectacular surrounding. There is also a Lord Shiva temple near the lake where you can offer sincere prayers to seek the blessings of the Lord.<br />
Next you head to Baba mandir which is another major tourist attraction in Gangtok. The holy shrine is placed at an altitude up to 1300ft. and is just few kilometers away from Tsomgo Lake.<br />
Locals here claim that the temple was put up in the memory of Baba Harbhajan Singh (a soldier).<br />
In fact, the temple is also referred to as Baba Harbhajan Singh temple.<br />
With some good, memories return back to hotel. Rest of the day you can either shop at the lively bazaars of Gangtok or just loosen up in the hotel room.<br />
<br />
Wel, if you are in Gangtok, shopping becomes a must-do thing. The best-buys of the place are handicrafts, locally made artifacts, Tibetan carpets, shimmering jewelries, Sikkim tea, alpine cheese, black cardamom and other traditional outfits.<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 3:</b> Gangtok local sightseeing (half day) - get transferred to Kalimpong (77Km, around one and a half dri
										</p>
										<p class="aj">On third day, have breakfast and embark on a half-day sightseeing tour to Gangtok and later in the evening proceed to Kalimpong.<br />
During your Gangtok tour, you visit Directorate of handicraft handlooms Emporium; one among the few best places to shop in state Sikkim. Boasting of traditional motifs, Tibetan carpets and other excellent handicrafts including Thankas, Choksee and locally made furniture, the center was put up with an objective behind, to preserve and propagate the brilliant artifacts of local artisans. All the stuff you get here is unique and under your budget.<br />
Next you visit Research Institute of Tibetlogy which initially was referred to as Namgyal Institute of Tibetology; one of the most important places in Gangtok that deserves your visit where you get to discover about the very culture, spirit and essence of land. Built in Sikkimese styles of<br />
architecture, the research institute constitutes of a library with massive collection of Tibetan works popular all around the world and a museum of Tibetan Iconography and religious art.<br />
In today’s time, the institute is known worldwide and has become a great place to hold series of lectures and International conferences on Tibetan and Buddhist studies.<br />
Further, visit Do Drul Chorten which is one of the most important and magnificent stupas in Sikkim holding Kangyur relics (holy books) and other religious objects. The stupa is situated on a hill and is pious enough among Buddhists. The chief attraction of the stupa is the golden top<br />
dome and the 108 prayer wheels around the stupa. Prayers are offered by turning the wheel and chanting the mantra ‘Om Mane Padmane Hum’ inscribed on the wheels. The stupa was made under the supervision of Trulshik Rinpoche, the head of Nyingma sect of Tibetan Buddhism.<br />
Then we take you to the must-visit monastery in Gangtok, Sikkim, Enchey monastery; an important seat of the Nyingmapa order of Vajrayana school of Buddhism. Surrounded by tall pine trees, the iconic monastery is a two storey building boasting of shells which are regarded auspicious Buddhist symbols and several murals representing the protective deity and wheel of<br />
law on the porch.<br />
Thereafter, explore White hall; historically significant building, erected in British styles. The hall comprises of an officer’s club and a badminton court. Also, visit the Flower Exhibition Center; a wonderland for plant lovers. With rich display of greenery and colorful flowers, the center also<br />
holds Sikkim Flower Show where visitors get to see beautiful orchids.<br />
After travelling in and around Gangtok, straight away travel to Kalimpong. Situated on a ridge, overlooking Teesta River, Kalimpong is rich in terms of horticulture. From notable Buddhist monasteries to sanctified spots, Kalimpong has a lot to keep you engaged. It is a perfect place<br />
for history buffs.<br />
Upon reaching Kalimpong, check-in at a hotel and settle down. Rest of the evening is at leisure or you can also roam around the attractive nurseries and local markets which are full with paintings, statues, thankas and items made from bone.<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 4:</b> Kalimpong Sightseeing (half day) - get transferred to Darjeeling (48km, around 2 hours drive)
										</p>
										<p class="aj">Fourth day is set out to explore Kalimpong. After breakfast, leave the hotel and drive through scenic road to Deolo hill; listed among the important places of interest to visit in Kalimpong.<br />
Deolo hill is one of the two hills in between which the town Kalimpong is setup. Scale the highest point of the region, Deolo hill, up to 1704m above the sea level. From the top, relish the enchanting views of Teesta River, Relli valley and gorgeous surrounding.<br />
Then you head to Hanuman mandir; a big statue of Lord Hanuman on a hill. It is a great place for Hanuman devotees. Afterwards, visit the popular school of the town, Dr. Graham’s homes (school). The school was opened with a motive to educate the children of tea workers and other<br />
poor kids. The Graham’s home is also a well-known shooting spot.<br />
Later, proceed to some important tourist spots in Kalimpong including- Durbin Monastery which is placed on the Durbin Dara Hill. The star attraction of the monastery is two large cylinders around 10ft high, on two sides. On turning the cylinders by a crank, the lever is so arranged that a bell would prompt on every turn. You also get to see prayer wheels on outside walls of the monastery; Manghal Dham, which a shrine cum a prayer hall. Dedicated to Lord Krishna the temple was raised by Shri Krishna Pranami in the memory of Guru Sri 108 Mangaldasji. The temple houses the statues of Prannath, Raj Shyamji and Mangaldasji.<br />
The divine Mangal Dham works on the principles to help the schools, orphanages and<br />
whosoever in need; and Pine view nurseries which presents you a breathtaking and largest collection of cactus in whole Asia. The variety would make you wonder about cactus as a possibility in North Eastern locations too, apart from desert areas.<br />
Later on, get transferred to Darjeeling.<br />
Renowned as the ‘Queen of hills’, Darjeeling is an important tourist destination to visit in the state of West Bengal. The marvelous hill station is set up at an elevation of 7100ft with mountains and valleys all around and is best-known for salubrious weather, natural beauty, tea farms, monasteries, lakes, museums and a whole lot. The awe-inspiring views of Kanchenjunga, (the third highest mountain peak in the world) would totally leave you awestruck.<br />
Darjeeling is also home to the famous World Heritage Train- Darjeeling Himalayan Railway; a thin gauge course connecting Darjeeling and Siliguri. Popular as the Darjeeling Toy train, the train started its operation in around 1881 and is one of the few hill railways operating in India.<br />
The train passes through some rolling hills, green jungles and tea farms of Darjeeling.<br />
On your arrival at Darjeeling, check-in at a hotel and relax. Further, in the evening you are free to walk around the local markets. Some of the unique buys of Darjeeling that shouldn’t be missed during your visit include variety of teas, amazing kitchen wares, brass statues, woven fabrics and shinning jewelries.<br />
Overnight stay in the 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 5:</b> Darjeeling local Sightseeing (half day)
										</p>
										<p class="aj">Today early morning get ready for some thrilling drive to Tiger Hill; at a height up to 8,500 ft. (On a clear day), cherish the mesmerizing natural beauty of the hill, the lush green jungles and the tranquil ambience. Usually, it is noted that, visitors stopover this hill to relish the wonderful sunrise. The ultimate view of golden sunrays falling over the snow covered Himalayan ranges would surely leave you awestruck.<br />
<br />
From Tiger hill you can have a perfect view of Kanchenjunga, the third highest peak in the world. In case you are lucky, you may also get to see the world’s highest peak, Mount Everest.<br />
Thereafter, on the way back to hotel room, visit the Ghoom monastery-built by Lama Sherpa Gyaltsho, the monastery belongs to Gelugpa (yellow hat) Sect. The monastery is highly revered among Buddhists and is storehouse to several Buddhist manuscripts. The highlights of the monastery are thangkas on the walls and around 4.57m high statue of Maithreya Buddha. The serenity of the place would surely provide you great peace and power; and then proceed to Batasia Loop and War Memorial. Situated inside Batasia Loop- a scenic garden, War Memorial is<br />
a tribute to Gorkha soldiers of Darjeeling who sacrificed their life in the battle. Inaugurated in 1995, the memorial holds an elevated platform where there is a statue of a soldier paying respect and a Cenotaph.<br />
The loop offers amazing views of Kanchenjunga and picturesque surrounding from toy train (route from Ghum and Darjeeling).<br />
Getting back to hotel for breakfast and relax for some time. After breakfast, get ready for a half day tour to Darjeeling.<br />
Begin with Padmaja Naidu Zoological Park which is famed for some rarely seen species including Red Panda, Siberian Tiger, Tibetan Wolf, Black Bear and Snow Leopard. Located at a height up to 2133m, Padmaja Naidu is one of famous and highest Zoo in India. The main idea behind the formation of the park was to conserve the endangered species of fauna. The park has an amazing scenic beauty of lush jungles.<br />
Then we take you to Himalayan Mountaineering Institute (closed on Thursday)- an institute basically put up to encourage today’s generation students to improve participation in exciting sports like mountaineering; Passenger Ropeway- one of the finest ways to adore the beautiful Darjeeling . It is India’s first Passenger Ropeway starting from Singamari. The route to Darjeeling and Singla Bazaar feels even better when you experience the ride.<br />
From the Cable Car, one can truly sense enchanting tea farms, breathtaking valley, waterfalls and the River Ranjeet and Ramman. Moreover, you can also have the splendid views of Eastern<br />
Himalayan Range and the snow covered peaks of Kachenjunga; Tenzing and Gombu Rock Darjeeling- two big natural rocks set opposite to each other. Named after Tenzing Norway is the Tenzing rock and Gombu rock named after Nawang Gombu. Both the rocks are training locations for Himalayan Mountaineering Institute students; Tibetan Refugee Self Help Center-a perfect place to explore Tibetan Culture through the artifacts, wooden carvings, photographs, carpets,<br />
leather work and much more put into exhibition and on sale; Tea Estate- producing variety in teas, tea estates in Darjeeling are famous for their well-maintained farms where you can see different flavors, taste and aroma of teas (Sunday closed); Peace Pogoda- a Buddhist stupa/ monument specially put up to maintain peace and unite people of all religion and caste.<br />
Constructed under the guidance of a Buddhist monk, Nichidastu Fuji, the stupa stands for world peace.<br />
Return back to 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 6:</b> Departure- Darjeeling to Siliguri- (64km, around one and a half hour drive)
										</p>
										<p class="aj">Today, after morning breakfast, check-out form the hotel and leave for Siliguri. Further, travel to railway station/ Bagdogra airport/ Tenzing Norgay bus station, for your onward destination.</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>CP (Room + Breakfast)</li>
																						<li>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																				<li>Accommodation is on twin sharing basis</li><li>
Meals : breakfast at all places</li><li>
Transfers from one place to another</li><li>
Sightseeing in private cars</li><li>
Vehicle will be provided based on the itinerary</li><li>
All current taxes such as hotel taxes and transportation taxes</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Accommodation is on twin sharing basis</li><li>
Meals : breakfast at all places</li><li>
Transfers from one place to another</li><li>
Sightseeing in private cars</li><li>
Vehicle will be provided based on the itinerary</li><li>
All current taxes such as hotel taxes and transportation taxes.</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</li><li>
* 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.</li><li>
* 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="https://www.globetrottertour.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="DARJEELING-GANGTOK-KALIMPONG TOUR 5N/6D - 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="186374"/>
						</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="https://www.globetrottertour.in/packages-in-paro.htm" title="Packages in Paro">Paro</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/packages-in-darjeeling.htm" title="Packages in Darjeeling">Darjeeling</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/packages-in-punakha.htm" title="Packages in Punakha">Punakha</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/packages-in-thimphu.htm" title="Packages in Thimphu">Thimphu</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/packages-in-guwahati.htm" title="Packages in Guwahati">Guwahati</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/packages-in-gangtok.htm" title="Packages in Gangtok">Gangtok</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/packages-in-shillong.htm" title="Packages in Shillong">Shillong</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/packages-in-jalpaiguri.htm" title="Packages in Jalpaiguri">Jalpaiguri</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/packages-in-cherrapunji.htm" title="Packages in Cherrapunji">Cherrapunji</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/packages-in-kalimpong.htm" title="Packages in Kalimpong">Kalimpong</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.globetrottertour.in/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.globetrottertour.in/packages-in-tawang.htm" title="Packages in Tawang">Tawang</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.globetrottertour.in/packages-in-singapore-city.htm" title="Packages in Singapore">Singapore</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.globetrottertour.in/packages-in-thiruvalla.htm" title="Packages in Thiruvalla">Thiruvalla</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.globetrottertour.in/packages-in-tezpur.htm" title="Packages in Tezpur">Tezpur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.globetrottertour.in/packages-in-ooty.htm" title="Packages in Ooty">Ooty</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.globetrottertour.in/packages-in-bagdogra.htm" title="Packages in Bagdogra">Bagdogra</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.globetrottertour.in/packages-in-siliguri.htm" title="Packages in Siliguri">Siliguri</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.globetrottertour.in/packages-in-manali.htm" title="Packages in Manali">Manali</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.globetrottertour.in/packages-in-mandla.htm" title="Packages in Mandla">Mandla</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.globetrottertour.in/packages-in-bhalukpong.htm" title="Packages in Bhalukpong">Bhalukpong</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.globetrottertour.in/packages-in-bomdila.htm" title="Packages in Bomdila">Bomdila</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.globetrottertour.in/packages-in-shimla.htm" title="Packages in Shimla">Shimla</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.globetrottertour.in/packages-in-kaziranga.htm" title="Packages in Kaziranga">Kaziranga</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="https://www.globetrottertour.in/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(9)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/national-parks-holidays-catid.htm" title="National Parks Packages">National Parks</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/safari-holidays-catid.htm" title="Safari Packages">Safari</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/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="https://www.globetrottertour.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.globetrottertour.in/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</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>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Gangtok, Darjeeling, Kalimpong</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.globetrottertour.in/holiday-packages/darjeeling-tour2n3d.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_19/555474/289593.jpg"  alt="DARJEELING TOUR 2N/3D" title="DARJEELING TOUR 2N/3D"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.globetrottertour.in/holiday-packages/darjeeling-tour2n3d.htm" title="DARJEELING TOUR 2N/3D"><h3>Darjeeling Tour 2n/3d</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								2 Nights / 3 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Darjeeling</p>
															<div class="mt10px small">
							<form name="pkg_186375" id="pkg_186375" method="post" action="https://www.globetrottertour.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.globetrottertour.in/holiday-packages/darjeeling-tour2n3d.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="DARJEELING TOUR 2N/3D - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="186375"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.globetrottertour.in/holiday-packages/darjeeling-with-kalimpong-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_19/555474/288529.jpg"  alt="Darjeeling with Kalimpong Tour" title="Darjeeling with Kalimpong Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.globetrottertour.in/holiday-packages/darjeeling-with-kalimpong-tour.htm" title="Darjeeling with Kalimpong Tour"><h3>Darjeeling With Kalimpong Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								5 Nights / 6 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok, Darjeeling, Kalimpong, Siliguri..</p>
															<div class="mt10px small">
							<form name="pkg_186115" id="pkg_186115" method="post" action="https://www.globetrottertour.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.globetrottertour.in/holiday-packages/darjeeling-with-kalimpong-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Darjeeling with Kalimpong Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="186115"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.globetrottertour.in/holiday-packages/darjeeling-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_19/555474/288516.jpg"  alt="DARJEELING TOUR" title="DARJEELING TOUR"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.globetrottertour.in/holiday-packages/darjeeling-tour.htm" title="DARJEELING TOUR"><h3>Darjeeling Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								4 Nights / 5 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Darjeeling, Jalpaiguri, Bagdogra</p>
															<div class="mt10px small">
							<form name="pkg_186111" id="pkg_186111" method="post" action="https://www.globetrottertour.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.globetrottertour.in/holiday-packages/darjeeling-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="DARJEELING TOUR - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="186111"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</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:78:"Book DARJEELING-GANGTOK-KALIMPONG TOUR 5N/6D - 5 Nights / 6 Days Tour Packages";i:2;s:152:"book darjeeling-gangtok-kalimpong tour 5n/6d - 5 nights / 6 days tour packages, hill station tour packages, gangtok, darjeeling, kalimpong tour packages";i:3;s:197:"Book DARJEELING-GANGTOK-KALIMPONG TOUR 5N/6D - 5 Nights / 6 Days tour packages from Globe Trotter - Get attractive 5 Nights / 6 Days Hill Station  tour packages for  Gangtok, Darjeeling, Kalimpong.";i:4;s:441:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling, Kalimpong"        
		                 },
		      "description": "",
		      "name": "DARJEELING-GANGTOK-KALIMPONG TOUR 5N/6D",
		      "telephone": "+91-9967296720"
		    }
		    </script>
			";i:5;N;}