a:6:{i:0;s:37132:"						<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">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-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 "><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 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;}