a:6:{i:0;s:11949:"				<div class="h1"><h1>Char dham Yatra By Helicopter Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.hussaintours.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.hussaintours.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.hussaintours.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="63774"/>
						</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_13/387846/118331.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/387846/118331.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).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.hussaintours.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="63774"/>
						</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:199:"Hussain Tours offers Char dham Yatra By Helicopter Tour - 4 Nights / 5 Days tour package, budget Religious & Pilgrimage tour packages for Dehradun, Chamoli, Rudraprayag, Uttarkashi at exciting price.";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-9411923927"
		    }
		    </script>
			";i:5;N;}