a:6:{i:0;s:15670:"				<div class="h1"><h1>Darjeeling Gangtok Honeymoon Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.holidayss.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.holidayss.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Darjeeling Gangtok Honeymoon 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">
						6 Nights / 7 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.holidayss.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling Gangtok Honeymoon 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="103373"/>
						</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_17/492417/172848.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/492417/172848.jpg"  width="150" height="150"    alt="Darjeeling Gangtok Honeymoon Tour" title="Darjeeling Gangtok Honeymoon 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 and Transfer to Darjeeling
								</p>
								<p class="aj">As soon as you reach, New Jalpaiguri Railway Station (70.3 km) / Bagdogra Airport (65.3 km) / Tenzing Norgay Bus Stand (61.9 km), our representative will meet and assist while you take a transfer.

Resting in the foothills of the Himalayas, Darjeeling is a tantalizing hill-town, which magnetizes tourists from all over the world. The destination is renowned for World Heritage Train, which has been affirmed a World Heritage Site by UNESCO. Take pleasure in the spectacular sights of the Himalayas, pay respects at alluring monasteries and experience natural charm at its best. Darjeeling is the ultimate destination if you wish to spend some private time away from the bustling noises of cities.

After arriving to Darjeeling, check-in to the guesthouse. After sundown, walk around the mall or the local market place. Stay overnight 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> Darjeeling Local Sight Seeing (Half Day)
								</p>
								<p class="aj">Kickstart the day early and head towards the Tiger Hill. Situated at a distance of 11 km from Darjeeling, Tiger Hill is popular as it offers enchanting views of the Kanchenjunga peaks. Get mesmerized a sunrise like never before. As the sun rays fall on the peaks, you get to witness a flawless view.

The loftiest point of Darjeeling, Tiger Hill is a grand location if you desire to chum around with your partner amid serenity. The spot is also regarded ideal for ventures like trekking and hiking. After enjoying a mesmerizing sunrise, depart for Darjeeling. While returning, visit attractions like Ghoom Monastery, Batasia Loop and War Memorial. 

Pay obeisance to Maitreya Buddha at Ghoom Monastery. Also recognized as Yogachoeling Gompa, Ghoom Monastery is built in a place called Ghoom in Darjeeling. The Gompa was erected back in the year 1875 and it houses a number of bells, ornate thanka scrolls and drums.

War Memorial stands in the Batasia Loop Garden. The memorial was built to commemorate the Gorkha soldiers who were martyred during wars and operations post independence.

Batasia Loop is a notable tourist destination in Darjeeling. It is the location from where the popular toy train of Darjeeling passes in a loop like pattern. Also, the place offers mesmerizing views of the Himalayas. Enjoy some time close to natural world with your beloved and take back some great reminiscences.

Shortly after arriving back to the hotel, savor your morning supper and then depart for sightseeing. Your half-day sightseeing trip includes visit to Padmaja Naidu Zoological Park, Himalayan Mountaineering Institute (Closed on Thursday), Ropeway, Tensing and Gombu Rock, Tibetan Refugee Self Help Center (Closed on Sunday), Tea Estate, Natural History Museum (Sunday Closed) and Peace Pagoda.

Commence with a visit to Peace Pagoda. Peace Pagoda was positioned to unite people of all castes and creeds. It aims to extend harmony and success in the humankind. The Pagoda displays four diverse avatars of Buddha, including that of Maitreya Buddha.

Don’t miss visiting tea plantations when in Darjeeling. Take a stroll through the tea plantations and get to find out about the entire tea processing.

Cable car is another key visitor’s attraction of Darjeeling. Enjoy fabulous views of snow-capped peaks, thick woods and verdant meadows from the cable car ride. Relish some special moments with your other half.

Later, return to the hotel. Evening is at leisure for strolling around the mall or Chowk Bazaar. 

Have a cozy night stay in 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 3:</b> Excursion to Mirik (Full Day)
								</p>
								<p class="aj">Shortly after munching your breakfast, leave for your full day jaunt to Mirik. En-route, enjoy the ensnaring sights and capture some of them on camera.

Set at an altitude of 1,495 m, Mirik is a destination well-known for its scenic prettiness. The location of the place is unblemished, and if you wish, you can unwind and rejuvenate away from the crowded cities. Covered by pine forests, Mirik attracts nature lovers across worldwide.

Sumendu Lake is the star-studded highlight of Mirik. This tranquil lake is well-known for its tea gardens, cardamom groves and orchards. Take a stroll by the lake and relish the fantastic views of the Himalayas with your spouse. Enjoy activities like boating and horse riding.

While returning to Darjeeling, embark a jaunt to the popular Pashupati Market and shop for some imported items like clothes and cosmetics. After sundown, go for a stroll around the guesthouse or local market area. Retire for the night at Darjeeling.</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> Transfer to Gangtok
								</p>
								<p class="aj">This morning, munch your breakfast and then leave for your subsequent destination, Gangtok.

Around 97 km from Darjeeling, Gangtok is the capital of the state Sikkim and a renowned tourist destination. Revered monasteries, enchanting gardens, pleasing weather, this destination has all what you require for a flawless vacay with your betrothed. The multi-hued ambience of the place is so pretty that it makes you come back again and again. Gangtok is also known as the abode of monasteries because it houses multiple monasteries like Enchey Monastery, Rumtek Monastery and Do- Drul Chorten. The location is a haven for adventure buffs as it offers a number of activities like trekking and hiking.

On reaching, check-in to the guesthouse. Go for a long walk around M G Road (Mall) and enjoy the soothing weather of the place. Relax overnight at 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 5:</b> Gangtok Local Sight Seeing (Full Day)
								</p>
								<p class="aj">Savor a lip-smacking breakfast and then depart for your Gangtok city jaunt. This city trip covers chief destinations of Gangtok. Catch a glimpse of  attractions like Enchey Monastery, Ganesh Tok, Directorate of Handicrafts & Handloom, Research Institute of Tibetology, Rumtek Monastery, Do Drul Chorten (Stupa), Flower Show, Hanuman Tok, Tashi View Point and Banjhakri Falls.

Directorate of Handicrafts & Handloom is a government-commissioned which deserves a visit from every art admirer. The place conserves traditional arts and handicrafts of Sikkim. Here you can shop for items like carved wooden handicrafts, woven blankets, shawls and more.

One of the venerated places of worship in Gangtok, Enchey Monastery was established back in the year 1909. It is said that the location of the monastery was sanctified by Lama Drupthob Karpo, who was a maven in a tantric art of Buddhism. Also, it is assumed that protecting deities- Khangchendzonga and Yabdean dwell in the monastery. The monastery also offers mesmerizing views of Mount Kanchenjunga.

Do- drul Chorten Stupa is one of the biggest Stupas in Sikkim state. The structural design of the stupa is so convoluted and mesmerizing, that it promises to leave every visitor awe-struck. One can find holy texts and many other pious objects inside the stupa.

Banjhakri Falls is a key place of concern in Gangtok. The attraction is noted for its scenic prettiness and deserves a visit from all tourists traveling to Gangtok. Stairwells and tantalizing sculptures enhance the charm of the place and make it more captivating.

After sightseeing at all these attractions, return to the guesthouse. After sundown, visit the mall or the local shopping center of Gangtok. Experience the nightlife of Gangtok with a visit to any of its popular taverns.

Retire for the night at 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 6:</b> Excursion to Tsomgo Lake & Baba Mandir (Full Day)
								</p>
								<p class="aj">Soon after savoring your breakfast, leave for daytime excursion to Baba Mandir and Tsomgo Lake.

Set at a distance of around 39 km from Gangtok, Tsomgo Lake is a sacred lake which is revered by Sikkimese. The exquisiteness of the lake lies in its picturesque and tranquil milieu. There is a small shrine dedicated to Lord Shiva built on the lake side. Tsomgo Lake is an abode to Brahmini ducks and distinguished migratory birds. The scenic location of the lake makes it perfect for chumming around with your beloved.

Baba Mandir is a sacred shrine, dedicated to Indian Army Soldier, Harbhajan Singh who was martyred near Nathula Pass. It is said that after his demise, he appeared in the dreams of many soldiers and told them to build a shrine to commemorate him. Also, it is assumed that Harbhajan Singh is still ‘on-duty’ and he visits every night, puts on his uniform and goes for his rounds. Baba Harbhajan Singh is revered as a sage to safeguard the lives of the soldiers posted on the borders. People believe that the shrine of Harbhajan Singh has spiritual vibes and they visit from all over to get blessed by the soldier.

There is also an option of visiting Nathula Pass. After this hectic excursion, head back to Gangtok. Visit M G Road (Mall) or local shopping center in the evening. Loosen up yourself for an overnight stay 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 7:</b> Departure – Gangtok to Siliguri
								</p>
								<p class="aj">Shortly after munching the morning feast, leave for Siliguri / New Jalpaiguri Railway Station (119 km) / Bagdogra Airport (126 km) / Tenzing Norgay Bus Stand (113 km). On arrival, bid adieu for your onward journey.</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.holidayss.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling Gangtok Honeymoon 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="103373"/>
						</form>
						</div>
						
						";i:1;s:72:"Book Darjeeling Gangtok Honeymoon Tour - 6 Nights / 7 Days Tour Packages";i:2;s:131:"book darjeeling gangtok honeymoon tour - 6 nights / 7 days tour packages, climbing tour packages, gangtok, darjeeling tour packages";i:3;s:176:"Book Darjeeling Gangtok Honeymoon Tour - 6 Nights / 7 Days tour packages from The Holidayss - Get attractive 6 Nights / 7 Days Climbing  tour packages for  Gangtok, Darjeeling.";i:4;s:424:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling"        
		                 },
		      "description": "",
		      "name": "Darjeeling Gangtok Honeymoon Tour",
		      "telephone": "+91-7010402069"
		    }
		    </script>
			";i:5;N;}