a:6:{i:0;s:17467:"				<div class="h1"><h1>North East Delight with Pelling 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>North East Delight with Pelling 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.onyourmarkstravel.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="North East Delight with Pelling 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="95144"/>
						</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/161853.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/465683/161853.jpg"  width="150" height="150"    alt="North East Delight with Pelling Tour" title="North East Delight with Pelling 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">Your journey to the wonderful northeastern gateways will start as you reach the New Jalpaiguri Station or Bagdogra airport in West Bengal. From here, our tour representative will be escorting you to your onward journey to Darjeeling, which is an alluring hill station In the Indian state of West Bengal.<br />
<br />
Positioned at the northern part of West Bengal, Darjeeling has snow clad Himalayan peaks and dense forests lined up all around it. Drive to Darjeeling is likely to take nearly 1 hr and 40 mins. On entering the region of Darjeeling, you would be welcomed by lush green tea plantations, which have been the true face of the hill station. Besides these, Darjeeling has a lot to offer, like the panoramic mountain views, which will leave you spellbound.<br />
<br />
On your arrival in Darjeeling, you would be checking into a pre-booked 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 2:</b> Sightseeing in Darjeeling
								</p>
								<p class="aj">Visit the magnificent Tiger Hill the first thing in the morning. The reason behind its early visit is the view of the morning sun glistening the lofty snow clad peaks of Kanchenjunga.<br />
<br />
Tiger Hill is one of the most popular tourist attractions in Darjeeling, that have found their address 11 km from the town of Darjeeling. Not just Kanchenjunga, if you are lucky, you can even watch the head of the highest peak in the world, Mt Everest turning all golden by the sun. On your way back to hotel, you would be visiting Ghoom monastery and Batasia Loop. Like the Tiger Hill, these two also hold a great amount of significance.<br />
<br />
Just 7 km short from the town of Darjeeling, lies the famous Ghoom monastery. Belonging to the Gelupka sect of Buddhism, the monastery has a 15 ft statue of Lord Buddha as one of its main attractions, which is known as Maitreya Buddha. Besides the Maitreya Buddha, the monastery also houses idols of other Buddhist deities as well. This includes the likes of Buddha of Compassion and Tsongkhapa.<br />
<br />
Another prominent attraction to visit in the early hours of the day is Batasia Loop, which is a fascinating railway track loop. To watch this, you would be boarding the world renowned and vintage toy train of Darjeeling. From the loop, you can have a whole view of the lovely landscapes of Darjeeling, plus the flowery garden on which the loop is encircled, adds on to the charm of Batasia loop.<br />
<br />
Post these visits, head back to your hotel for a sumptuous breakfast. The other half of the day is meant to cover other attractions of Darjeeling. Under this, you would be visiting the Padmaja Naidu Himalayan Zoological Park, Himalayan Mountaineering Institute, Tibetan Refugee Self Help Center (closed on Sunday), Tea Garden and Ropeway.<br />
<br />
There is also a Peace Pagoda located in the town of Darjeeling, which also would be covered in our sightseeing trip. With the aim of creating peace all around, the Peace Pagoda or Stupa invites people of all castes, creeds and religion to visit the place and develop mutual harmony for each other. It is popular as Japanese Peace Pagoda in Darjeeling. 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 3:</b> Transfer to Kalimpong & Sightseeing at Kalimpong -
								</p>
								<p class="aj">As soon as you are done with your breakfast, embark on a journey to Kalimpong, which is another famous hill station in the state of West Bengal. Kalimpong resides at an elevation of around 1200 meters and the main town is on a ridge area connecting two hills. Owing to its magnificent Himalayan beauty and invigorating climate, the place is no less than a paradise.<br />
<br />
After a journey of 1 hr and 40 mins, you would be arriving at Kalimpong. As you arrive, you would be quickly heading to a sightseeing tour of Kalimpong. Under this, you would be visiting Deolo hill, Teesta valley, Pine View Point, Orchid, Golf Club and Dr Graham’s Homes School.<br />
<br />
Amongst them, Deolo hill holds quite prominence. As mentioned earlier, Kalimpong lies on a ridge between two hills, Deolo hill is one of them. Situated at an elevation of around 1700 meters, Deolo hill is the highest point of the hill station. Owing to the location of the hill, you can have an enchanting view of the whole town of Kalimpong, the nearby Relli valley and the bloodline of Kalimpong, the beautiful Teesta river. Once you reach the top of the hill, you would be welcomed with a park of exotic flowers.<br />
<br />
Besides these attractions, our tour representative will also make you visit the scared Durpin hill and Durpin monastery, which is around 5 km from the main town of Kalimpong. After this, call it a day and make a check in to a pre-booked 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 4:</b> Transfer to Pelling & Sightseeing at Pelling
								</p>
								<p class="aj">Post breakfast, bid goodbye to Kalimpong and make your way to Pelling, which is a prominent hill station in the western part of Sikkim. Situated at an altitude of around 2100 meters, Pelling is known for its natural splendor and tranquility. Unspoiled and covered with dense alpine vegetation, waterfalls after every couple of miles and the sight of the greater Himalayas and Kanchenjunga overshadowing the valley, the town is perfect to wind up in the lap of nature.<br />
<br />
Journey to Pelling from Kalimpong is likely to take 2 hours and as you arrive in this serene paradise, you would be embarking on a sightseeing trip to the numerous attractions or jewels that the town feels proud of. Amongst them, the most prominent ones include Kanchenjunga falls and Rimbi waterfalls. At first, you would be heading to Rimbi waterfalls, which is around 12 kms from Pelling. Rimbi waterfalls are situated right at the banks of Rimbi river and are remarkable to watch.<br />
<br />
Moving ahead from these falls are the king size Kanchenjunga falls. Situated around 28 km from the main town of Pelling and named after the mighty Kanchenjunga mountain, Kanchenjunga falls is renowned for its grandeur and beauty. The existence of this splendid waterfall largely remained unknown until the mid 90s, when a local tour operator accidentally discovered it at a sharp curve on the roadside. The place is ideal for picnicking with family and friends. Thus, you can have a nice time relaxing near the gushing Kanchenjunga falls.<br />
<br />
Other attractions that you will be surely visiting in Pelling including Kecheopalri lake and Rimbi rock garden which lies in close vicinity of the majestic falls. Also visit Sinsore Bridge –Asia's 2nd Highest Bridge, Post all the sightseeing, return to the town of Pelling and make a check in to the 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 5:</b> Gangtok Local Sight Seeing (Full Day)
								</p>
								<p class="aj">Day 5 of our exclusive tour is dedicated to tasting the flavors of the Himalayan town of Gangtok. Nestled in the Shivalik hills of the Himalayas, close to the Buddhist country of Bhutan, Gangtok is blessed with a mystical blend of natural beauty and Buddhism. Owing to this, Gangtok is dotted with several Buddhist monasteries that are believed to be quite ancient. Drive from Pelling to Gangtok is roughly going to take 2 hrs and 30 mins and as you arrive in Gangtok, you would be embarked on a sightseeing trip.<br />
<br />
Sightseeing in Gangtok includes the very famous Rumtek monastery, which is also the largest of its kind in the state. Serving as the an important seat of the Karmapa Lama, the monastery holds a lot of significance for the religion of Buddhism. It enshrines a golden Stupa that has relics of the ancient Karmapa in the form of statues and paintings. Make a visit here and shed all your travel tiredness in the spiritual ambience of the monastery. After Rumtek, you would be taken to Do Drul Chorten Stupa, which is one of the biggest in Sikkim. Encircled by Chorten Lhakhang and Guru Lhakhang, it boasts of two huge statues of Guru Rinpoche.<br />
<br />
As you would be done visiting the religious sects of Gangtok, head towards other attractions in the capital of the state, which include the Research Institute of Tibetology, Botanical Garden, Tashi View Point and Directorate of handicrafts and handlooms. 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 6:</b> Excursion to Tsomgo Lake & Baba Mandir (Full Day)
								</p>
								<p class="aj">Being situated in the Himalayan topography, Gangtok has various natural attractions which are filled with mystical beauty and serenity. One of them is the breathtaking Tsomgo lake which offers one of the most beautiful sights in the region. The lake is nestled at an altitude of 12,400 ft and the drive from Gangtok to it is likely to take around 1 hour to reach. Tsomgo or Changu lake is actually a glacial lake, which derives its waters from the snow capped mountains it get surrounded by. The lake is also a home of Brahmin ducks and migratory birds. Being a prominent tourist place, the banks of the lake have shops selling trinkets and Yak cheese. So you can buy some for yourself. The locals also provide for yak rides so you can have a nice time exploring the breathtaking surroundings sitting on the back of a yak. Admire the beauty of the lake and pay a visit to the Lord Shiva temple, which is located on the banks of Tsomgo Lake. We can also visit Nathu La Pass, which is the border of India and China.<br />
<br />
Post this, move towards Baba Harbhajan Singh Memorial War temple, which is 20 kms from Tsomgo Lake near Gangtok. Situated at an altitude of around 13000 feet, close to Jelep Pass, is a memorial shrine, dedicated to a soldier of the 23rd Punjab Regiment, who died in the 1962 war between India and China. As per the legend, after meeting his tragic death in the war, soldier Harbhajan Singh came in the dream of one of his peers, and asked to build a war memorial after him. Following this, Indian Army built a war memorial in order to commemorate the sacrifice of this martyr. Later on, this memorial started enjoying the privileges of a sacred shrine. The original Baba Harbhajan Singh temple was built in the year 1983 at the bunker of the late soldier. When you will visit this bunker, you will come across dresses, stationeries and pictures of the soldier. There also lies a small wishing poodle, in which you can throw a coin and make a wish.<br />
<br />
After a day full of excursion, return back to your hotel in Gangtok. Spend the evening at leisure in your hotel or do some shopping in the nearby malls and market. 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 from Gangtok to home
								</p>
								<p class="aj">This day marks the end of our exclusive Northeast tour. Post breakfast, you would be transferred to New Jalpaiguri Station/Bagdogra Airport/ Tenzing Norgay Bus Stand for your onward journey back home. These destinations are around 130 Km from Gangtok so it is advised you start early.</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="North East Delight with Pelling 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="95144"/>
						</form>
						</div>
						
						";i:1;s:75:"Book North East Delight with Pelling Tour - 6 Nights / 7 Days Tour Packages";i:2;s:132:"book north east delight with pelling tour - 6 nights / 7 days tour packages, valley tour packages, gangtok, darjeeling tour packages";i:3;s:181:"Book North East Delight with Pelling Tour - 6 Nights / 7 Days tour packages from OnyourmarksTravel - Get attractive 6 Nights / 7 Days Valley  tour packages for  Gangtok, Darjeeling.";i:4;s:427:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling"        
		                 },
		      "description": "",
		      "name": "North East Delight with Pelling Tour",
		      "telephone": "+91-8334014211"
		    }
		    </script>
			";i:5;N;}