a:6:{i:0;s:37593:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Darjeeling - Pelling - Gangtok Tour</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.mangaldeeptravels.in/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.mangaldeeptravels.in/travel-packages.htm" title="Travel Packages">Travel Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> Darjeeling - Pelling - Gangtok Tour</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> 
						6 Nights / 7 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Gangtok, Darjeeling, Pelling</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="http://www.mangaldeeptravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling - Pelling - 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="50833"/>
						</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_11/326833/99914.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_11/326833/99914.jpg"  width="150" height="150"    alt="Darjeeling - Pelling - Gangtok Tour" title="Darjeeling - Pelling - 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 in Darjeeling
										</p>
										<p class="aj">The remarkable vacation starts shortly after you reach at New Jalpaiguri Station (NJP), Bagdogra airport (IXB) and Tenzing Norgay Bus Stand (Junction) in West Bengal. From here, you need to travel to Darjeeling, which rests on the northern extreme of the state. Once you arrive, our tour executive will escort you to the hill-town of Darjeeling via road. The serene hill station of Darjeeling is elevated at an altitude of 7100 ft in West Bengal, and 68 km from NJP Railway Station, 69 km from Bagdogra airport and 65 km From the Tenzing Norgay Bus stand.

Engulfed in the snow-clad peaks of Kanchenjunga, Darjeeling is amongst the celebrated tourist attractions in this corner of India. The charm of the hill-town can be defined by its verdant green tea plantations, which are known to be the supreme in the world, its rolling hills and alpine forests. Apart from the acres of tea estates, Darjeeling is also famous for its monasteries and an assortment of town attractions. Other than natural attractions, Darjeeling is also famous for its rustic colonial charm, like the ancient world heritage Darjeeling Himalayan Railway system.

As you reach Darjeeling, check in to our pre-reserved hotel. Spend your evenings at leisure in the guesthouse and if you wish to move out, feel free to lurk around local shopping centers.</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
										</p>
										<p class="aj">As soon as dawn cracks, you begin the day by 3:45 AM, by heading towards Tiger Hill, which is around 11 km from the main town of Darjeeling. Tiger Hill is one of the major places of interest in Darjeeling and can be reached on foot easily, all along the splendid tea plantations. The top of the hill overlooks the colossal peak in Sikkim, Mt. Kanchenjunga, and if the weather is clear, Mt. Everest also. Its claim to fame has been its tranquilizing view of the sunrise. When rays of the morning sun fall on Mt. Kanchenjunga it illuminates beautifully with a golden orange reflection, and thus offering a breathtaking sight.

While returning, pay a casual visit to the some of the most popular attractions in Darjeeling. Begin from Ghoom monastery, then War Memorial and finally, Batasia Loop.

Just 8 km short of Darjeeling, you will come across Ghoom Monastery, which is resting at an elevation of around 7400 feet. Ghoom Monastery was constructed in the year 1850 by Lama Sherab Gyatso. The well-famed monastery belongs to the Yellow Hat Sect, known as Gelupka. Once inside the monastery, you will witness a 15 foot model of Lord Buddha, which is also referred as Maitreya Buddha. In Buddhism, Maiteya Buddha means Buddha of the upcoming era or the coming Buddha. A compelling fact about the figurine of Maitreya Buddha is that it is all created up of clay, all imported from Tibet. Besides the sculpture of Buddha, the monastery is also noted for housing a vast collection of Buddhist manuscripts.

After departing from the monastery, hop on to the vintage Toy train as it makes its path through the striking landscapes in Darjeeling. The toy train also whistles away through the splendid Batasia Loop, which makes its curve at the Hill Cart road. The loop has a vibrant garden of exotic flowers built in the inner circle of the loop. From the Batasia Loop, you can have a spectacular view of the alluring Darjeeling valley along with the snow-clad peaks of Kanchenjunga.

Right in the heart of the Batasia Loop, stands the War Memorial. As obvious from its name, the structure was erected as a tribute to numerous Gorkha soldiers, who were martyred in military operations since India’s independence. Undoubtedly, an amazing attraction, the War Memorial is amongst the high-flying ones in Darjeeling.

After these jaunts, return back to your inn for savoring the supper. Nearly half an hour later, you would be embarking on seeing the sights in the main town of Darjeeling. This includes visits to Himalayan Montaineering Institute, Tensing Gumpo Rock, Padmaju Naidu Zoological Park, Tibetan Refugee Self Help Cente and Natural History Museum.

Conclude your day on a serene note by visiting the heritage of world peace, Japanese Peace Pagoda, which is located within the complex of other attractions. The Peace Pagoda exhibits four manifestations or forms of Lord Buddha and throws the light on uniting people of all races for global harmony. Pay your visits there and return back to your suite for a snuggy overnight stay. Sundown is meant to walk around the local milieu or shopping in the nearby markets, although you can even prefer staying indoors and stretch limbs.</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 Pelling
										</p>
										<p class="aj">Shortly after finishing breakfast, you would be transferred to Pelling, which is situated in the western division of Sikkim. Highly lauded for its natural vistas and quietude, Pelling in Sikkim is a high-flying hill-town in the northeast India. Elevated at an altitude of around 6800 ft, the hill-town offers a panoramic sight of the highest peak in Sikkim, Mt. Kanchenjunga. Not just Kanchenjuga, the place provides a kaleidoscope of mountain peaks, like Kanchenjunga, Rathong, Koktang, Pandim, Sinlolchu and Kumbhakaran. Apart from these the lofty mountain peaks, prettiness of this hill-town lies in its verdant green alpine and Rhododendron forests that are flawless for nature trails. The area is also a dwelling for some of the rarest genus of Himalayan animals. Kanchendzonga National Park in this part of Sikkim provides a natural habitation to them. Amidst all the greenery, lies some beautifully cascading waterfalls, which are counted amongst the wonderful natural spots to re-energize with family and friends.

The drive from Darjeeling to Pelling is likely to take around 1 hour and 55 mins. Shortly after reach the hill-town, make a check-in to a reserved hotel for a cozy overnight stay. The remaining hours would be at leisure. You can choose to unwind yourself in your suites or head out for a shopping in the nearby market places.</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> Pelling local sightseeing
										</p>
										<p class="aj">Fourth day of our elite tour is dedicated to seeing the sights in and around Pelling. What else can be better than remembering the Lord to kickstart the day. Owing to this, you will be heading to Pemayangtse monastery at the first place.

About 2km from the main town of Pelling, lies the prime monastery of Ngingma sect, Pemayangtse Monastery. This Buddhist sacred center is believed to be erected in the year 1705, by Gyalwa Lhatsun Namkha Jigme. The celebrated monastery is like the sanctum of all the other Nyingma monasteries and assumed to uphold the order of this sect. Being struck by earthquakes twice, the architecture of Pemayangtse monastery underwent several reconstructions.

Presently, the floors of the monastery are adorned with paintings, figurines and ancient scriptures. Besides the paintings and sculptures, you will witness eight manifestations of Padmasambhava, in the form of statuette, which appears highly striking. The center of attraction remains the prime figure of Padmasambhava, which represents Tantric form of Buddhism. As you would be done with the monastery, hop on for a nature trip to spots like Kecheoplari lake, Rimbi waterfalls, Rimbi rock garden and Kanchenjunga falls.

Located 27 km from the town of Pelling, Khecheoplari lake is amongst the most pristine lakes of Sikkim. Journey to the sacred lake would take you right across a thick forest cover. The lake is beautiful, placid and clean to explore.

Just a km ahead, at a sharp curve on the road side, lies the beguiling Kanchenjunga falls. Owing to its charm and magnificence, the waterfalls are amongst the key attractions in Darjeeling. The waterfall is perennial and it gets its spring from colossal glaciers high up in the mountains. There are also several shops and stalls located in the vicinity of the falls. You can sip a nice cup of coffee amidst the intriguing milieu of the Kanchenjunga falls.

Rimbi Rock Garden or Sewaro Rock Garden is a lure of gardens, pools and zigzag foot paths. Located around 12 km from the main town of Pelling, the rock garden is a flawless place to relish a picnic. As you move 5 km from here, you will come face to face with Rimbi waterfalls, which is awe-inspiring to every eyeball.

Soon after completing the jaunt, return to your hotel for a slackening stay. Feel free to explore the local markets of Pelling after sundown.</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 from Pelling and Gangtok Local Sightseeing
										</p>
										<p class="aj">Munch your breakfast, embark on an expedition to the capital of Sikkim, Gangtok. The capital is around 116 km from Pelling, so you will have to depart in the early hours.

Gangtok being one of the celebrated places in Sikkim, is a chief tourist destination that is flaked with multiple beautiful monasteries, and rests under the shroud of lofty Himalayan peaks. Most intriguing fact about Sikkim is that due to its proximity to Himalayan ranges, the destination offers a panoramic view of the colossal Kanchenjunga mountain, which is the highest in Sikkim. Apart from the captivating Himalayan beauty, Gangtok is enriched with cultural biodiversity flowing deep inside its city life.

Drive to Gangtok for nearly 2 hr and 30 mins. Soon after you reach your destination, you would be escorted to your guesthouse. After unwinding for a while in the guesthouse, you will be heading for a tourism trip of Gangtok. Prime tourist attractions that you would be visiting include Enchey monastery, Do Drul Chorten, Directorate of handicrafts and handlooms, Research institute of Tibetology and White Hall.

Located 3 km from the main town of Gangtok, Enchey Monastery is regarded as the principal sacred site in the city. Construction of this legendary monastery dates back to 200 years. Another chief paradigm of the Nyingma sect of Buddhism, Enchey monastery is supposed to be sanctified by Lama Druptab Karpo. In its early days, Enchey was basically a small hut. Later on, the present day architecture started taking place in the form of a Chinese Pagoda. The prime attractions of this lone monastery are the figurines of Lord Buddha, Loki Sharia and Guru Padmasambhava. Besides the sculpture of them, the monastery also houses primitive images of Gods and Goddesses.

Noticeable by a golden top dome, Do Drul Chorten stupa stands on a hillock. The construction of this spectacular structure has an interesting tale to narrate. It is said that once the spot of this very stupa, used to be haunted by ghouls, and caused human casualties. In order to mitigate the region of these malevolent spirits, a noted lama of Tibet, Trulshig Rinpoche arrived to this place and erected a religious stupa in the year 1946. This stupa later on was known as Do Drul Chorten. Structured along the principles of Nyingma order of Buddhism, the stupa holds great connotation. It houses 108 prayer wheels that have Buddhist hymns emblazoned over them.

After praying at these sacred sites, head towards the Research Institue of Tibetology, which is located very close to Do Drul Chorten stupa. The institute is well-known for its huge assortment of books on the traditions of Sikkim and Tibetan work. Post this, embark to Directorate of Handlooms and Handicrafts and White Hall. Then call it a day, and proceed back to your inn and retire for the night. In the evening, visit any good shopping market or a club nearby.</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> Excursion to Tsomgo Lake and Baba Mandir
										</p>
										<p class="aj">Munch a finger-licking breakfast, leave for Tsomgo Lake and Baba Mandir on the alluring heights of Sikkim. First in the outing is Tsomgo Lake which is around 39 km from Gangtok. Drive to the lake is likely to take around an hour.

Perching at an altitude of around 12,400 ft, Tsomgo Lake or Changu Lake is one of the most serene spots in the whole of Sikkim. The glacial lake is a dwelling to a number of Brahmini ducks and migratory birds. Besides its natural charm, Tsomgo lake is also a revered lake that is highly thronged by Buddhist and Hindu pilgrims. On the banks of the Tsomgo Lake lies a shrine of Lord Shiva as well. The lake also has shops selling yak cheese and trinkets, situated on its banks. After having a gala time in this natural magnificence, move towards an outstanding shrine, known as Baba Mandir.

Baba Harbhajan Singh Memorial temple or simply Baba Mandir is a holy place that stands close to the Jelep La and Nathu La in the eastern part of Sikkim. The drive is around 16 km from Tsomgo Lake, which is likely to take close to 21 mins to reach. The famous shrine of Baba Harbhajan Singh has an intriguing story to narrate. The story goes like this, there was a sepoy in the 23rd Punjab Regiment who was martyred during the Indo-China war of 1962. One of his fellow soldiers saw him in his dream, asking to commemorate a memorial in his honor. This resulted in the erection of a cenotaph by the great Indian army. This later on turned into a religious shrine. Owing to this, the shrine welcomes hundreds of devotees on a daily basis. As you will enter the temple of Baba Harbhajan Singh Memorial Temple, you will come across an assortment of possessions of the late soldier and an idol of him. This temple is highly revered by army personnels posted in the region.

By sundown, you would return to your hotel in Gangtok for an overnight stay. Make the best use of final hours of your shopping in the urban at this time.</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> Departure from Gangtok
										</p>
										<p class="aj">Shortly after eating morning breakfast, you would be transferred to New Jalpaiguri Railway Station (119 km) / Bagdogra Airport (126 km) / Tenzing Norgay Bus Stand (113 km) from your hotel in Gangtok. This marks the farewell of our remarkable northeast holiday.</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">Accommodation</p>
						</div>				
		
				    	<table class="mb15px bdrall bdreee w100 p5px15px formTable">
						<tr class="headVr b">
						<td class="p5px10px">City</td>
						<td class="p5px10px">Hotel Name</td>
						<td class="p5px10px">Star Rating</td>
						</tr>
												</tbody>
						</table>
						</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="http://www.mangaldeeptravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling - Pelling - 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="50833"/>
						</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="http://www.mangaldeeptravels.in/packages-in-gangtok.htm" title="Packages in Gangtok">Gangtok</a> <b class="alpha50 bn small">(46)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-darjeeling.htm" title="Packages in Darjeeling">Darjeeling</a> <b class="alpha50 bn small">(45)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-jalpaiguri.htm" title="Packages in Jalpaiguri">Jalpaiguri</a> <b class="alpha50 bn small">(23)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-kalimpong.htm" title="Packages in Kalimpong">Kalimpong</a> <b class="alpha50 bn small">(18)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-pelling.htm" title="Packages in Pelling">Pelling</a> <b class="alpha50 bn small">(12)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-lachung.htm" title="Packages in Lachung">Lachung</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-siliguri.htm" title="Packages in Siliguri">Siliguri</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-bagdogra.htm" title="Packages in Bagdogra">Bagdogra</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-alipurduar.htm" title="Packages in Alipurduar">Alipurduar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-yumthang.htm" title="Packages in Yumthang">Yumthang</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="http://www.mangaldeeptravels.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(72)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.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="http://www.mangaldeeptravels.in/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(4)</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, Pelling</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='http://www.mangaldeeptravels.in/tour-packages/short-escapeto-gangtok-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_11/326833/98660.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="http://www.mangaldeeptravels.in/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_50404" id="pkg_50404" method="post" action="http://www.mangaldeeptravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.mangaldeeptravels.in/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="50404"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.mangaldeeptravels.in/tour-packages/darjeeling7-days-tour1.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_11/326833/120139.jpg"  alt="Darjeeling 7 days Tour" title="Darjeeling 7 days Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.mangaldeeptravels.in/tour-packages/darjeeling7-days-tour1.htm" title="Darjeeling 7 days Tour"><h3>Darjeeling 7 Days 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> :  Gangtok, Darjeeling</p>
															<div class="mt10px small">
							<form name="pkg_64949" id="pkg_64949" method="post" action="http://www.mangaldeeptravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.mangaldeeptravels.in/tour-packages/darjeeling7-days-tour1.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Darjeeling 7 days 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="64949"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.mangaldeeptravels.in/tour-packages/darjeeling-gangtok-pelling-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_11/326833/188826.jpg"  alt="Darjeeling Gangtok Pelling Tour" title="Darjeeling Gangtok Pelling Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.mangaldeeptravels.in/tour-packages/darjeeling-gangtok-pelling-tour.htm" title="Darjeeling Gangtok Pelling Tour"><h3>Darjeeling Gangtok Pelling 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> :  Gangtok, Darjeeling, Pelling</p>
															<div class="mt10px small">
							<form name="pkg_115879" id="pkg_115879" method="post" action="http://www.mangaldeeptravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.mangaldeeptravels.in/tour-packages/darjeeling-gangtok-pelling-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Darjeeling Gangtok Pelling 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="115879"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.mangaldeeptravels.in/tour-packages/north-sikkim-tour-winter-special.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_11/326833/98664.jpg"  alt="North Sikkim Tour (Winter Special)" title="North Sikkim Tour (Winter Special)"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.mangaldeeptravels.in/tour-packages/north-sikkim-tour-winter-special.htm" title="North Sikkim Tour (Winter Special)"><h3>North Sikkim Tour (winter Special)</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, North Sikkim</p>
															<div class="mt10px small">
							<form name="pkg_50408" id="pkg_50408" method="post" action="http://www.mangaldeeptravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.mangaldeeptravels.in/tour-packages/north-sikkim-tour-winter-special.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="North Sikkim Tour (Winter Special) - 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="50408"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.mangaldeeptravels.in/tour-packages/kalimpong-gangtok-darjeeling-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_11/326833/99916.jpg"  alt="Kalimpong - Gangtok - Darjeeling Tour" title="Kalimpong - Gangtok - Darjeeling Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.mangaldeeptravels.in/tour-packages/kalimpong-gangtok-darjeeling-tour.htm" title="Kalimpong - Gangtok - Darjeeling Tour"><h3>Kalimpong - Gangtok - 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> : 
								7 Nights / 8 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok, Darjeeling, Kalimpong, Mirik</p>
															<div class="mt10px small">
							<form name="pkg_50835" id="pkg_50835" method="post" action="http://www.mangaldeeptravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.mangaldeeptravels.in/tour-packages/kalimpong-gangtok-darjeeling-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Kalimpong - Gangtok - 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="50835"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.mangaldeeptravels.in/tour-packages/north-east-panorama-with-pelling-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_11/326833/99910.jpg"  alt="North East Panorama With Pelling Tour" title="North East Panorama With Pelling Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.mangaldeeptravels.in/tour-packages/north-east-panorama-with-pelling-tour.htm" title="North East Panorama With Pelling Tour"><h3>North East Panorama With Pelling 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> : 
								7 Nights / 8 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok, Darjeeling, Kalimpong, Pelling</p>
															<div class="mt10px small">
							<form name="pkg_50829" id="pkg_50829" method="post" action="http://www.mangaldeeptravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.mangaldeeptravels.in/tour-packages/north-east-panorama-with-pelling-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="North East Panorama With Pelling 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="50829"/>
							</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:74:"Book Darjeeling - Pelling - Gangtok Tour - 6 Nights / 7 Days Tour Packages";i:2;s:140:"book darjeeling - pelling - gangtok tour - 6 nights / 7 days tour packages, valley tour packages, gangtok, darjeeling, pelling tour packages";i:3;s:190:"Book Darjeeling - Pelling - Gangtok Tour - 6 Nights / 7 Days tour packages from Mangaldeep Travels - Get attractive 6 Nights / 7 Days Valley  tour packages for  Gangtok, Darjeeling, Pelling.";i:4;s:435:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling, Pelling"        
		                 },
		      "description": "",
		      "name": "Darjeeling - Pelling - Gangtok Tour",
		      "telephone": "+91-9933873291"
		    }
		    </script>
			";i:5;N;}