a:6:{i:0;s:36768:"				<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-->				
									<div class="h1"><h1>Darjeeling - Kalimpong - Gangtok Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.cliquetoursandtravel.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.cliquetoursandtravel.com/holiday-packages.htm" title="Packages">Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>Darjeeling - Kalimpong - Gangtok Tour</p> 
									
						<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.cliquetoursandtravel.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling - Kalimpong - Gangtok Tour - 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="106724"/>
						</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_17/494005/176949.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/494005/176949.jpg"  width="150" height="150"    alt="Darjeeling - Kalimpong - Gangtok Tour" title="Darjeeling - Kalimpong - Gangtok Tour" /></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 />
<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 />
<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 />
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 monks in earlier times predicted the future after the study of color of water.<br />
<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 />
<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 />
<br />
Locals here claim that the temple was put up in the memory of Baba Harbhajan Singh (a soldier). In fact, the temple is also referred to as Baba Harbhajan Singh temple.<br />
<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 />
<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
										</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 />
<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 />
<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 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 />
<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 />
<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 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 />
<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 law on the porch.<br />
<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 holds Sikkim Flower Show where visitors get to see beautiful orchids.<br />
<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 for history buffs.<br />
<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 />
<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
										</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. 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 />
<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 poor kids. The Graham’s home is also a well-known shooting spot.<br />
<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 />
<br />
The divine Mangal Dham works on the principles to help the schools, orphanages and 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 />
<br />
Later on, get transferred to Darjeeling.<br />
<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 />
<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. The train passes through some rolling hills, green jungles and tea farms of Darjeeling.<br />
<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 />
<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 />
<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 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 />
<br />
The loop offers amazing views of Kanchenjunga and picturesque surrounding from toy train (route from Ghum and Darjeeling).<br />
<br />
Getting back to hotel for breakfast and relax for some time. After breakfast, get ready for a half day tour to Darjeeling.<br />
<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 />
<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 />
<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 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, 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. Constructed under the guidance of a Buddhist monk, Nichidastu Fuji, the stupa stands for world peace.<br />
<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
										</p>
										<p class="aj">Today, after morning breakfast, check-out form the hotel and leave for Siliguri. Further, travel to Jalpaiguiri 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>Hotel</li>
																						<li>Sightseeing</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.</li></ul>					
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>* Upon cancellation, refund will be made after deducting the Retention Amount. 
* Retention Amount varies as per the number of days left before your package start date.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.cliquetoursandtravel.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling - Kalimpong - 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="106724"/>
						</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.cliquetoursandtravel.com/packages-in-gangtok.htm" title="Packages in Gangtok">Gangtok</a> <b class="alpha50 bn small">(15)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.cliquetoursandtravel.com/packages-in-darjeeling.htm" title="Packages in Darjeeling">Darjeeling</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.cliquetoursandtravel.com/packages-in-pelling.htm" title="Packages in Pelling">Pelling</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.cliquetoursandtravel.com/packages-in-cherrapunji.htm" title="Packages in Cherrapunji">Cherrapunji</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.cliquetoursandtravel.com/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.cliquetoursandtravel.com/packages-in-shillong.htm" title="Packages in Shillong">Shillong</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.cliquetoursandtravel.com/packages-in-lachung.htm" title="Packages in Lachung">Lachung</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.cliquetoursandtravel.com/packages-in-udaipur.htm" title="Packages in Udaipur">Udaipur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.cliquetoursandtravel.com/packages-in-kalimpong.htm" title="Packages in Kalimpong">Kalimpong</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.cliquetoursandtravel.com/packages-in-namchi.htm" title="Packages in Namchi">Namchi</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.cliquetoursandtravel.com/packages-in-golaghat.htm" title="Packages in Golaghat">Golaghat</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.cliquetoursandtravel.com/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.cliquetoursandtravel.com/packages-in-agartala.htm" title="Packages in Agartala">Agartala</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.cliquetoursandtravel.com/packages-in-bagdogra.htm" title="Packages in Bagdogra">Bagdogra</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.cliquetoursandtravel.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(16)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.cliquetoursandtravel.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.cliquetoursandtravel.com/trekking-holidays-catid.htm" title="Trekking Packages">Trekking</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.cliquetoursandtravel.com/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(1)</b></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.cliquetoursandtravel.com/tour-packages/short-escapeto-gangtok-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/494005/176946.jpg"  alt="Short Escape to Gangtok Tour" title="Short Escape to Gangtok Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.cliquetoursandtravel.com/tour-packages/short-escapeto-gangtok-tour.htm" title="Short Escape to Gangtok Tour"><h3>Short Escape To Gangtok 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> : 
								3 Nights / 4 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok</p>
															<div class="mt10px small">
							<form name="pkg_106721" id="pkg_106721" method="post" action="https://www.cliquetoursandtravel.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.cliquetoursandtravel.com/tour-packages/short-escapeto-gangtok-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Short Escape to Gangtok 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="106721"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.cliquetoursandtravel.com/tour-packages/darjeeling-holidays-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/494005/177311.jpg"  alt="Darjeeling Holidays Package" title="Darjeeling Holidays Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.cliquetoursandtravel.com/tour-packages/darjeeling-holidays-package.htm" title="Darjeeling Holidays Package"><h3>Darjeeling Holidays Package</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_106982" id="pkg_106982" method="post" action="https://www.cliquetoursandtravel.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.cliquetoursandtravel.com/tour-packages/darjeeling-holidays-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Darjeeling Holidays Package - 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="106982"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.cliquetoursandtravel.com/tour-packages/bella-sikkim-darjeeling-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/494005/177315.jpg"  alt="Bella Sikkim - Darjeeling Tour" title="Bella Sikkim - Darjeeling Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.cliquetoursandtravel.com/tour-packages/bella-sikkim-darjeeling-tour.htm" title="Bella Sikkim - Darjeeling Tour"><h3>Bella Sikkim - 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> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Darjeeling</p>
															<div class="mt10px small">
							<form name="pkg_106986" id="pkg_106986" method="post" action="https://www.cliquetoursandtravel.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.cliquetoursandtravel.com/tour-packages/bella-sikkim-darjeeling-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Bella Sikkim - 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="106986"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.cliquetoursandtravel.com/tour-packages/darjeeling-holiday-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/494005/177329.jpg"  alt="Darjeeling Holiday Package" title="Darjeeling Holiday Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.cliquetoursandtravel.com/tour-packages/darjeeling-holiday-package.htm" title="Darjeeling Holiday Package"><h3>Darjeeling Holiday Package</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> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok, Darjeeling, Pelling</p>
															<div class="mt10px small">
							<form name="pkg_106997" id="pkg_106997" method="post" action="https://www.cliquetoursandtravel.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.cliquetoursandtravel.com/tour-packages/darjeeling-holiday-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Darjeeling Holiday Package - 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="106997"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.cliquetoursandtravel.com/tour-packages/himalayan-tranquility-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/494005/177313.jpg"  alt="Himalayan Tranquility Tour" title="Himalayan Tranquility Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.cliquetoursandtravel.com/tour-packages/himalayan-tranquility-tour.htm" title="Himalayan Tranquility Tour"><h3>Himalayan Tranquility 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> :  Gangtok, Darjeeling</p>
															<div class="mt10px small">
							<form name="pkg_106984" id="pkg_106984" method="post" action="https://www.cliquetoursandtravel.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.cliquetoursandtravel.com/tour-packages/himalayan-tranquility-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Himalayan Tranquility 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="106984"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.cliquetoursandtravel.com/tour-packages/sikkim-darjeeling-tour-duration6-days.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/494005/176944.jpg"  alt="Sikkim - Darjeeling Tour (Duration: 6 Days)" title="Sikkim - Darjeeling Tour (Duration: 6 Days)"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.cliquetoursandtravel.com/tour-packages/sikkim-darjeeling-tour-duration6-days.htm" title="Sikkim - Darjeeling Tour (Duration: 6 Days)"><h3>Sikkim - Darjeeling Tour (duration: 6 Days..</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, Lachung, Yumethang</p>
															<div class="mt10px small">
							<form name="pkg_106719" id="pkg_106719" method="post" action="https://www.cliquetoursandtravel.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.cliquetoursandtravel.com/tour-packages/sikkim-darjeeling-tour-duration6-days.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Sikkim - Darjeeling Tour (Duration: 6 Days) - 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="106719"/>
							</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:76:"Book Darjeeling - Kalimpong - Gangtok Tour - 5 Nights / 6 Days Tour Packages";i:2;s:152:"book darjeeling - kalimpong - gangtok tour - 5 nights / 6 days tour packages, lakes & rivers tour packages, gangtok, darjeeling, kalimpong tour packages";i:3;s:208:"Book Darjeeling - Kalimpong - Gangtok Tour - 5 Nights / 6 Days tour packages from Clique Tours And Travels - Get attractive 5 Nights / 6 Days Lakes & Rivers  tour packages for  Gangtok, Darjeeling, Kalimpong.";i:4;s:439:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling, Kalimpong"        
		                 },
		      "description": "",
		      "name": "Darjeeling - Kalimpong - Gangtok Tour",
		      "telephone": "+91-9749410366"
		    }
		    </script>
			";i:5;N;}