a:6:{i:0;s:29297:"				<div class="h1"><h1>Goecha la Trek - Sikkim Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.himalayannavigators.in/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Goecha la Trek - Sikkim 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">
						10 Nights / 11 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Siliguri, West Sikkim, Thansing</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 15000 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.himalayannavigators.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Goecha la Trek - Sikkim 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="36644"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<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_10/292604/74284.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74284.jpg"  width="150" height="150"    alt="Trek Map" title="Trek Map" /></a></p></div></li>
																		<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_10/292604/74286.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74286.jpg"  width="150" height="150"    alt="Smiti Lake" title="Smiti Lake" /></a></p></div></li>
																		<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_10/292604/74288.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74288.jpg"  width="150" height="150"    alt="Thangsing" title="Thangsing" /></a></p></div></li>
																		<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_10/292604/74289.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74289.jpg"  width="150" height="150"    alt="Youksom" title="Youksom" /></a></p></div></li>
																		<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_10/292604/74290.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74290.jpg"  width="150" height="150"    alt="Goecha la Trek - Sikkim Tour" title="Goecha la Trek - Sikkim Tour" /></a></p></div></li>
																		<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_10/292604/74291.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74291.jpg"  width="150" height="150"    alt="Goecha la Trek - Sikkim Tour" title="Goecha la Trek - Sikkim Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Goechala Is Situated In The State Of Sikkim Which Is A Perfect Destination For Adventure Lovers. Trekking In Sikkim Is Very Different From Trekking In Any Other Part Of The Indian Himalayas. Its Unrivaled Collection Of Flora And Fauna, Add Charisma To The Adventure Of Trekking Expedition With Verdant Green Peak Trails Of Sikkim. Darjeeling Is The Doorway To Sikkim. These Base Camps Have Many Splendid Peaks Like Kanchenjunga Peak, Which Is One Of The Most Superlative And Stunning Peaks Of The Himalayan Range. The Tremendously Tough Terrains That Are Often The Preference Of The Qualified Trekkers Are On The Peak, With Snowy Crest Of The Famed Himalayas. There Are Many Peaks Like Kabru, Yokhum, Ratong Peaks Which Look Very Pretty And Gives Are Breathtaking View. They Are Located On High Altitude From Where You Can See The Lovely Sightsee Of Mountains. To The West You Can Move Forward To The Edge Of Kyangla Boundary.<br />
The Trek To Gocehala Actually Route In The Region Of The Kanchenjunga National Park That Is Open To Guests. The Trek Is Customary Which Follows A Pictorial Route Lush Flora And Magnificent Mass Views Until It Reach A High Bypass. The Route Passes Through Tropical And Coniferous Woodland And The Moist Dell Are Home To A Copious Array Of Flora And Fauna. Sikkim Is Renowned For Its Orchid'S Flowers Garland Which Mesmerize You. The Himalayan Bear, Multicolored Pheasants And A Fusion Of Birds.<br />
Goce Hala Is An Admired Trek Which Will Add Cherishable Memories. The Trek Starts From Yuksom And Through Sachen Pass, It Joins The Conventional Dzongri-Goechala Trail. The Ridge Is Really Gorgeous And Full Of Exciting Activity Whereas The Goechala Pass Is The Decisive Destination For The Magnificent Sight Of Mountain Kabru And Kanchenjunga. Next Day You Will Trail Descend Steep Forest To The Overpass On The Dzongri-Goechala Track After Walking An Hour From Then You Will Reach To Tshoka<br />
<br />
Trek Facts<br />
Grade: Hard<br />
Best Season: April To June End; September To November End. <br />
Region: Sikkim<br />
Nearest Airport: Bagdogra (Ixb) 150 Kms From Yuksom<br />
Nearest Railway Station: Njp (New Jalpaigudi) 135 Kms From Yuksom<br />
Highlight: Closest View Of Mt. Kanchenjunja (South-East Face) From Goecha La <br />
Trek Starting Point: Yuksom<br />
Trek End Point: Yuksom<br />
Duration: 10 Nights / 11 Days<br />
Total Trek (In Kilometers): <br />
Total Night Camping: 07 Nights<br />
Maximum Altitude Gained: 15750 Meters / <br />
Highest Altitude Camp: Day 05 Lamune<br />
Toughest Day Of The Trek: Exursion To Goehala From Lamune And Back To Kokhurang. <br />
Trails Type:<br />
Temperature:<br />
Mules Or Porters:<br />
Mobile Network Availability: Mobile Network Available At Yuksom And The Tsoka Campsite.<br />
Njp - Yuksom (Altitude: 5700 Feet) - Sachen (Altitude: 7200 Feet) - Tsoka (Altitude: 9650 Feet) - Dzongri (Altitude: 12980 Feet) - Thansing (Altitude: 12894 Feet) - Lamune (Altitude: 13693 Feet ) - Goechala ( 16000 Feet) - Lamune - Thansing - Kokchurang (Altitude: 13693 Feet) - Tsoka - Yuksom - NjpAny meals are not included during the sector drives as we are only providing you transportation on respective days.<br />
Any kind of personal expenses.<br />
Insurance. (Traveling or Personal).<br />
Any other services which are not mentioned in the above Inclusions.<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> Njp To Yuksom (Altitude: 5700 Time & Distance: 07-08 Hrs Drive,180 Kms)
								</p>
								<p class="aj">The Goecha la trek starts at Yuksom. Yuksom is a beautiful and peaceful gateway into the trek. Yuksom is a township in Sikkim. Rich with culture and heritage it eludes its aura. It was once the capital of Sikkim. This is a nice place for people who do not prefer the travel via busy streets of the city of Darjeeling.<br />
<br />
Also, Yuksom is the last hope for one to pick up some provisions for the trek. Yuksom plays host too many shops. So there is no requirement to stock items from Kolkata, Siliguri or Gangtok till this point.</p>					
									<p><b>Meals : </b> Dinner</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> Yuksom To Sachen (Altitude: 7200 Feet Time: 4-4½ Hrs)
								</p>
								<p class="aj">Most trekkers like to trek from Yuksom to Tshoka in a day, but the idea is insane as at the end of the trip body looses all its stamina. So you wisely break it up to two parts. The first one is your destination for your day - Sachen located at 7200 feet above the sea level.<br />
<br />
From Yuksom, the Goechala trail starts from the small huts beyond the check post you just encountered. You walk across the fields for some meters breathing in fresh air. After traveling a short distance, you come across a beautiful V shaped valley of the River Rathong.<br />
<br />
Now you enter the part of trail that runs into the forest, occasional glimpses of sunlight that will give a feel like the sun is playing hide and seek with us. Half an hour through this trail you can see shelter to your right. Walking along the moist forest covers you find the fierce Tshushay Khola falls in a series of small waterfalls joining the Perk River. Next in about 50 meter you encounter the iron bridge spanning over Tshushay Khola. Now the altitude gain is more visible.<br />
<br />
Next after an interval of about 1 hour you find a cement bridge over the Mentogang Khola River. Now you are at an altitude of 7100 feet above the sea level. Twenty minutes through you end up at your destination.<br />
<br />
Sachen is located at about 7200meters height above the sea level. You can see the log huts spanning all along the way. Along the night, you can hear the gushing waters of Perk waterfall. This calm bit of nature’s music puts you to sleep.</p>					
									<p><b>Meals : </b> All Meals</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> Sachen To Tsoka (Altitude: 9650 Feet Time & Distance: 03 - 04 Hrs Trek, 4 - 5 Kms)
								</p>
								<p class="aj">This day is going to be a main part of the Goechala trail for most of the trekkers. Everyone looks forward to this day. Like yesterday you will have to climb to a pond which will open up way to the monastery. After reaching this destination, there will be two ways, and you must lead towards the path leading right. The terrain is very steep so proper precautions must be maintained while climbing. Within minutes, you will be climbing several feet, and you can see that Tshoka is left way far behind down somewhere. There trek will be surrounded with Red Rhododendron trees all around. During the spring season, the entire slope lights up with a fiery red color making the mood around as romantic.<br />
<br />
After a stiff climb for about half an hour, the trail spreads out to a gradual climb. The trail changes to a paved one with wooden logs. It is a delight with Rhododendrons taking over the trek. Both side of the path will be covered with wooden benches giving a feel like a park With such a scenic beauty it is a bit difficult for you to neglect the steep slope which making a hard time for your legs and knees. It will give an opening to another trail full of stones and pebbles hat is supposed to be climbed quickly to reach Phedang in next 20 minutes. It is located at some 12,000 feet from the level of the sea, and this can be a perfect location where you can take some rest and have some delicious lunch. After taking a rest and regaining the energy lead the path which goes towards the right. This path leading for some will meet to Kockchurang. The source of water is available from a stream which is located slightly lower on the path of Kockchurang.<br />
<br />
Now you will have to lead the path which will go towards Dzongri. Gain you will experience some of the high steep climbing all along the way making you very tired, but proper precautions and grip must be maintained along the way. There can be some muddy patches to distract you from the path which can be neglected. After around an hour of climbing you can see many prying flags all around you. Those flags are present as worshippers pray to god and hoist their flags down here. By the end, you will be reaching some 13,080 meters which is too much. You can suffer from some headache as there is some lack of oxygen in such surrounding. After a small break at last, you will have some steep slope, and you can traverse very easily and quickly. The trees will still follow you to give a very mystic feeling. As the trail bends, you can see some huts all of a sudden. At about 12,980 feet, you will get the feeling of such altitude and meadows, and trees with Snow Mountains will be covering you all around. Next day you will just take rest which is very needful.</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> Tsoka To Dzongri (Altitude: 12980 Feet Time & Distance: 7 Kms; 05 Hrs Trek)
								</p>
								<p class="aj">For most trekkers this day is perhaps the highlight of the Goechala trail. Everyone looks forward to the trek this day. For one, they trek through some of the densest Rhododendron forest India has to offer, and second, on the trail, suddenly the views open up to showcase the might of the highest mountains in Himalayas.<br />
Like yesterday, climb up to the little pond leading to the monastery, and then follow the trail that runs to its right. The trail begins to climb sharply and within minutes Tshoka is a tiny hamlet below you. Red Rhododendron trees spring up everywhere. If you are in season when the flowers bloom (May 1st/2nd week), then the entire slope lights up with a fiery red colour.<br />
After a stiff climb for about 30 minutes, the trail evens out to a gradual climb. The trail changes to one paved over wooden logs. It is a delight with Rhododendrons fanning the path. Little wooden benches line on either side of the trail - which makes the trail look like it is in a park. Sometimes mist filter in surreally through the Rhododendron trees - but even in the magical setting the trail climbs throughout and trekkers feel the altitude. The log path gives way to a regular stony trail that climbs quickly to Phedang in 20 minutes.<br />
Phedang at 12,000 feet is a large clearing with superb views of the snow clad mountains. A log hut and a few wooden benches dot the landscape. Stop here for lunch and a well deserved rest. The trail forks at Phedang with one that goes right, leading to Kockchurang. Water is available from a spring slightly lower on the trail to Kockchurang.The spring is 10-15 minutes away on a lower trail.<br />
Take the trail to Dzongri that starts across the clearing. The trail starts to climb immediately along the dwarf rhododendrons that line the slope. The views start getting better with every step, but watch for a few muddy patches on the trail. After a bout of rain you need to skip your way around them. It is a ridge climb, so the trail switches between the alternating sides of the hill. Watch for the view change between the Pandim ranges and the Kabru. An hour later the climb tops at a shrine with multitude of prayer flags. This is the highest point of the days trek at 13,080 feet.<br />
Dzongri is a welcome sight for trekkers after the hard climb from Tshoka. At 12,980 feet trekkers feel the affect of altitude at the Dzongri meadows. Dzongri is a large cauldron, mostly meadows, surrounded in all directions by the mighty peaks of the Kanchenjunga range. In every direction is a snow peak to be looked at and admired. For most trekkers Dzongri is a reward on its own. Many finish their trek at Dzongri and head back the way they came.</p>					
									<p><b>Meals : </b> All Meals</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> Dzongri To Thansing (Altitude: 12894 Feet Time & Distance: 10 Kms; 07-08 Kms Trek)
								</p>
								<p class="aj">The day starts with a climb to Dzongri top. Dzongri top i.e at 13681 feet, is the highest point from where you get the 180 degree panaromic view of the mighty peaks of the Singalila and Kanchenjunga ranges. Dzongri top is a two hill climb from the Dzongri trekkers hut. The trek from Dzongri to Dzongri top takes about 45 mins. The sun rises at 5 a.m and you don’t want to miss seeing the first rays of sun hitting Kanchanjunga. Start your trek at 4.00 a.m with torch lights and you reach the top just as the dawn breaks. As you climb up, the peaks of the Singalila range begin to open up and just at the bend before the top, the Kanchenjunga and its neighbours make their appearance. Witness an inspiring sunrise and spend time watching the mountains changing colours in the sun rays. Spot Thansing, the destination for the day, Lamuney and Goechala peaks below you. On the other side, the green Rhododendron slopes extend for miles. Retracing your path to Dzongri takes 20 mins.<br />
<br />
Thansing is a meadow at the same altitude as Dzongri. The trail from Dzongri to Thansing descends a 1000ft to Kockchurang and then climbs a 1000ft to Thansing.<br />
<br />
Take the trail heading right from the Dzongri trekkers hut and go to the top of the ridge.It is a kilometer and 20 mins to the ridge top. From the ridge top you get to see Kanchenjunga, Pandim and the other peaks to the right towering over the meadows. Descend through the Rhododendron shrubs to the meadows. The meadow gently slopes down. The walk through the Dzongri meadows in the lap of the mighty mountains is as breathtaking as the view from Dzongri top.<br />
<br />
The slope is now considerable, and you will descend another 500 ft within minutes. Along the way, you can spend your time by spotting beautiful birds resting on the trees.<br />
<br />
Your last stoppage for the day is clearly visible to you by the end of the descent. Kokchurang has trekkers hut but not enough space to put up your own tents. The Prekchu River flows next to the trekker's hut about 50 meters far. Banks of the river can be a perfect location to pitch up four to five tents. The space is not unlimited, but you can enjoy yourself in the confined place. As you spend the whole day travelling, give your body some rest so that you can complete your trekking successfully. During the evening, you can hear the water flowing in the river with great speed and various sounds from birds which will turn out to make your complete day more pleasing.<br />
<br />
From Kokchurang, you will walk down to the bridge spanning towards Prekchu. You can enjoy the cool breeze on the bridge a view the icy cold water flowing in the river. On the different side of the river, you can again see the forest of rhododendron trees. During spring seasons, they bloom and give a feeling in walking under the spread branches all around you. The path will have a gradual increment in height which you will not feel. Total distance between Thansing and the bridge is about 2 km. Rocky and climb will start from the midway of your prescribed path and the beautiful forest will be left behind. The meadows present over there give an open invitation to set up your tents as there is plenty of space. You should be well packed inside your blankets as the night is going to be very cold.</p>					
									<p><b>Meals : </b> All Meals</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> Thansing To Lamune (Altitude:13693 Feet Time & Distance: 02 Kms; 02 Hrs Trek)
								</p>
								<p class="aj">It will not be difficult to traverse from Thansing to Lamuney. You have to travel along the meadows which will head towards Goechala. The path can become more adventurous as at each steep mountain and ridge will be coming closer to you. The path will be a bit rocky as you try to trek more forward. Travelling I the same direction with some climbing will lead you to the camp. The trail, which gains more altitude, leads to Samiti Lake. Now camping in the lake is no allowed so you will have to stay down. If you want, you can trek and view the lake and return to the base.</p>					
									<p><b>Meals : </b> All Meals</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> Lamune 06 Kms, 06 Hrs Trek To Goechala Back To Lamune Back To Thansing 02 Kms, 01 Hrs Trek To Kokchu
								</p>
								<p class="aj">Today is going to be your longest trek so far. So you have to wake really soon and pack your bags and leave Lamuney by 3am. The trek ascends from Lamuney, and it is just 45 minutes climb to reach the Samiti Lake. The path is rocky all along with sudden up the climb and flat plateau. Getting up and beginning your trek early will help you to view perfect sunrise that will indicate that the day is going to be just perfect. The ridge, which is on top of Samiti Lake, is supposed to climb with precautions the path is very narrow and is located on the side of a mountain. Some more altitude gain will lead to the perfect sunrise spot that should not take more than 2 hours after leaving from Lamuney. Enjoy the beautiful sunrise and watch Kanchenjunga and Pandim to glow in the morning sun rays before you descend towards Zemathang. Zemathang is a bed of sand and snow which you can traverse with ease. Goecha La from Zemathang is one and a half hours climb. After reaching at the Goecha La, spend some moments with the nature. The magnificent view of the surroundings usually makes the trekkers spellbound.</p>					
									<p><b>Meals : </b> All Meals</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> Kokchurang To Tsoka  (Altitude: 9650 Feet Time & Distance: 07 Kms; 06-07 Hrs Trek)
								</p>
								<p class="aj">To reach Tshoka from Thansing you will have to go via Phedang. To reach Phedang, the trail is direct and you will cross Dzongri. The trail is going to be very interesting as you will traverse from one mountain to another mountain maintain a constant altitude gain of about 12000 ft. The diversion will lead to the forest of rhododendron trees, and you will have to bypass the forest. There is no altitude gain in this point of the trek, and you can traverse quiet easily all along the way. As you move your eyes to your surroundings, you can see many lovely views of mountain Pandim. Phedang will be almost 4 hour's trail which is bit tiring as you will travel almost 10 kilometers in that time.From Phedang, the same trail must be followed which was taken earlier to descent to Tshoka. Time can vary according to the speed you trek but on an average it should not take more than 6 to 7 hours.</p>					
									<p><b>Meals : </b> All Meals</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 9:</b> Tsoka To Yuksom  (Altitude: 7200 Feet Time & Distance: 14 Kms; 06-07 Hrs Trek)
								</p>
								<p class="aj">Tracing the path back from Tshoka to Yuksom is much easier as you only encounter altitude loss here. Sachen can be reached very soon owing to the steep descent. The trail from Sachen goes up and down misting losing altitude. The last few meters have much small hillock climbs, and there you are - at the Yuksom Neighborhood.</p>					
									<p><b>Meals : </b> All Meals</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 10:</b> Buffer day
								</p>
								<p class="aj">Buffer day can be used in case of bad weather while on the trek.</p>					
									<p><b>Meals : </b> All Meals</p>
								</td>
								</tr>
								</table>					
								</div><div id="show_more_content" style="display:none;">
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 11:</b> Yuksom Drive To Njp
									</p>
									<p class="aj">Leave Yuksom early morning and reach NJP by 4 to 5 pm in the evening. Transfer to railway station to catch train to your destination from NJP railway station.</p>					
										<p><b>Meals : </b> Breakfast</p>
									</td>	
									</tr>
									</table>				
									</div>					
							</div>							<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
													<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>Meals</li>
																		<li>Transport</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Any meals are not included during the sector drives as we are only providing you transportation on respective days.</li><li>
Any kind of personal expenses.</li><li>
Insurance. (Traveling or Personal).</li><li>
Any other services which are not mentioned in the above Inclusions.</li></ul><br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>4 MAY 2015 – 14 MAY 2015<br />
												<p class="large b mb5px dif">Departure Cities with rates :</p>New Jal Paigudi (NJP) - Rs. 15,000/- Per Person<br /><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.himalayannavigators.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Goecha la Trek - Sikkim 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="36644"/>
						</form>
						</div>
						
						";i:1;s:58:"Book Goecha la Trek - Sikkim Tour - 111 Days Tour Packages";i:2;s:129:"book goecha la trek - sikkim tour - 111 days tour packages, trekking tour packages, siliguri, west sikkim, thansing tour packages";i:3;s:166:"Himalayan Navigators offers Goecha la Trek - Sikkim Tour - 111 Days tour package, budget Trekking tour packages for Siliguri, West Sikkim, Thansing at exciting price.";i:4;s:3647:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Siliguri, West Sikkim, Thansing"        
		                 },
		      "description": "Goechala Is Situated In The State Of Sikkim Which Is A Perfect Destination For Adventure Lovers. Trekking In Sikkim Is Very Different From Trekking In Any Other Part Of The Indian Himalayas. Its Unrivaled Collection Of Flora And Fauna, Add Charisma To The Adventure Of Trekking Expedition With Verdant Green Peak Trails Of Sikkim. Darjeeling Is The Doorway To Sikkim. These Base Camps Have Many Splendid Peaks Like Kanchenjunga Peak, Which Is One Of The Most Superlative And Stunning Peaks Of The Himalayan Range. The Tremendously Tough Terrains That Are Often The Preference Of The Qualified Trekkers Are On The Peak, With Snowy Crest Of The Famed Himalayas. There Are Many Peaks Like Kabru, Yokhum, Ratong Peaks Which Look Very Pretty And Gives Are Breathtaking View. They Are Located On High Altitude From Where You Can See The Lovely Sightsee Of Mountains. To The West You Can Move Forward To The Edge Of Kyangla Boundary.
The Trek To Gocehala Actually Route In The Region Of The Kanchenjunga National Park That Is Open To Guests. The Trek Is Customary Which Follows A Pictorial Route Lush Flora And Magnificent Mass Views Until It Reach A High Bypass. The Route Passes Through Tropical And Coniferous Woodland And The Moist Dell Are Home To A Copious Array Of Flora And Fauna. Sikkim Is Renowned For Its Orchid'S Flowers Garland Which Mesmerize You. The Himalayan Bear, Multicolored Pheasants And A Fusion Of Birds.
Goce Hala Is An Admired Trek Which Will Add Cherishable Memories. The Trek Starts From Yuksom And Through Sachen Pass, It Joins The Conventional Dzongri-Goechala Trail. The Ridge Is Really Gorgeous And Full Of Exciting Activity Whereas The Goechala Pass Is The Decisive Destination For The Magnificent Sight Of Mountain Kabru And Kanchenjunga. Next Day You Will Trail Descend Steep Forest To The Overpass On The Dzongri-Goechala Track After Walking An Hour From Then You Will Reach To Tshoka

Trek Facts
Grade: Hard
Best Season: April To June End; September To November End. 
Region: Sikkim
Nearest Airport: Bagdogra (Ixb) 150 Kms From Yuksom
Nearest Railway Station: Njp (New Jalpaigudi) 135 Kms From Yuksom
Highlight: Closest View Of Mt. Kanchenjunja (South-East Face) From Goecha La 
Trek Starting Point: Yuksom
Trek End Point: Yuksom
Duration: 10 Nights / 11 Days
Total Trek (In Kilometers): 
Total Night Camping: 07 Nights
Maximum Altitude Gained: 15750 Meters / 
Highest Altitude Camp: Day 05 Lamune
Toughest Day Of The Trek: Exursion To Goehala From Lamune And Back To Kokhurang. 
Trails Type:
Temperature:
Mules Or Porters:
Mobile Network Availability: Mobile Network Available At Yuksom And The Tsoka Campsite.
Njp - Yuksom (Altitude: 5700 Feet) - Sachen (Altitude: 7200 Feet) - Tsoka (Altitude: 9650 Feet) - Dzongri (Altitude: 12980 Feet) - Thansing (Altitude: 12894 Feet) - Lamune (Altitude: 13693 Feet ) - Goechala ( 16000 Feet) - Lamune - Thansing - Kokchurang (Altitude: 13693 Feet) - Tsoka - Yuksom - NjpAny meals are not included during the sector drives as we are only providing you transportation on respective days.
Any kind of personal expenses.
Insurance. (Traveling or Personal).
Any other services which are not mentioned in the above Inclusions.",
		      "name": "Goecha la Trek - Sikkim Tour",
		      "telephone": "+91-8091208888"
		    }
		    </script>
			";i:5;N;}