a:6:{i:0;s:9948:"				<div class="h1"><h1>Char Dham Yatra Tour Packages by Helicopter</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 Tour Packages by Helicopter</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">
						3 Nights / 4 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 Tour Packages by Helicopter - 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="100080"/>
						</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/168507.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/446641/168507.jpg"  width="150" height="150"    alt="Char Dham Yatra Tour Packages by Helicopter" title="Char Dham Yatra Tour Packages by Helicopter" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Chardham yatra tour packages by helicopter - Chardham Yatra is a holy yatra that every devoted Hindu wishes to embark on at least once in his or her lifetime. Considered to be one of the most revered religious treks of Hinduism, Chardham Yatra includes treks to four religious sites - Yamunotri, Gangotri, Kedarnath and Badrinath. Chardham Yatra Tour Packages by Helicopter offers you a chance to pay tribute to your lords and enjoy some refreshing moments, nestle in the lap of nature.<br />
<br />
Journey of Chardham is very arduous and lengthy by road. However, operation of Helicopter services for Chardham makes the journey to the whole Yatra, easier and short. Chardham tour package by helicopter starts from the west to east. So, your holy Yatra begins with Yamunotri, proceeds to Gangotri and then to Kedarnath and Badrinath. This chardham yatra package by helicopter not only allows you to have darshan at the four holy sites, but also offers sometime amid the tranquillity of the snow-capped Himalayas.<br />
<br />
While on a spiritual tour, people would prefer to travel with a peaceful mind and comfort. Our team of travel experts have designed Chardham Yatra Tour Packages by Helicopter suiting every traveller’s requirements. With a chardham tour packages by helicopter, you can be sure to have a memorable tour, where you can get a darshan of the Lord without any worries about travel and arrangements. The chardham yatra package by helicopter saves lot of time and energy, thereby offering you the eagle eye view of Himalayas during your holy visit.<br />
<br />
Our chardham yatra by helicopter has something for every preference and budget limit. Covering almost everything related to your travel, we ensure to provide you with a spiritual travel without any distractions and travel distress. Each of our packages has the best rates and offers variety of options to make your tour to Chardham yatra hassle-free. While travelling, go with pleasure as our char dham yatra tour packages by helicopter are tailored as per your requirements.<br />
<br />
Our char dham yatra package by helicopter offers a gratified stay at the hotels, by providing a judicious blend of services within the preferred budget. We provide the most affordable accommodation clubbed with all required needs. At Namita Travels, we strive towards making your holy yatra, an enriching and pleasing one.<br />
<br />
Thus, we at Namita Travels ensure that our customers have a wonderful experience at this holy place, with a pleasant stay, divine darshan and a relaxed sightseeing.<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> Kedarnath temple
								</p>
								<p class="aj">Take off from Sahastradhara Helipad Dehradun.<br />
<br />
Arrival to Kedarnath temple<br />
<br />
The temple is at a walking distance from the helipad. We wii provide VIP darshan slips to the passengers. These slips are provided by the temple committee and the cost of each slip is Rs 1100. Night halt will be organised at good 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> Badrinath.
								</p>
								<p class="aj">Take off from Kedarnath temple Helipad..<br />
<br />
Arrival at Badrinath.<br />
<br />
Passengers will be staying at best Hotel in the property of Badrinath. We shall provide transport for temple visit and local sight seeing upto Mana Village. We will also provide special Abhishek Arti tickets for the early morning Puja.</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> Gangotri,Yamunotri.
								</p>
								<p class="aj">Take off from Badrinath temple Helipad.<br />
<br />
Arrival at Harsil helipad Gangotri. We will organize transport from Harsil to GangotriTemple. you can enjoy the beautiful surroundings of Harsil including the pure and quiet Ganges river which passes from near the helipad.<br />
<br />
Take off from Harsil helipad for Yamunotri..<br />
<br />
Arrival Kharsali Helipad for Yamunotri.<br />
<br />
Visit to Temple by Palki. A best in class accomodation will be been arranged.</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> Dehradun
								</p>
								<p class="aj">Drop to Dehradun helipad.<br />
<br />
For early booking of Char Dham tour by helicopter 2017 please drop a mail or call us.</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>Transport</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 Tour Packages by Helicopter - 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="100080"/>
						</form>
						</div>
						
						";i:1;s:82:"Book Char Dham Yatra Tour Packages by Helicopter - 3 Nights / 4 Days Tour Packages";i:2;s:178:"book char dham yatra tour packages by helicopter - 3 nights / 4 days tour packages, religious & pilgrimage tour packages, dehradun, chamoli, rudraprayag, uttarkashi tour packages";i:3;s:233:"Book Char Dham Yatra Tour Packages by Helicopter - 3 Nights / 4 Days tour packages from Rapid Action Expedition - Get attractive 3 Nights / 4 Days Religious & Pilgrimage  tour packages for  Dehradun, Chamoli, Rudraprayag, Uttarkashi.";i:4;s:2979:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dehradun, Chamoli, Rudraprayag, Uttarkashi"        
		                 },
		      "description": "Chardham yatra tour packages by helicopter - Chardham Yatra is a holy yatra that every devoted Hindu wishes to embark on at least once in his or her lifetime. Considered to be one of the most revered religious treks of Hinduism, Chardham Yatra includes treks to four religious sites - Yamunotri, Gangotri, Kedarnath and Badrinath. Chardham Yatra Tour Packages by Helicopter offers you a chance to pay tribute to your lords and enjoy some refreshing moments, nestle in the lap of nature.

Journey of Chardham is very arduous and lengthy by road. However, operation of Helicopter services for Chardham makes the journey to the whole Yatra, easier and short. Chardham tour package by helicopter starts from the west to east. So, your holy Yatra begins with Yamunotri, proceeds to Gangotri and then to Kedarnath and Badrinath. This chardham yatra package by helicopter not only allows you to have darshan at the four holy sites, but also offers sometime amid the tranquillity of the snow-capped Himalayas.

While on a spiritual tour, people would prefer to travel with a peaceful mind and comfort. Our team of travel experts have designed Chardham Yatra Tour Packages by Helicopter suiting every traveller’s requirements. With a chardham tour packages by helicopter, you can be sure to have a memorable tour, where you can get a darshan of the Lord without any worries about travel and arrangements. The chardham yatra package by helicopter saves lot of time and energy, thereby offering you the eagle eye view of Himalayas during your holy visit.

Our chardham yatra by helicopter has something for every preference and budget limit. Covering almost everything related to your travel, we ensure to provide you with a spiritual travel without any distractions and travel distress. Each of our packages has the best rates and offers variety of options to make your tour to Chardham yatra hassle-free. While travelling, go with pleasure as our char dham yatra tour packages by helicopter are tailored as per your requirements.

Our char dham yatra package by helicopter offers a gratified stay at the hotels, by providing a judicious blend of services within the preferred budget. We provide the most affordable accommodation clubbed with all required needs. At Namita Travels, we strive towards making your holy yatra, an enriching and pleasing one.

Thus, we at Namita Travels ensure that our customers have a wonderful experience at this holy place, with a pleasant stay, divine darshan and a relaxed sightseeing.",
		      "name": "Char Dham Yatra Tour Packages by Helicopter",
		      "telephone": "+91-9411191687"
		    }
		    </script>
			";i:5;N;}