a:6:{i:0;s:10160:"				<div class="h1"><h1>Ganges Heritage Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.shreetoursandtravels.in/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Ganges Heritage 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">Kolkata, Murshidabad, Hooghly</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.shreetoursandtravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Ganges Heritage 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="120070"/>
						</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_12/356221/194550.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/356221/194550.jpg"  height="150"  width="150"    alt="Ganges Heritage Tour" title="Ganges Heritage 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> Arrival
								</p>
								<p class="aj">After completing the boarding formalities get accommodated at one of air-conditioned luxury passenger rooms. The vessel sails down the Cantilever Bridge and the Howrah Bridge built across the mighty river Ganga for joining the two metropolises cities of Howrah and Kolkata. While cruising along the beautiful scenic surroundings sail past the Howrah Railway Station, one of the busiest railway stations in the world.<br />
<br />
Also enjoy the close quarter glimpse of the various heritage sites present on the banks of this great river. Some of the major tourist attractions set around the river include numerous temples, bathing ghats, oldest gun, Nimtolla Ghat, House of dolls, Shell Factory and the historical point of Job Charnock.<br />
<br />
On reaching, Belur Math, disembark from the cruise to explore the shrine built by Swami Vivekananda in honor of Ramakrishna Paramahamsa Deva who taught the mankind equality of religion. Before dusk, return to the vessel and leave for Chandannagar.<br />
<br />
This ancient French colony is at present dotted with a large number of historical attractions including Clock Tower, Chruch and Civil Court showcasing strong impression of French architecture in its structure. Enjoy sumptuous dinner and a comfortable overnight stay on board. The vessel is anchored at night in Triveni.</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> Bandel – Kalna
								</p>
								<p class="aj">In the morning while the guests enjoy a lavish breakfast , the vessel sails through the rural Bengal. Enjoy the scenic beauty bounty and the pleasant surroundings of the place. The afternoon is reserved for a meeting with a well-known Historian, who will provide you with great knowledge about the magnificent heritage of the Ganga River. In the later part of the day the vessel reaches Mayapur, the headquarter of ISKON.<br />
<br />
Disembark at the divine abode of Lord Shri Krishna. Savor the rich vegetarian lunch served at the temple. It is believed to be the place of Shri Chaitanya and is also considered to be the spiritual capital of the world. Also pay a visit to the Nabadwip situated on the western bank which is famous as the great center of learning, popularly referred to as the Oxford of Bengal. After exploring Nabadwip, the vessel traverses to visit Kalna.<br />
<br />
The place is greatly famous among the tourists for its beautiful terracotta temples and Rajbari. Cross the river and after a short ride, visit the weavers colony at Shantipur or Phulia for buying the famous Bengal cotton known as ‘Tant’. Enjoy shopping for the fine cotton stoles, dhotis and sarees at any of the co-operative stores. Enjoy sumptuous dinner and an overnight stay on board and the vessel sail to reach Mayapur.</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> Mayapur
								</p>
								<p class="aj">Next morning move out from the vessel to attend Darshan at the Radha Madhava temple. This is the largest temple that could not be built in 200 years and is still under construction. Also pay a visit to the birthplace of Chaitanya Mahaprabhu.<br />
<br />
The other major tourist attractions sprinkled around this place include Chand Kazi’s Samadhi, Bhakti Vinoda Thakura’s House, Srila Prabhupada’s Pushpa Samadhi, Sri Srivasa Angan and the Shri Chaitanya Math. Later in the day cruise to Katwa for its majestic beauty. Also pay a visit to Matiari which is famous for its Kansari artisans skilled in making beautiful bell metal and brass utensils. During the latter part of the day cruise further to Murshidabad.</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> Murshidabad
								</p>
								<p class="aj">On the following morning after breakfast, embark on a sightseeing tour of Murshidabad. It is considered to be one of the oldest cities of West Bengal and features a rich cultural heritage. Pay a visit to the Hazaarduari Palace which was built in the Italian style during 1867. The other attractions to visit in Murshidabad includes Katra Mosque, Kotgola Gardens, Adinath Temple, and the palace garden of Raja Dhanpar Singh Dugar. In the evening return to the vessel for a lip-smacking dinner and a comfortable overnight stay.</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> Departure
								</p>
								<p class="aj">In the morning after breakfast, check out of the cruiser at Murshidabad. Get transferred to Kolkata by train. On reaching Kolkata, board the connectivting train or flight for your onward destination.</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.shreetoursandtravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Ganges Heritage 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="120070"/>
						</form>
						</div>
						
						";i:1;s:59:"Book Ganges Heritage Tour - 4 Nights / 5 Days Tour Packages";i:2;s:128:"book ganges heritage tour - 4 nights / 5 days tour packages, heritage tour packages, kolkata, murshidabad, hooghly tour packages";i:3;s:181:"Book Ganges Heritage Tour - 4 Nights / 5 Days tour packages from Shree Tours & Travels - Get attractive 4 Nights / 5 Days Heritage  tour packages for  Kolkata, Murshidabad, Hooghly.";i:4;s:421:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kolkata, Murshidabad, Hooghly"        
		                 },
		      "description": "",
		      "name": "Ganges Heritage Tour",
		      "telephone": "+91-9871034578"
		    }
		    </script>
			";i:5;N;}