a:6:{i:0;s:12445:"				<div class="h1"><h1>Darjeeling Gangtok Tour (Winter Special)</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.wenstravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.wenstravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Darjeeling Gangtok Tour (Winter Special)</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Gangtok, Darjeeling</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.wenstravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling Gangtok Tour (Winter Special) - 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="52494"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_9/267703/102827.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_9/267703/102827.jpg"  width="150" height="150"    alt="Darjeeling Gangtok Tour (Winter Special)" title="Darjeeling Gangtok Tour (Winter Special)" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
											<div class="headHr">
			            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
			            </div>
			            
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 1:</b> Arival in Darjeeling
								</p>
								<p class="aj">An IHPL representative will receive you at the New Jalpaiguri Railway Station/Bagdogra airport. From here, our representative will be assisting in your further journey to Darjeeling, which is around 68 km away. Located at an average height of 6700 ft, Darjeeling is a beautiful hill station that is famous for its scenic Himalayan trenches and sprawling tea estates.<br />
<br />
Here you also have the luxury of exploring its breathtaking beauty on a vintage train, which is famous as toy train. After an hour and forty minutes, you would be entering the mesmerizing surroundings of Darjeeling. Make a Check in to the hotel, relax for a while. Rest of the day would be free, so you can spend it at leisure or choose to walk out to the local market or a shopping mall. Overnight stay at 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> Sightseeing in Darjeeling
								</p>
								<p class="aj">Start your day fresh with a mountain trip to Tiger Hill. Being the highest point of Darjeeling, Tiger Hill offers some of the best sights of the Himalayas, which are apt to be visited early in the morning. Imagine yourself standing in front of the mighty Kanchenjunga peak, the snow clad peaks of which are turning golden due to the rising sun. This panoramic view is the best introduction of Tiger Hill. In order to catch this breathtaking sight, leave early from your hotel. The magnificent hill is around 11 km from the town of Darjeeling.<br />
<br />
As you climb down the hill, you would be embarking on a visit to the incredible Ghoom monastery and Batasia Loop. One of the oldest Tibetan Buddhist monasteries in Darjeeling, Ghoom monastery is about 7 Km from the town and is famous for its huge statue of Lord Buddha. Post that, drive back to your hotel for a hearty breakfast. Rest of the day is scheduled for visiting major attractions inside the town.<br />
<br />
First on the list would be Himalayan Mountaineering Institute, followed by Lebong race course, Peace Pagoda, Tibetan Refugee Self Help Center, Tensing-Gumbo rock, rope way and Parmesan Nadia Himalayan Zoological park, which houses the rare Snow leopard and Tibetan wolf. You also would be getting a chance to visit the lush green tea estates, which the town is so proud of. As you would be done with all the sightseeing, head back to the comfort of your hotel for an 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 3:</b> Drive to Gangtok
								</p>
								<p class="aj">Post breakfast, make a check out from your hotel and head to Gangtok, a mystical hill station in the Himalayas of the North-East. Located in the eastern Himalayan range, Gangtok has an amazing blend of nature and religion. Amidst dense forests and Himalayan peaks, lies the quaint hill station of Gangtok, which is dotted with several colorful monasteries.<br />
<br />
The drive to Gangtok takes around 2 hrs and 23 mins. Thus, you would be having ample time to relax in your hotel. You can even utilize time to explore the nearby attractions, which are at walking distance. This would be followed by an overnight stay in your hotel in Gangtok.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 4:</b> Sightseeing in Gangtok
								</p>
								<p class="aj">Once you are done with the breakfast, the IHPL tour representative will be guiding you to the sightseeing tour of Gangtok. With the maiden visit to Enchey and Rumtek monastery, Gangtok tour starts on a spiritual note. Both the Enchey and Rumtek are amongst the most significant of the monasteries located in Gangtok.<br />
<br />
The former is located at a distance of around 3 km from Gangtok. The legendary monastery is believed to be constructed 200 years back, and today it marks an important seat of Nyingma order of Tibetan Buddhism. On the contrary, Rumtek monastery is open to every kind of a Buddhist. Little older than Enchey, Rumtek monastery houses relics of the 16th Karmapa.<br />
<br />
Post that, you would be visiting the Research Institute of Tibetology, Directorate of Handicrafts and Hand looms, Chorten and Orchid sanctuary. By evening, you will be back in your hotel. Call it a day and spend the night at leisure.</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> Excursions from Gangtok
								</p>
								<p class="aj">Day of our exclusive Darjeeling-Gangtok tour is dedicated to excursions from Gangtok. Under this, you would be heading towards the very popular Tsomgo lake and Baba Mandir. Tsomgo is a glacial lake, which is around 38 km from the town of Gangtok. Scaling the Gangtok-Nathula highway, which goes through rugged mountain terrains and cliffs, you would be reaching the beautiful Sikkimese lake. This will take around an hour.<br />
<br />
The lake is famous for its scenic and tranquil beauty which makes it a peaceful outing place. Besides its beauty, Tsomgo lake also holds a sacred status. Right on the banks, lies a temple of Lord Shiva, which adds to the divinity of the region. After spending a wonderful time at the breathtaking Tsomgo lake, you will start your journey to Baba Harbhajan Singh Mandir, which is located nearby. Unlike the other shrines in Sikkim, which are dedicated to some deity or religious concept, Baba Mandir commemorates an army martyr, Major Harbhajan Singh.<br />
<br />
The shrine has a lot of significance for the locals as well as the personnels of Indian army posted in the region. Major Harbhajan Singh was an Indian army officer as well as a saint. Army personnels believe that the spirit of him protects them in every situation and owing to this belief, they dedicated a shrine to him. The shrine is nestled at an altitude of around 4000 mtrs, high up in the hills.<br />
<br />
Post that, you would be driven back to your hotel for your overnight stay in Gangtok. Evenings would be free, so you can utilize the last of your moments in Gangtok, strolling around the nearby streets and market. MG road mall in the vicinity would be a nice option.</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> Journey back home
								</p>
								<p class="aj">Pack your bags and post breakfast, check out from the hotel and Gangtok. You would be transferred to the New Jalpaiguri railway station/Bagdogra airport for your journey back home. This marks the end of our Darjeeling-Gangtok tour.</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
																		<li>Sightseeing</li>
															</ul>
						<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount * Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount. * Retention Amount varies as per the number of days left before your package start date. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.wenstravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling Gangtok Tour (Winter Special) - 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="52494"/>
						</form>
						</div>
						
						";i:1;s:79:"Book Darjeeling Gangtok Tour (Winter Special) - 5 Nights / 6 Days Tour Packages";i:2;s:136:"book darjeeling gangtok tour (winter special) - 5 nights / 6 days tour packages, valley tour packages, gangtok, darjeeling tour packages";i:3;s:168:"Sprasad Travels offers Darjeeling Gangtok Tour (Winter Special) - 5 Nights / 6 Days tour package, budget Valley tour packages for Gangtok, Darjeeling at exciting price.";i:4;s:431:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling"        
		                 },
		      "description": "",
		      "name": "Darjeeling Gangtok Tour (Winter Special)",
		      "telephone": "+91-9439123510"
		    }
		    </script>
			";i:5;N;}