a:6:{i:0;s:11999:"				<div class="h1"><h1>Char Dham Yatra by Helicopter Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.rapidactionexpedition.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.rapidactionexpedition.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Char Dham Yatra by Helicopter 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">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Dehradun, Chamoli, Rudraprayag, Uttarkashi</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.rapidactionexpedition.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Char Dham Yatra by Helicopter 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="75006"/>
						</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/446641/133670.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/446641/133670.jpg"  width="150" height="150"    alt="Char Dham Yatra by Helicopter Tour" title="Char Dham Yatra by Helicopter 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> Dehradun - Yamunotri
								</p>
								<p class="aj">Departure from Sahastradhara helipad, Dehradun (07:00 AM).<br />
<br />
Arrival at Kharsali helipad, Yamunotri (07:45 AM).<br />
<br />
Assemble at the State government helipad on Sahastradhara Road, Dehradun, the starting and concluding point of this yatra. The ground staff briefs you about the do’s and don’ts of the trip. The helicopter departs from here at around 7’o clock in the morning. As you arrive at the Kharsali helipad for Yamunotri, you are transferred to your hotel.<br />
<br />
After freshening up, you visit the Yamunotri temple for darshan. One of the four sites of Chhota Chardham Yatra of Uttarakhand, Yamunotri (3293 m) is the seat of Rive Goddess Yamuna. Yamunotri, lying on the top of Bandar Poonch Parvat, is the source of Yamuna River.<br />
<br />
The main attractions here are Goddess Yamuna and the thermal springs at Janki Chatti, which are around 7 km away. The actual Champasar glacier is at an altitude of 4421 m above the seal level and is inaccessible. The temple, placed on the left bank of Yamuna River, was erected by Maharaja Pratap Shah of Tehri Garhwal. The idol of the Goddess here is in black marble. 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 2:</b> Gangotri
								</p>
								<p class="aj">Departure from Yamunotri helipad (07: 45 AM).<br />
<br />
Arrival at Harsil Helipad (08:30 AM).<br />
<br />
On day 2, depart from Yamunotri helipad and arrive at Harsil Helipad, lying amidst the beautiful lush Uttarakhand valleys. The day is scheduled for visiting the next Chardham destination of Uttarakhand- Gangotri. It is advisable that you visit the Gangotri temple, right from the helipad. The temple is located at a distance of 22 km from here. Arrive at the temple around 50 minutes later.<br />
<br />
This religious town of the Hindu devotees is placed on the banks of Bhagirathi River and is the originating point of the holy River Ganga. The temple is located at an altitude of 3100 m. the river here is known as Bhagirathi and it gets the name Ganga from Devprayag where it meets Alaknanda River. Gaumukh in the Gangtori Glacier is the originating point of Ganges River. This glacier is a 19 km trek away from here.<br />
<br />
Have Darshan at Gangotri temple, which was constructed by Amar Singh Thapa, the Gurkha General. The temple was constructed in 18th century. After Darshan, get transferred to your hotel in the afternoon. After completing the check-in, have your lunch. Later, you can relax for some time. The evening is at leisure. If you want, you can embark on an evening walk to the nearby villages where you can also buy some fine-quality woolens. 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> Kedarnath
								</p>
								<p class="aj">Departure from Harsil helipad (09:00 AM)<br />
<br />
Arrival Kedarnath helipad (10:00 AM)<br />
<br />
The helicopter takes off from Harsil helipad at 9’0 clock in the morning and lands at Kedarnath helipad, around 500 meters from the Kedarnath temple. If you start walking from here, you end up at the temple after around 20 minutes. Located at an altitude of 3584 meters above the sea level, Kedarnath temple is one of the destinations of the most revered Chhota Chadham Yatra. Devoted to an incarnation of Lord Shiva, Kedarnath is also one of the 12 Jyotirlingas of the Lord. Hindu devotees believe that the Lord fulfills all the desires of his devotees.<br />
<br />
The temple was originally constructed by the Pandava brothers of the Hindu epic Mahabhrata. The temple that we see today was constructed by Adi Shankaracharya during the 8th century when he was on the mission of reviving Hinduism. At the temple’s entrance gate, there is a Nandi bull statue (the divine bull of the Lord). Behind the temple, the Samadhi of the sage exists. There is no facility of staying at night in Kedarnath, so it is advisable that one must have darshan quickly so that they are back to helipad, on-time.<br />
<br />
The evening is scheduled for visiting the ancient Triyuginarayan temple. This Hindu temple is dedicated to Lord Vishnu. It is believed that the temple has been built on the site where Lord Vishnu had witnessed the wedding ceremony of Lord Shiva and Goddess Parvati. The perpetual fire that burns in the front of the temple, is one of the highlight here. Because of this, the temple is also called Akhand Dhuni temple. 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 4:</b> Badrinath
								</p>
								<p class="aj">Departure from Kedarnath / Guptkashi helipad (10:15 AM).<br />
<br />
Arrival at Badrinath helipad (11:00 AM).<br />
<br />
After you arrive at Badrinath helipad, get transferred to the hotel for check-in. as you settle, get all set to visit the Badrinath temple. Badrinath is the holy abode of Lord Vishnu, also known and Lord Badri here. Have Darshan at the temple, which is nestled between the mountain ranges of Nar and Narayan.<br />
<br />
The temple is located on the left bank of River Alaknanda. Badrinath is also one of the 108 Divya Desams, the shrines for Vaishnavites. In the evening, you can visit to Mana village, around 3 km from Badrinath, it is the last village before Indo-China border. It is inhabited by an Indo-Mongolian tribe.<br />
<br />
In the village, you can visit Bhim Pul, a rock bridge over Saraswati River that was probably built by Bhim, one of the Pandava brothers and Vyas Gufa, known for being the site where the Hindu epic of Mahabharata was written 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 5:</b> Return to Dehradun
								</p>
								<p class="aj">Departure from Badrinath helipad (11:30 AM).<br />
<br />
Arrival at Sahastradhara helipad, Dehradun (12:30 AM) Attend the Special Abhishek Puja at Badrinath temple, a major highlight of the yatra. It Puja starts 04.30 AM in the wee hours of morning.<br />
<br />
The Puja lasts for around 2 hours. Have darshan of the deity from close quarters.<br />
<br />
Later, depart from the Barinath helipad to Sahastradhara helipad in Dehradun. The tour ends.</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>
															</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.rapidactionexpedition.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Char Dham Yatra by Helicopter 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="75006"/>
						</form>
						</div>
						
						";i:1;s:73:"Book Char Dham Yatra by Helicopter Tour - 4 Nights / 5 Days Tour Packages";i:2;s:169:"book char dham yatra by helicopter tour - 4 nights / 5 days tour packages, religious & pilgrimage tour packages, dehradun, chamoli, rudraprayag, uttarkashi tour packages";i:3;s:224:"Book Char Dham Yatra by Helicopter Tour - 4 Nights / 5 Days tour packages from Rapid Action Expedition - Get attractive 4 Nights / 5 Days Religious & Pilgrimage  tour packages for  Dehradun, Chamoli, Rudraprayag, Uttarkashi.";i:4;s:448:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dehradun, Chamoli, Rudraprayag, Uttarkashi"        
		                 },
		      "description": "",
		      "name": "Char Dham Yatra by Helicopter Tour",
		      "telephone": "+91-9411191687"
		    }
		    </script>
			";i:5;N;}