a:6:{i:0;s:17216:"				<div class="h1"><h1>North East Delight with Pelling 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>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, Kalimpong, West 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="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="67941"/>
						</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/123881.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/434756/123881.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, 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> Journey to Kalimpong / Sightseeing
								</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, Pineview Nursery, 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 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> In 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. 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
								</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.<br />
<br />
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 />
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> Excursions from Gangtok
								</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.<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.jstourstravels.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="67941"/>
						</form>
						</div>
						
						";i:1;s:75:"Book North East Delight with Pelling Tour - 6 Nights / 7 Days Tour Packages";i:2;s:156:"book north east delight with pelling tour - 6 nights / 7 days tour packages, valley tour packages, gangtok, darjeeling, kalimpong, west sikkim tour packages";i:3;s:208:"Book North East Delight with Pelling Tour - 6 Nights / 7 Days tour packages from Js Tours and Travels - Get attractive 6 Nights / 7 Days Valley  tour packages for  Gangtok, Darjeeling, Kalimpong, West Sikkim.";i:4;s:451:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling, Kalimpong, West Sikkim"        
		                 },
		      "description": "",
		      "name": "North East Delight with Pelling Tour",
		      "telephone": "+91-9227522144"
		    }
		    </script>
			";i:5;N;}