a:6:{i:0;s:13360:"				<div class="h1"><h1>Kolkata With Gangasagar Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.sunbirdjourney.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.sunbirdjourney.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Kolkata With Gangasagar 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">Tour Code </td>
						<td class="p5px pl0px vat">SBJ.T.0005</td>
						</tr>
												<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">Kolkata</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 12800 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.sunbirdjourney.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kolkata With Gangasagar 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="51034"/>
						</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/377396/100343.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/377396/100343.jpg"  width="150" height="150"    alt="Sagardeep" title="Sagardeep" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Kolkata's history is intimately related to the British East India Company, which first arrived in 1690, and to British India, of which Calcutta became the capital of in 1772. Job Charnock was widely known as the founder of Calcutta (Sutanuti, Govindapur & Calcutta) but in recent years a number of Indian historians have disputed this claim, arguing that Calcutta occupies the site of an older Indian city, centered around the ancient Kali temple at Kalighat. This claim has been accepted by the Kolkata High Court. The Court has dismissed the name of Job Charnock as the founder of the city and 24 th August as its date of birth. The historic Judgement was based upon an high level Expert Commitee findings. It has been proved that Kolkata had an highly civilized society for centuries before the Europeans first came here.<br />
Whatever its origins, Calcutta flowered as the capital of British India during the nineteenth century, the heyday of the Raj. Calcutta University, the first modern Indian university was founded here in 1857. Calcutta became the center of Indian arts and literature, and the national movement for independence got its start here. However, with the transfer of the capital to Delhi in 1911, the pains of the partition of Bengal in 1947, and a violent and bloody Maoist movement (the Naxalite movement) in the 1970s, Calcutta has become synonymous with urban decay and poverty ("New York is deteriorating into New Calcutta," opined an editorial in The New York Times on Dec. 25th, 1988).<br />
<br />
Kolkata's history is intimately related to the British East India Company, which first arrived in 1690, and to British India, of which Calcutta became the capital of in 1772. Job Charnock was widely known as the founder of Calcutta (Sutanuti, Govindapur & Calcutta) but in recent years a number of Indian historians have disputed this claim, arguing that Calcutta occupies the site of an older Indian city, centered around the ancient Kali temple at Kalighat. This claim has been accepted by the Kolkata High Court. The Court has dismissed the name of Job Charnock as the founder of the city and 24 th August as its date of birth. The historic Judgement was based upon an high level Expert Commitee findings. It has been proved that Kolkata had an highly civilized society for centuries before the Europeans first came here.<br />
Whatever its origins, Calcutta flowered as the capital of British India during the nineteenth century, the heyday of the Raj. Calcutta University, the first modern Indian university was founded here in 1857. Calcutta became the center of Indian arts and literature, and the national movement for independence got its start here. However, with the transfer of the capital to Delhi in 1911, the pains of the partition of Bengal in 1947, and a violent and bloody Maoist movement (the Naxalite movement) in the 1970s, Calcutta has become synonymous with urban decay and poverty ("New York is deteriorating into New Calcutta," opined an editorial in The New York Times on Dec. 25th, 1988).<br />
<br />
<br />
Sagar Island is about 80 km south of Kolkata, cut off from the main land by Muriganga river. At present there is no road bridge to connect the island to the main land. The Muriganga river can be crossed by ferry service to reach the Sagar Island. After crossing, the confluence of Sagar (bay of Bengal) & Ganga (holy river Ganges) can be reached via private taxis also.<br />
<br />
<br />
There are two major railway stations in Kolkata - Howrah (not in Kolkata actually, it's in the adjoining city Howrah) and Sealdah. A new terminus station called 'Kolkata' has also started functioning since 2005, but presently it accommodates very few trains. Directly facing Howrah are ferries (Rs. 4) that can get you to the other side of the river either Babu Ghat or Fairlie Place from where you can arrange onward transportation with anything from taxis to public buses to human rickshaws. With the traffic situation this might actually save you time as well as money.Room incidentals.<br />
Lunch during the tour<br />
Any broker charges for Temple.<br />
Horse ride/pony ride etc.<br />
Tipping/gratuities to guide/driver.<br />
Beverages during meal time.<br />
All entrance fees where ever applicable apart from above.<br />
Camera & Video permits. <br />
Any services not mentioned in the above.18-0120-12<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> Arrive Kolkata
								</p>
								<p class="aj">Upon arrival at Howrah Railway station meet & greet by our representative and transfer to hotel. En route visit Howrah Bridge. Check in to the hotel. Afternoon proceed to The famous Eco Tourism Park at Rajarhat. Evening enjoy Light & Sound show. Back to hotel. Dinner & overnight stay at Hotel</p>					
									<p><b>Meals : </b> Dinner</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> Kolkata (Day long excursion to Gangasagar)
								</p>
								<p class="aj">early morning proceed to Gangasagar, (with packed breakfast)Sagar Island is an island in the Ganges delta, lying on the continental shelf of Bay of Bengal about 100 km (54 nautical miles) south of Kolkata. It belongs to the Republic of India and is governed by the State government of West Bengal. The island is large — with an area of 224.3 km, lying between 21°36’ to 21°56’ north latitude and 88°2’ to 88° 11’ east latitude.[1] It has 43 villages and a population of over 160,000. The largest village is also named "Ganga Sagar" or "Gangasagar". Although Sagarisland is a part of Sunderban Administration, it does not have any tiger habitation or mangrove forests or small river tributaries as is characteristic of the overall sunderban delta.This island, also known as Gangasagar or Sagardwip, is a place of Hindu pilgrimage. Every year on the day of MakarSankranti(14 January), hundreds of thousands of Hindus gather to take a holy dip at the confluence of river Ganges and Bay of Bengal and offer prayers (puja) in the Kapil Muni Temple. Back to hotel. Dinner & overnight stay at hotel.</p>					
									<p><b>Meals : </b> Breakfast & Dinner</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> Kolkata City & Temple tour
								</p>
								<p class="aj">After breakfast proceed to Dakhineswar temple and Belur Math (Visit Kali Mata, Thakur Ramakrishna Home and Mata Sarada, Swami Vivekananda math etc),  On 2nd half proceed for Kolkata city tour – Victoriya Memorial, Eden Garden, Indian Museum, Fort William etc. Evening proceed for Shopping by Underground Kolkata Metro Railway.</p>					
									<p><b>Meals : </b> Breakfast & Dinner</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> Depart Kolkata
								</p>
								<p class="aj">After breakfast check out from hotel and transfer to Airport / Railway station</p>					
									<p><b>Meals : </b> Breakfast</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>3 Star Hotel</li>
																		<li>Meals</li>
																		<li>Sightseeing</li>
																		<li>Transport</li>
																		<li>Transfers</li>
																		<li>Airport Pickup-Drop</li>
																		<li>Veg & Non Veg Meals</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Room incidentals.</li><li>
Lunch during the tour</li><li>
Any broker charges for Temple.</li><li>
Horse ride/pony ride etc.</li><li>
Tipping/gratuities to guide/driver.</li><li>
Beverages during meal time.</li><li>
All entrance fees where ever applicable apart from above.</li><li>
Camera & Video permits. </li><li>
Any services not mentioned in the above.</li></ul><br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>ANY DATE<br />
												<p class="large b mb5px dif">Departure Cities with rates :</p>ANY CITIES IN INDIA<br /><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.sunbirdjourney.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kolkata With Gangasagar 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="51034"/>
						</form>
						</div>
						
						";i:1;s:67:"Book Kolkata With Gangasagar Tour - 3 Nights / 4 Days Tour Packages";i:2;s:123:"book kolkata with gangasagar tour - 3 nights / 4 days tour packages, forts and palaces tour packages, kolkata tour packages";i:3;s:155:"Sunbird Journey offers Kolkata With Gangasagar Tour - 3 Nights / 4 Days tour package, budget Forts and Palaces tour packages for Kolkata at exciting price.";i:4;s:4685:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kolkata"        
		                 },
		      "description": "Kolkata's history is intimately related to the British East India Company, which first arrived in 1690, and to British India, of which Calcutta became the capital of in 1772. Job Charnock was widely known as the founder of Calcutta (Sutanuti, Govindapur & Calcutta) but in recent years a number of Indian historians have disputed this claim, arguing that Calcutta occupies the site of an older Indian city, centered around the ancient Kali temple at Kalighat. This claim has been accepted by the Kolkata High Court. The Court has dismissed the name of Job Charnock as the founder of the city and 24 th August as its date of birth. The historic Judgement was based upon an high level Expert Commitee findings. It has been proved that Kolkata had an highly civilized society for centuries before the Europeans first came here.
Whatever its origins, Calcutta flowered as the capital of British India during the nineteenth century, the heyday of the Raj. Calcutta University, the first modern Indian university was founded here in 1857. Calcutta became the center of Indian arts and literature, and the national movement for independence got its start here. However, with the transfer of the capital to Delhi in 1911, the pains of the partition of Bengal in 1947, and a violent and bloody Maoist movement (the Naxalite movement) in the 1970s, Calcutta has become synonymous with urban decay and poverty ("New York is deteriorating into New Calcutta," opined an editorial in The New York Times on Dec. 25th, 1988).

Kolkata's history is intimately related to the British East India Company, which first arrived in 1690, and to British India, of which Calcutta became the capital of in 1772. Job Charnock was widely known as the founder of Calcutta (Sutanuti, Govindapur & Calcutta) but in recent years a number of Indian historians have disputed this claim, arguing that Calcutta occupies the site of an older Indian city, centered around the ancient Kali temple at Kalighat. This claim has been accepted by the Kolkata High Court. The Court has dismissed the name of Job Charnock as the founder of the city and 24 th August as its date of birth. The historic Judgement was based upon an high level Expert Commitee findings. It has been proved that Kolkata had an highly civilized society for centuries before the Europeans first came here.
Whatever its origins, Calcutta flowered as the capital of British India during the nineteenth century, the heyday of the Raj. Calcutta University, the first modern Indian university was founded here in 1857. Calcutta became the center of Indian arts and literature, and the national movement for independence got its start here. However, with the transfer of the capital to Delhi in 1911, the pains of the partition of Bengal in 1947, and a violent and bloody Maoist movement (the Naxalite movement) in the 1970s, Calcutta has become synonymous with urban decay and poverty ("New York is deteriorating into New Calcutta," opined an editorial in The New York Times on Dec. 25th, 1988).


Sagar Island is about 80 km south of Kolkata, cut off from the main land by Muriganga river. At present there is no road bridge to connect the island to the main land. The Muriganga river can be crossed by ferry service to reach the Sagar Island. After crossing, the confluence of Sagar (bay of Bengal) & Ganga (holy river Ganges) can be reached via private taxis also.


There are two major railway stations in Kolkata - Howrah (not in Kolkata actually, it's in the adjoining city Howrah) and Sealdah. A new terminus station called 'Kolkata' has also started functioning since 2005, but presently it accommodates very few trains. Directly facing Howrah are ferries (Rs. 4) that can get you to the other side of the river either Babu Ghat or Fairlie Place from where you can arrange onward transportation with anything from taxis to public buses to human rickshaws. With the traffic situation this might actually save you time as well as money.Room incidentals.
Lunch during the tour
Any broker charges for Temple.
Horse ride/pony ride etc.
Tipping/gratuities to guide/driver.
Beverages during meal time.
All entrance fees where ever applicable apart from above.
Camera & Video permits. 
Any services not mentioned in the above.18-0120-12",
		      "name": "Kolkata With Gangasagar Tour",
		      "telephone": "91-9038012283"
		    }
		    </script>
			";i:5;N;}