a:6:{i:0;s:14295:"				<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
									<div class="h1"><h1>Kolkata To Ganga Sagar Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.mayapuryatra.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.mayapuryatra.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>Kolkata To Ganga Sagar Tour</p> 
									
						<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">
					
											<p class="mb5px"><b>Duration :</b> 
						1 Day 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> South 24 Parganas</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.mayapuryatra.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kolkata To Ganga Sagar Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="108504"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_17/496710/182102.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/496710/182102.jpg"  width="150" height="150"    alt="Kolkata To Ganga Sagar Tour" title="Kolkata To Ganga Sagar Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								Gangasagar Yatra is popular all over the world for the holy bath Yatra as mentioned in the Mahabharata where a learned sage explained the significance of taking dip at the confluence of Gangasagar to Bhisma. Since that time this place has been regarded as the one of the holiest places to take bath. Gangasagar Yatra especially falls on either 14th or 15th January every year in which the devotees perform their rituals and prayer and take a dip in the holy Ganges. The very concept behind this holy dip during Gangasagar Yatra is to cleanse and to purify the soul. Gangasagar Yatra is also famous all over the world for the Kumbh Mela where devotees in lakhs take holy dip in the Ganges River. Gangasagar Yatra is made to the place where the Ganges flows into the Bay of Bengal surrounded by Sagara Island and Diamond Harbor at the confluence of Ganges and Bay of Bengal. Gangasagar Yatra offers other Darshan like Gangasagar Yatra to Kapila Muni Temple, Gangasagar Yatra during Makara-Sankranti, Gangasagar Yatra to Kalna, Gangasagar Yatra to Devananda Gaudiya Math and Gangasagar Yatra to Dhameswara Temple.<br />
The visitors to the holy destination of Sagar Island seek mukti (salvation) here. On the auspicious occasion of Makar Sankranti, sometime during winter (mid-January), pilgrims from across the country come together at Ganga Sagar to take a holy dip at the confluence of the river Ganga and the Bay of Bengal. Following the sacred dip, they offer 'Puja' at the ashram located nearby which is related with Kapil Muni - the celebrated sage of ancient times.<br />
During the occasion a wonderful fair takes place at the spot. Known as Ganga Sagar Mela, or the Bathing Festival, this fair enjoys the distinction of being the largest fair in the entire West Bengal. It also happens to be the second biggest congregation of humanity after the world-renowned Kumbha Mela. The unique Bathing Festival signifies the occasion of sun making its foray into Capricorn and celebrates the liberation of man’s souls.<br />
Other attractions of the Sagar Island include, Kapil Muni temple at South Sagar, Fairgrounds at South Sagar, Sea beach at South Sagar, Sagar Marine Park at South Sagar, Sagar Lighthouse and Port at Beguakhali, Ramkrisna Mission Ashram, Sushama Devichowdhurani Marine Biological Research Institute (SDMBRI) at Bamankhali, Chimaguri Mudflat -- the entry point to the Mangrove Forest, besides Wind Mills -- The Island receives its power from the wind energy.<br />
Reaching There:- Sagar Island is located 150 km away from Kolkata -- the state’s capital – which is well connected by rail, road and air. Coming back to Sagar Island, to make a pilgrimage to this one of the most visited tourist places in India one has hire boats or ferries that regularly ply between the island and the mainland.								</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> Same day tour
										</p>
										<p class="aj">Same day tour<br />
1-3 pax- 4000 rs with ac taxi<br />
1-6 pax- 6000 rs with ac scorpio</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.</li></ul>					
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>* 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.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.mayapuryatra.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kolkata To Ganga Sagar 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="108504"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mayapuryatra.com/packages-in-nadia.htm" title="Packages in Nadia">Nadia</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mayapuryatra.com/packages-in-kolkata.htm" title="Packages in Kolkata">Kolkata</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mayapuryatra.com/packages-in-south24-parganas.htm" title="Packages in South 24 Parganas">South 24 Parganas</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mayapuryatra.com/packages-in-howrah.htm" title="Packages in Howrah">Howrah</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mayapuryatra.com/packages-in-darwin.htm" title="Packages in Darwin">Darwin</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mayapuryatra.com/packages-in-hooghly.htm" title="Packages in Hooghly">Hooghly</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mayapuryatra.com/packages-in-murshidabad.htm" title="Packages in Murshidabad">Murshidabad</a> <b class="alpha50 bn small">(1)</b></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mayapuryatra.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mayapuryatra.com/angling-holidays-catid.htm" title="Angling Packages">Angling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mayapuryatra.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mayapuryatra.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(1)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for South 24 Parganas</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.mayapuryatra.com/tour-packages/mayapurto-ganga-sagar-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/496710/180033.jpg"  alt="Mayapur To Ganga Sagar Tour" title="Mayapur To Ganga Sagar Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.mayapuryatra.com/tour-packages/mayapurto-ganga-sagar-tour.htm" title="Mayapur To Ganga Sagar Tour"><h3>Mayapur To Ganga Sagar Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								1 Day 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  South 24 Parganas</p>
															<div class="mt10px small">
							<form name="pkg_108507" id="pkg_108507" method="post" action="http://www.mayapuryatra.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.mayapuryatra.com/tour-packages/mayapurto-ganga-sagar-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Mayapur To Ganga Sagar Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="108507"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:55:"Book Kolkata To Ganga Sagar Tour - 1 Days Tour Packages";i:2;s:110:"book kolkata to ganga sagar tour - 1 days tour packages, valley tour packages, south 24 parganas tour packages";i:3;s:152:"Book Kolkata To Ganga Sagar Tour - 1 Days tour packages from Mayapur Tour Services - Get attractive 1 Days Valley  tour packages for  South 24 Parganas.";i:4;s:3216:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "South 24 Parganas"        
		                 },
		      "description": "Gangasagar Yatra is popular all over the world for the holy bath Yatra as mentioned in the Mahabharata where a learned sage explained the significance of taking dip at the confluence of Gangasagar to Bhisma. Since that time this place has been regarded as the one of the holiest places to take bath. Gangasagar Yatra especially falls on either 14th or 15th January every year in which the devotees perform their rituals and prayer and take a dip in the holy Ganges. The very concept behind this holy dip during Gangasagar Yatra is to cleanse and to purify the soul. Gangasagar Yatra is also famous all over the world for the Kumbh Mela where devotees in lakhs take holy dip in the Ganges River. Gangasagar Yatra is made to the place where the Ganges flows into the Bay of Bengal surrounded by Sagara Island and Diamond Harbor at the confluence of Ganges and Bay of Bengal. Gangasagar Yatra offers other Darshan like Gangasagar Yatra to Kapila Muni Temple, Gangasagar Yatra during Makara-Sankranti, Gangasagar Yatra to Kalna, Gangasagar Yatra to Devananda Gaudiya Math and Gangasagar Yatra to Dhameswara Temple.
The visitors to the holy destination of Sagar Island seek mukti (salvation) here. On the auspicious occasion of Makar Sankranti, sometime during winter (mid-January), pilgrims from across the country come together at Ganga Sagar to take a holy dip at the confluence of the river Ganga and the Bay of Bengal. Following the sacred dip, they offer 'Puja' at the ashram located nearby which is related with Kapil Muni - the celebrated sage of ancient times.
During the occasion a wonderful fair takes place at the spot. Known as Ganga Sagar Mela, or the Bathing Festival, this fair enjoys the distinction of being the largest fair in the entire West Bengal. It also happens to be the second biggest congregation of humanity after the world-renowned Kumbha Mela. The unique Bathing Festival signifies the occasion of sun making its foray into Capricorn and celebrates the liberation of man’s souls.
Other attractions of the Sagar Island include, Kapil Muni temple at South Sagar, Fairgrounds at South Sagar, Sea beach at South Sagar, Sagar Marine Park at South Sagar, Sagar Lighthouse and Port at Beguakhali, Ramkrisna Mission Ashram, Sushama Devichowdhurani Marine Biological Research Institute (SDMBRI) at Bamankhali, Chimaguri Mudflat -- the entry point to the Mangrove Forest, besides Wind Mills -- The Island receives its power from the wind energy.
Reaching There:- Sagar Island is located 150 km away from Kolkata -- the state’s capital – which is well connected by rail, road and air. Coming back to Sagar Island, to make a pilgrimage to this one of the most visited tourist places in India one has hire boats or ferries that regularly ply between the island and the mainland.",
		      "name": "Kolkata To Ganga Sagar Tour",
		      "telephone": "+91-7797587849"
		    }
		    </script>
			";i:5;N;}