a:6:{i:0;s:12367:"				<div class="h1"><h1>Darjeeling Gangtok Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.onyourmarkstravel.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.onyourmarkstravel.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</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.onyourmarkstravel.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="95142"/>
						</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_16/465683/161851.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/465683/161851.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> Arival in Darjeeling
								</p>
								<p class="aj">Meet 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 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.onyourmarkstravel.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="95142"/>
						</form>
						</div>
						
						";i:1;s:62:"Book Darjeeling Gangtok Tour - 5 Nights / 6 Days Tour Packages";i:2;s:119:"book darjeeling gangtok tour - 5 nights / 6 days tour packages, valley tour packages, gangtok, darjeeling tour packages";i:3;s:168:"Book Darjeeling Gangtok Tour - 5 Nights / 6 Days tour packages from OnyourmarksTravel - Get attractive 5 Nights / 6 Days Valley  tour packages for  Gangtok, Darjeeling.";i:4;s:414:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling"        
		                 },
		      "description": "",
		      "name": "Darjeeling Gangtok Tour",
		      "telephone": "+91-8334014211"
		    }
		    </script>
			";i:5;N;}