a:6:{i:0;s:9622:"				<div class="h1"><h1>Haridwar Sameday Tour Packages</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.hellofriendlive.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.hellofriendlive.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Haridwar Sameday Tour Packages</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">
						1 Day 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Haridwar, Rishikesh, Har Ki Pauri, Lakshman Jhula</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price </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.hellofriendlive.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Haridwar Sameday Tour Packages - 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="152209"/>
						</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_16/458475/234591.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/458475/234591.jpg"  height="150"  width="150"    alt="Haridwar Sameday Tour Packages" title="Haridwar Sameday Tour Packages" loading="lazy" /></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> Day itinerary
								</p>
								<p class="aj">Palace Covered :-  Laxman Jhoola, Laxmanji Temple,  Bharat Mata Mandir,  Swarg Ashram,  Anand Bhawan,  Yoga Training Centre, Sapt Rishi Ashram, Pawan Dham, Vaishno Mata Mandir, Shiva Temple, Har Ki Pauri<br />
 <br />
haridwar  is Believed to Be  Blessed By the Presence of all Three Major Gods of Hindus Namely Brahma, Vishnu and Maheshwar. Hence It's Often Called the “gateway to God”. Dense Forests and Absolute Clear Water of River Ganges and the Serene Fold Mountains At the Background Create the Charming Beauty of this Holy City. Rishikesh On the other Hand is Called the “gateway of Char Dum”.<br />
<br />
har Ki Pauri is a Famous Bathing Ghat On the Banks of the River Ganges in Haridwar. Har Means God(shiva) and Pouri Means Footprint .it is Believed that Lord Shiva and Lord Vishnu have Visited this Place in Ancient Times. Here One Can See the Footprints of Lord Vishnu On a Stone Wall. Har Ki Pauri is also a Main Place for Holy Bath During Kumbh Mela.<br />
<br />
ganga Arthi is Performed At Har-ki-pauri During Morning Sunrise & Evening Sunset. It is One of the Famous Rituals in India. It Starts After Sunset, with Great Crowds Gathered in the Region of Both the Banks of a Canal Which Carries the Waters of Ganges. this Ceremony is Dedicated to River Ganga Which is Constantly Providing Life in the Form of Her Water to People. Ganga Arthi Uses Fire as An Offering.<br />
<br />
mansa Devi Temple is One of the Oldest Holy Places in the Town of Haridwar. the Temple is Located Atop the Bilwa Parvat On the Shivalik Hills.. the Temple Holds the Holy Abode of Manasa, Who is Said to have  Emerged from the Mind of the Sage Kashyap in the Form of “shakthi”. Mansa is Regarded as the Sister of the Holy Serpent Vasuki. Mansa Means Wish and It is Believed that the Goddess Fulfils all the Wishes of a Sincere Devotee. Hence No Devotee Turnsout Without Visiting this Temple. Devotees Who Want Their Wishes to Be Fulfilled By Goddess Mansa Tie Threads to the Branches of a Tree Located Here. Once Their Wishes are Fulfilled, People Come Back to the Temple to Untie the Thread from the Tree.<br />
<br />
ram Jhula is An Iron Suspension Bridge Situated At Muni Ki Reti in Rishikesh. It Connects Swargadham, Gita Bhawan and other Temples and is Situated 3 Km North of Rishikesh. Built in the 1980s, Over the Ganges to Cross the River is also a Landmark in the City. One Can See Much More Commotion Here Than in Lakshman Jhula as There are More Ashrams and Temples Near this Bridge.<br />
<br />
sivananda Ashram is Located Beside the Holy River Ganges. It is the Headquarters and Spiritual Focal Point of a Vast Worldwide Organization Called "the Divine Life Society”. this Ashram Caters to the Cultural Needs of the People of all Class. Its Aim is to Disseminate Spiritual Knowledge Through the Preservation of the Ancient Traditions and Cultural Practices of India By Establishing Centres for Practicing Yoga, Publishing Books, Magazines Etc..<br />
<br />
gita Bhawan is Situated On the Banks of the Holy River Ganges, in the  Middle of Himalayan Ranges At Swargashram. It Comprises a Number of Discourse Halls and Over 1000 Rooms Which are Available Free of Charge for the Stay of Devotees. It Offers Many Quiet and Peaceful Spots for Sadhana and Meditation Which Attracts Numerous Devotees to Flock In.<br />
<br />
swarg Ashram Means Heavenly Adobe. It is Located 5 Km from Rishikesh. as the Name Connotes, It is a Beautiful Place Situated in Picturesque Surroundings At the Foothills of Himalayas. Swarg Ashram Built in Memory of Swami Vishudhanand  is the Spiritual "ground Zero” of Rishikesh, Filled with a Assemblage of Various Ashrams and Temples.<br />
<br />
lakshman Jhula is a 450 Ft Long Cantilever  Bridge On the River Ganges in Rishikesh. Laxman Jhula Which Was Once a Jute Rope Bridge Was Reconstructed By Rai Bahadur Sherprashad Tulshan and Was Opened to Traffic in 1930.it is Believed that Lord Ram’s Younger Brother Lakshman Crossed River Ganges Using a Jute Rope from Here. and Hence the Bridge Was Named After Him. this Bridge Gives You a Very Attractive Scenic View of Rishikesh. View of the 13 Storey Trayambakeswar Temple also Called  Tera Manzil is Located At the other End of the Laxman Jhula is a Treat to Your Eyes Gives You a Serene Feeling . Lakshman Temple and Sachha Akhileswar Mahadev Temple are also One of the Major Attractions Around Lakshman Jhula in the Market Which is Just a Walk Away from Laxman Jhula One Can Buy Precious Stones, Religious Items to Paintings and Statues of Almost Every Deity in the Hindu Pantheon.</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>Sightseeing</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.hellofriendlive.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Haridwar Sameday Tour Packages - 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="152209"/>
						</form>
						</div>
						
						";i:1;s:58:"Book Haridwar Sameday Tour Packages - 1 Days Tour Packages";i:2;s:148:"book haridwar sameday tour packages - 1 days tour packages, adventure tour packages, haridwar, rishikesh, har ki pauri, lakshman jhula tour packages";i:3;s:182:"Hello Friend Live offers Haridwar Sameday Tour Packages - 1 Days tour package, budget Adventure tour packages for Haridwar, Rishikesh, Har Ki Pauri, Lakshman Jhula at exciting price.";i:4;s:451:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Haridwar, Rishikesh, Har Ki Pauri, Lakshman Jhula"        
		                 },
		      "description": "",
		      "name": "Haridwar Sameday Tour Packages",
		      "telephone": "+91-9410149286"
		    }
		    </script>
			";i:5;N;}