a:6:{i:0;s:17779:"				<div class="h1"><h1>North East Panorama 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 Panorama 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">
						7 Nights / 8 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 Panorama 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="95149"/>
						</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/161859.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/465683/161859.jpg"  width="150" height="150"    alt="North East Panorama With Pelling Tour" title="North East Panorama 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 and Transfer to Darjeeling
								</p>
								<p class="aj">On reaching Bagdogra Airport (69 km away from Darjeeling)/ New Jalpaiguri Railway Station (68 km) / Tenzing Norgay Bus Stand (62 km), meet our tour representative who helps you with an assisted transfer to Darjeeling.<br />
<br />
Placed at an elevation of 7100 m above sea level, Darjeeling is known for offering spectacular views of verdant aromatic tea gardens and the strong Himalayan Mountains. This serene hill town also boasts of housing the UNESCO World Heritage Site of the Darjeeling Himalayan Railway, which is popular as the toy train. The tranquil surroundings and the various attractions allure travelers from all around.<br />
<br />
After arriving in Darjeeling, check-in at the hotel. You can relax for some time. Thereafter, the evening is at leisure; spend it as per your liking. Take a stroll at the Mall road or visit the popular shopping centers to get your hands on some nice handicrafts etc. Stay overnight.</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 Sightseeing
								</p>
								<p class="aj">Day 2 starts very early. Leave the bed around 3:45 AM to enjoy a drive up the Tiger Hill for having a memorable sunrise view (subject to clear weather), 11 km away from the city. On returning back, explore the other attractions of Darjeeling including Ghoom Monastery, War Memorial and Batasia Loop. Once at the hotel have breakfast. After breakfast, begin the second leg of your sightseeing that take you to Padmaja Naidu Zoological Park, Himalayan Mountaineering Institute (Closed on Thursday), Ropeway, Tibetan Refugee Self Help Center (Closed on Sunday), Tea Estate, Natural History Museum (Sunday Closed) and Peace Pagoda.<br />
<br />
Sunrise view at the Tiger Hill over the Kanchendzonga Peak is a must if you are on your tour to Darjeeling. When the sun rays of the rising sun radiate its light on the Peak, it forms a stunning view for the on-looker. The sun rising from behind the hill looks like an orange ball. The lofty Tiger hill stands amid dense oak forests and the road route from the city to the hill is very refreshing during the wee hours of the morning.<br />
<br />
Opened for visitors in November 1992, Peace Pagoda – placed on Jalaphar hill slopes is an important attraction of Darjeeling. This is a sanctified spot that consists of 4 avatars of Lords Buddha. This white-colored Pagoda is the tallest free-standing structure here and has 2 concrete lion structure on both the sides of the wall of the lower level. The statues of the presiding deity are carved in the wall and are golden in color. To treat your eyes to the beautiful views of the surroundings, climb the stairs to reach the top. As you make a round of the huge dome-like structure (take Parikrama), notice the Buddha statues in different postures.<br />
<br />
The Cable Ride of Darjeeling takes you to the gorgeous Rangit Valley. While aboard the cable car, enjoy stunning views of the lush landscape with tea estates and the snow-capped peaks. Do visit the flourishing verdant tea gardens- the sight will refresh you while the fresh aroma fills in your nostrils.<br />
<br />
Located in the well-maintained garden at the Batasia Loop, the Gorkha War Memorial has been constructed in the memory of the Gorkha soldiers who had sacrificed their lives in the battles to protect their country. If you opt for a toy train ride around the Batasia Loop, which is located at a high altitude, you can enjoy a 360 degree view of the landscape.<br />
<br />
The evening is free. Stay overnight.</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> Darjeeling- Kalimpong (49 km- 1hr 40 min) (sightseeing)
								</p>
								<p class="aj">Have your breakfast and complete the check-out formalities. Get an assisted transfer to Kalimpong.<br />
<br />
Perched at an altitude of 1243 m above the sea level, Kalimpong lies on the foothills of the Himalayas and is one of the most enchanting tourist destinations. Friendly locals, colonial structures, bustling market, Buddhist monasteries and beautiful views of the Himalayas attract tourists every year in decent numbers.<br />
<br />
On arrival, check-in at the hotel. After settling in, proceed for sightseeing. The list of attractions in Kalimpong include Forest Museum (Closed On Thursday), Deolo Hill, Hanuman Mandir- a temple with a huge Hanumana state that is built near Durga temple, Dr Graham Homes, Durpin Monastery, Mangal Dham- a temple complex with temples dedicated to Lord Krishna and late Guru Mangal Das, Pine View Nurseries (Cactus Only) .<br />
<br />
Placed on Durpin hill (1372 m), Durpin Gompa is the largest monastery of Kalimpong that is formally known as Zangtok Pelri Phodang. Dalai Lama had consecrated the monastery in 1976. Around 5 km southwards of the main town, the monastery has a prayer hall with striking religious murals. From the terrace of the Gompa, enjoy nice views of Khangchendzonga. Dr Graham Homes is a school and an orphanage started by a Scottish missionary, Dr JA Graham in 1900 so that you could co-educate the kids of tea-estates workers. The school has a Scottish architecture and there a museum too within the premises. Other attraction Deolo hill has viewpoints offering panoramic views of Durpin hill, the town and the Kanchenjunga. There is verdant green park here with colorful flowers. Kids can enjoy pony rides here.<br />
<br />
In the evening back to the hotel. 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> Kalimpong- Pelling (92 km- 2 hours)
								</p>
								<p class="aj">Today, get transferred to Pelling via Jorethang. The road from here offers clear views of the bordering Himalayan ranges such as Mount Kumbhakarna, Pandim, Khangchendzonga, Shimbho, Zopuno, Khangchendzonga, Narsing and more. Halt at beautiful points on the road to click memorable photographs.<br />
<br />
Lying at an altitude of 7200 feet above the sea level, Pelling is one of the most popular tourist destinations of Sikkim. Boasting of zoological and botanical richness, Pelling is home to colorful exotic flower like Orchids and Rhododendron, has small trekking routes and a few popular historical sites.<br />
<br />
As you arrive in Pelling, complete the check-in formalities at the hotel. You can relax in the afternoon. The evening is at leisure. If you wish you can take a stroll around the small village settlement around the town and interact with the locals. Stay overnight in Pelling.</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> Pelling Sightseeing
								</p>
								<p class="aj">The day is scheduled for full day sightseeing post breakfast. Visit the main attractions of Pelling Rimbi waterfalls (12 km) - a nice place to indulge in activities like swimming and fishing, Rimbi Rock Garden- a picnic spot with recreation amenities and a nice set-up, Khecheopalri Lake- a holy Buddhist lake known to fulfill people’s wishes, Rabdantse ruins- the views from of the Kanchendzonga ranges are mesmerizing.<br />
<br />
Other attractions include Khecheopalri Monastery- located in village near the Khecheopalri Lake, this is a small Buddhist monastery, Kanchenjunga waterfalls (28 km)- falling near a sharp curve on the side of the road, these waterfalls are huge in size and can be visited all round the year in west Sikkim and Pemayangtse Monastery- (2 km)- belonging to Ngingma sect of Tibbetan Buddhism, this Gompa is the second oldest monastery in Sikkim and was established in 1705 by Lama Lhatsun Chempoway. Standing on a hill with an elevation of 2085 m, this monastery offers nice views of the surroundings.<br />
<br />
The evening is free for you to roam around the helipad- placed at a high altitude; it offers nice scenic views or you can also visit the popular shopping center to collect souvenirs. Stay overnight.</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> Pelling- Gangtok (116 km- 2 hrs 30 min) (sightseeing)
								</p>
								<p class="aj">Post morning breakfast, get transferred to Gangtok. Standing at an above sea level 1600 meters above the sea level, Gangtok is a serene hill town, famed for its Buddhist monasteries, abundant lush scenery and a pleasant climate. One of the most popular tourist destinations in north-east India, Gangtok boasts of several of viewpoints, offering mesmerizing views of the landscape. The place has different varieties of butterflies, Orchids and Rhododendron in abundance. After reaching, check-in is followed by sightseeing, including the popular tourist attractions of Gangtok-Directorate of Handicrafts & Handloom, Research Institute of Tibetology, Do Drul Chorten (Stupa), Enchey Monastery, White Hall and Flower Show.<br />
<br />
Built on a hillock by Late Truslshi Rimpoche, the head of Nyingma sect of Tibetan Buddhism in 1945, Do Drul Chorten is probably Sikkim’s biggest stupa that has 2 huge statues of Guru Rinpoche. The golden dome is the highlight. Spot lamas indulged in their prayers.<br />
<br />
Established in 1909, Enchey Monastery is located on a hill, offering views of Mt Kanchenjunga. Known for its Chinese-Pagoda like structure, the monastery has images of deities on the inner walls. Guru Rinpoche and Lord Buddha are worshipped here.<br />
<br />
The permanent flower show at Flower Exhibition Center is another popular attraction. Near Ride Park and White Hall, this is a place to click photographs for keeps. This exhibition area with green house effect has several floral species including celosia, gerberas, roses, orchids and more.<br />
<br />
In the evening, if time permits, visit the popular markets of Gangtok including M G Road or Lal Market. Shop for souvenirs like woolen clothes, Thangka paintings and handicraft items. 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 7:</b> A day’s trip to Tsomgo Lake and Baba Mandir
								</p>
								<p class="aj">Post breakfast, day 7 is scheduled for an excursion to Tsomgo Lake and Baba Mandir.<br />
<br />
Changu Lake or Tsomgo Lake (12,400 feet) is a glacial lake, 37 km from Gangtok. A site offering stunning site, the Lake is frequented by Brahmin ducks and other migratory birds. Kids can buy yak rides to explore the scenery and do buy Yak cheese. The banks of the Lake has Lord Shiva temple. Do not forget to click photographs here.<br />
<br />
Later, continue to Baba Harbhajan Singh Memorial War temple, 20 km from here. A temple at an elevation of 13000 feet, this shrine is originally a memorial, dedicated to a soldier Harbhajan Singh of the 23rd Punjab Regiment, who sacrificed his life in the Indo-China was of 1962. After he appeared in a colleague’s dream, the Indian Army built this structure in 1983 in his bunker that consists of his personal belongings. You can also make a wish by throwing a coin in the nearby pond.<br />
<br />
Evening is at leisure. Overnight 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 8:</b> Gangtok to Siliguri for departure (New Jalpaiguri Railway Station (119 km) / Bagdogra Airport (126 k
								</p>
								<p class="aj">After morning breakfast, get transfer to Siliguri / New Jalpaiguri Railway Station / Bagdogra Airport / Tenzing Norgay Bus Stand for your onward journey. The tour ends here.</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 Panorama 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="95149"/>
						</form>
						</div>
						
						";i:1;s:76:"Book North East Panorama With Pelling Tour - 7 Nights / 8 Days Tour Packages";i:2;s:133:"book north east panorama with pelling tour - 7 nights / 8 days tour packages, valley tour packages, gangtok, darjeeling tour packages";i:3;s:182:"Book North East Panorama With Pelling Tour - 7 Nights / 8 Days tour packages from OnyourmarksTravel - Get attractive 7 Nights / 8 Days Valley  tour packages for  Gangtok, Darjeeling.";i:4;s:428:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling"        
		                 },
		      "description": "",
		      "name": "North East Panorama With Pelling Tour",
		      "telephone": "+91-8334014211"
		    }
		    </script>
			";i:5;N;}