a:6:{i:0;s:12340:"				<div class="h1"><h1>Darjeeling Gangtok Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.jstourstravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.jstourstravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Darjeeling Gangtok Tour</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, Sikkim</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.jstourstravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling 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="65593"/>
						</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_15/434756/120827.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/434756/120827.jpg"  width="150" height="150"    alt="Darjeeling Gangtok Tour" title="Darjeeling Gangtok Tour" /></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> Arrival in Darjeeling
								</p>
								<p class="aj">We 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 />
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 infront 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, ropeway 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 Handlooms, 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 5 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.jstourstravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling 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="65593"/>
						</form>
						</div>
						
						";i:1;s:62:"Book Darjeeling Gangtok Tour - 5 Nights / 6 Days Tour Packages";i:2;s:135:"book darjeeling gangtok tour - 5 nights / 6 days tour packages, lakes & rivers tour packages, gangtok, darjeeling, sikkim tour packages";i:3;s:172:"Js Tours and Travels offers Darjeeling Gangtok Tour - 5 Nights / 6 Days tour package, budget Lakes & Rivers tour packages for Gangtok, Darjeeling, Sikkim at exciting price.";i:4;s:422:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling, Sikkim"        
		                 },
		      "description": "",
		      "name": "Darjeeling Gangtok Tour",
		      "telephone": "+91-9227522144"
		    }
		    </script>
			";i:5;N;}