a:6:{i:0;s:22541:"				<div class="h1"><h1>Roop Kund Trek 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>Roop Kund Trek 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">
						8 Nights / 9 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Nainital, Lohajung, Wan</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 9000 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="Roop Kund Trek 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="36598"/>
						</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/74222.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74222.jpg"  width="150" height="150"    alt="Roop Kund Trek Tour" title="Roop Kund Trek 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/74231.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74231.jpg"  width="150" height="150"    alt="Roop Kund Trek Tour" title="Roop Kund Trek 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/74230.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74230.jpg"  width="150" height="150"    alt="Roop Kund Trek Tour" title="Roop Kund Trek 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/74229.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74229.jpg"  width="150" height="150"    alt="Roop Kund Trek Tour" title="Roop Kund Trek 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/74228.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74228.jpg"  width="150" height="150"    alt="Roop Kund Trek Tour" title="Roop Kund Trek 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/74227.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74227.jpg"  width="150" height="150"    alt="Roop Kund Trek Tour" title="Roop Kund Trek 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/74226.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74226.jpg"  width="150" height="150"    alt="Roop Kund Trek Tour" title="Roop Kund Trek 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/74225.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74225.jpg"  width="150" height="150"    alt="Roop Kund Trek Tour" title="Roop Kund Trek 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/74224.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74224.jpg"  width="150" height="150"    alt="Roop Kund Trek Tour" title="Roop Kund Trek 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/74223.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74223.jpg"  width="150" height="150"    alt="Roop Kund Trek Tour" title="Roop Kund Trek 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/74232.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/74232.jpg"  width="150" height="150"    alt="Roop Kund Trek Tour" title="Roop Kund Trek Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Roopkund Lake Trek Is One Of The Greatest Trek In The Indian Himalayas. This High Altitude Glacial Lake Located In The Chamoli District Of Uttarakhand State. Situated Near To The Two Himalayan Peaks; Trishul (7120 Mts) And Nanda Gunti (6310 Mts). Lake Is Quite Famous From The Ages Due To Reason Hundreds Of Human Skeletons Found Near The Lake. The Lake Is Surrounded By Rocks, Glacier And Snow Clad Mountains, Making It Perfect Trekking Destination For Adventures. Lake Is Small In Size With Low Depth And Stays Covered With Snow During 09-10 Months In A Year. Roopkund Has Attracted Attention By Having Human Skeletal Remains Easily Visible When Snow Melts During The Months Of August And September. There Are Many Theories And Opinions From Purely Spiritual To Purely Scientific Ones, Which Explain The Existence Of These Skeletons, Which Date Back To 9Th Century. That Is The Reason Why The Lake Is Also Called Skeleton Lake Or Mystery Lake. Famous Nanda Devi Raj Jat Yatra Takes Place Once After Every 12 Years At Roopkund In Which Millions Of Followers Trek To This Lake, During Which Goddess Nanda Devi Is Worshipped.<br />
The Trek To Roopkund Lake Is An Enjoyable Experience With Full Of Beautiful Landscapes. Two Best Time In A Year To Visit This Lake Is Pre Monsoon (Mid May To End Of June) And Post Monsoon (September And October). Pre Monsoon Season Is Always Tough To Reach The Lake, As Trail After Kalu Vinayaka Stays Covered With Deep Snow. During The Post Monsoon Months Of September And October The Approach Towards Lake Become Easy With Defined Trail. Snow Melts With The Monsoon Showers And The Whole Area Gets Covered With Different Varieties Of Flowers. Every Campsite Is Big And Spacious.<br />
<br />
Grade: Hard (Check Link For Details)<br />
Best Season: Mid May To June End; September To October<br />
Region: Chamoli, Uttarakhand<br />
Nearest Airport: Jolly Grand Airport (Ded)<br />
Nearest Railway Station: Kathgodam 230 Kms; Rishikesh 250 Kms<br />
Highlight: Glacial Lake With Human Skeletal Remains<br />
Trek Starting Point: Wan Village<br />
Trek End Point: Lohajung Village<br />
Duration: 08 Nights / 09 Days<br />
Total Night Camping: 06 Nights<br />
Maximum Altitude Gain: 16000 Feet / 5000 Meters <br />
Highest Altitude Camp: Bhagubasa (4150 Meter / 14300 Feet)<br />
Toughest Day Of The Trek: Day 06 / Trek To Roopkund Lake Back To Patar Nauchani<br />
Total Kilometer Trek: 50<br />
Mules Or Porters: Mules<br />
Mobile Network Availability: Lohajung, Geroli Patal, Patat Nauchani<br />
Kathgodam - Lohajung (2650 Mts; 7200 Feet) - Wan (2750 Mts; 7535 Feet) - Geroli Patal (3100 Mts; 1000 Feet) - Bedni Bugyal (3500 Mts; 11700 Feet) - Patar Nachauni (3800 Mts; 12800 Feet) - Bagubasa (4150 Mts; 14300 Feet)Any meals are not included during the sector drives as we are only providing you transportation on respective days.<br />
Any offloading of the backpack is not included during the trek.<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> Kathgodam 213 Kms, 08-09 Hrs Drive To Lohajung (2650 Mts; 7200 Feet)
								</p>
								<p class="aj">Pick up from railway station. Full Day drive towards the base camp of the trek. "Lohajung" (2650 mts) is an ideal base camp for this trek as compare to Wan, it has basic facility of food & Lodging and also have small market. <br />
Dinner and overnight stay at the Lodge.</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> Lohajung 18 Kms, 01 Hour Drive To Wan (2750 Mts; 7535 Feet) 08 Kms, 05-06 Hrs Trek To Geroli Patal
								</p>
								<p class="aj">After breakfast 01 hour drive to the Wan village. It is the last village of the valley with road connectivity which has its own small hydro electricity plant. Start your trek through the village, pass the small temple of local deity "Laatu Dev" which is surrounding by high ‘Fir’ trees. After an hour easy trek (02 kms) reach first rest point "Ran Ki Dhar" which is at the edge of the ridge, from here trail takes you down towards the stream of Neel Ganga. It is a perfect place to have a pack lunch. Refill your water from here as there will be no more water source till the campsite of Geroli Patal. From here the slope is steep through the forest of Oak and Rhododendron. The curvy trail is well maintained by the use of stones. There are many shortcuts, try to avoid them, they are steep and slippery. After 3-4 hours of steep forest climb reach the campsite of Geroli Patal. It can be identified by two green colour forest huts. Though from here Bedni Bugyal is also near but we stay here as the altitude gained is enough for this day. It’s has newly made flat surface to pitch the tents with fresh water supply to the campsite. Mobile network are also available near the camping. Campsite is surrounded by thick forest which provides easy and handy option for a Bonfire.     <br />
Dinner and overnight camping.</p>					
									<p><b>Meals : </b> Breakfast, Lunch & 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 3:</b> Geroli Patal 03 Kms, 02 Hours Trek To Bedni Bugyal (3500 Mts; 11700 Feet)
								</p>
								<p class="aj">This day is the shortest and easiest day of this trek. Bedni Bugyal is very near from Geroli Patal. After one hour climb cross the tree line and reach "Dolia Dhar" (small open temple) from here you can able to see Bedni Bugyal which is another one hour trek from here. ‘Bedni Bugyal’ is considered to be the best campsite of this trek. Large Meadows, famous mountains like Chokhamba Massif, Trishul on the background provides best landscapes for photographers. Full day explore the Bugyal as a part of your acclimatization process.<br />
\Dinner and overnight camping.</p>					
									<p><b>Meals : </b> Breakfast, Lunch & 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 4:</b> Bedni Bugyal 05 Kms, 04-4½ Trek To Patar Nachauni (3800 Mts; 12800 Feet)
								</p>
								<p class="aj">After breakfast start your trek towards the small lake name’ Bedni Kund- and two small temples. From here half an hour climb towards the trail which is coming from Ali Bugyal. Trek 2½ kms till Ghora Lautani Dhar (02 hrs) is easy with gentle height gain. Trail can be seen from Bedni Bugyal. Ghora lautani Dhar connects the meadows of Bedni Bugyal and Patal Nauchani. From here easy and straight trek (02 hrs) towards campsite of Patal Nauchani. After lunch free for the individual activities near to the campsite. <br />
Dinner and overnight camping.</p>					
									<p><b>Meals : </b> Breakfast, Lunch & 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 5:</b> Patar Nachauni 4½ Kms, 04-05 Hrs Trek To Bagubasa (4150 Mts; 14300 Feet)
								</p>
								<p class="aj">After breakfast start 3½ kms the trek towards the Kelu Vinayak top (14,400 feet). Trail when seen from the campsite feels steep but trail is made nicely with the use of curves makes the trail easy and comfortable to walk. The temple at the top is dedicated to Lord Ganesha. One can offer a prayer for the successes of the trek. The view to the opposite side is totally breathtaking. The campsite of Bhaguwasa can be easily identified by the green color huts which are 02 kms from the top. During post monsoon season trail is easy, just 45 minutes of easy walk. But presence of snow during the months of May and June makes the trail slower and long. Weather at Bhagubasa is always very unpredictable and changes very instantly, why not, as it is the highest and coldest campsite for this trek. During the May and June months campsite stays covered with around 8-10 feet of snow. Tents have to be pitched on snow. Lake is situated towards north-east direction, higher in the mountain. Evening time will be discussing about the climbing and required preparations. <br />
Dinner and overnight camping.</p>					
									<p><b>Meals : </b> Breakfast, Lunch & 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 6:</b> Bhagubasa 3½ Kms, 04 Hrs Trek To Roopkund (4750 Mts; 15600 Feet) Back To Bhagubasa Back To Patal
								</p>
								<p class="aj">Wake up early in the morning, have some light breakfast and start climbing towards the Roopkund Lake. The climb in thin air is tough with some steep sections in between. Total 04 kilometer can be scaled comfortably with 4-5 hrs of slow and steady pace. Two points are ideal to take some sitting rest, first is after an hour trek point name ‘Chidia Nag" and the second one is before an hour from Roopkund Lake. Junar Gali which at top of the ridge is above the lake with half an hour steep climb and offers the grand view of Mt. Trishul and Nanda Gunti. Different routes are used during the season of Pre and post monsoon. Enjoy some time near the Lake and start descending using the same route. Reach Bagubasa campsite in the afternoon. After a hot lunch starts trek towards Patal Nachauni from the same route. <br />
Dinner and overnight camping.</p>					
									<p><b>Meals : </b> Breakfast, Lunch & 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 7:</b> Patal Nachauni 07 Kms, 05-06 Hrs Trek To Ali Bugyal (3550 Mts; 11900 Feet)
								</p>
								<p class="aj">After breakfast start the trek towards Ali Bugyal campsite. The trek is same till the point where we catch the trail at Bedni Bugyal near the Bedni kund. Keep following the trail, bypass the campsite of Bedni Bugyal from the top. Trail is easy is with gentle and long decending curves on the grassy slopes of Ali Bugyal.  Reach the Campsite and enjoy your last camping night of the trek.<br />
Dinner and overnight camping.</p>					
									<p><b>Meals : </b> Breakfast, Lunch & 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 8:</b> Ali Bugyal 05 Kms, 04-4 ½ Hour Trek To Didina 4 Kms (2730 Mts; 7600 Feet) 04 Kms, 3½ -04 Hrs Trek
								</p>
								<p class="aj">After breakfast start the 1-1½ trek towards the Ali Top (12,200 feet). Climb is comfortable and easy on the meadows of Ali Bugyal. View from the Ali Top is stunning of the valley with forest covered mountains. Lohajung village can be also seen from the top. From here take a descending trail towards the village of Didina through the dense forest of oak and Rhododendron. Going via Tol Pani is better and comfortable option. It’s a 2-2½ hour descending walk. Reach the Didina village. After Lunch start climbing down towards the Ron Bagad (1-1½ hrs). Cross the water of Neel Ganga with the help of bridge one more time and start your final 01 hour climb towards the Culling village. Reach the road head where our pick up vehicals will be waiting. From here ½ hours drive to reach the Lohajung village.<br />
Dinner and overnight stay at the lodge.</p>					
									<p><b>Meals : </b> Breakfast, Lunch & 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 9:</b> Lohajung 213 Kms, 08-09 Hrs Drive To Kathgodam
								</p>
								<p class="aj">After breakfast drive to Kathgodam to board your train to further destination.</p>					
									<p><b>Meals : </b> Breakfast.</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>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 offloading of the backpack is not included during the trek.</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>21 May 2015 - 3 Seats Left<br />
												<p class="large b mb5px dif">Departure Cities with rates :</p>Kathgodam - Rs. 9,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. ~^#^~						
    	<p class="h dif xlarge b mb5px">Rate card</p>
    	<div class="otherDetails aj">Kathgodam - Rs. 9,000/- Per Person</div><br>						</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="Roop Kund Trek 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="36598"/>
						</form>
						</div>
						
						";i:1;s:58:"Book Roop Kund Trek Tour - 8 Nights / 9 Days Tour Packages";i:2;s:121:"book roop kund trek tour - 8 nights / 9 days tour packages, trekking tour packages, nainital, lohajung, wan tour packages";i:3;s:158:"Himalayan Navigators offers Roop Kund Trek Tour - 8 Nights / 9 Days tour package, budget Trekking tour packages for Nainital, Lohajung, Wan at exciting price.";i:4;s:3387:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Nainital, Lohajung, Wan"        
		                 },
		      "description": "Roopkund Lake Trek Is One Of The Greatest Trek In The Indian Himalayas. This High Altitude Glacial Lake Located In The Chamoli District Of Uttarakhand State. Situated Near To The Two Himalayan Peaks; Trishul (7120 Mts) And Nanda Gunti (6310 Mts). Lake Is Quite Famous From The Ages Due To Reason Hundreds Of Human Skeletons Found Near The Lake. The Lake Is Surrounded By Rocks, Glacier And Snow Clad Mountains, Making It Perfect Trekking Destination For Adventures. Lake Is Small In Size With Low Depth And Stays Covered With Snow During 09-10 Months In A Year. Roopkund Has Attracted Attention By Having Human Skeletal Remains Easily Visible When Snow Melts During The Months Of August And September. There Are Many Theories And Opinions From Purely Spiritual To Purely Scientific Ones, Which Explain The Existence Of These Skeletons, Which Date Back To 9Th Century. That Is The Reason Why The Lake Is Also Called Skeleton Lake Or Mystery Lake. Famous Nanda Devi Raj Jat Yatra Takes Place Once After Every 12 Years At Roopkund In Which Millions Of Followers Trek To This Lake, During Which Goddess Nanda Devi Is Worshipped.
The Trek To Roopkund Lake Is An Enjoyable Experience With Full Of Beautiful Landscapes. Two Best Time In A Year To Visit This Lake Is Pre Monsoon (Mid May To End Of June) And Post Monsoon (September And October). Pre Monsoon Season Is Always Tough To Reach The Lake, As Trail After Kalu Vinayaka Stays Covered With Deep Snow. During The Post Monsoon Months Of September And October The Approach Towards Lake Become Easy With Defined Trail. Snow Melts With The Monsoon Showers And The Whole Area Gets Covered With Different Varieties Of Flowers. Every Campsite Is Big And Spacious.

Grade: Hard (Check Link For Details)
Best Season: Mid May To June End; September To October
Region: Chamoli, Uttarakhand
Nearest Airport: Jolly Grand Airport (Ded)
Nearest Railway Station: Kathgodam 230 Kms; Rishikesh 250 Kms
Highlight: Glacial Lake With Human Skeletal Remains
Trek Starting Point: Wan Village
Trek End Point: Lohajung Village
Duration: 08 Nights / 09 Days
Total Night Camping: 06 Nights
Maximum Altitude Gain: 16000 Feet / 5000 Meters 
Highest Altitude Camp: Bhagubasa (4150 Meter / 14300 Feet)
Toughest Day Of The Trek: Day 06 / Trek To Roopkund Lake Back To Patar Nauchani
Total Kilometer Trek: 50
Mules Or Porters: Mules
Mobile Network Availability: Lohajung, Geroli Patal, Patat Nauchani
Kathgodam - Lohajung (2650 Mts; 7200 Feet) - Wan (2750 Mts; 7535 Feet) - Geroli Patal (3100 Mts; 1000 Feet) - Bedni Bugyal (3500 Mts; 11700 Feet) - Patar Nachauni (3800 Mts; 12800 Feet) - Bagubasa (4150 Mts; 14300 Feet)Any meals are not included during the sector drives as we are only providing you transportation on respective days.
Any offloading of the backpack is not included during the trek.
Any kind of personal expenses.
Insurance. (Traveling or Personal).
Any other services which are not mentioned in the above Inclusions.",
		      "name": "Roop Kund Trek Tour",
		      "telephone": "+91-8091208888"
		    }
		    </script>
			";i:5;N;}