a:6:{i:0;s:11623:"				<div class="h1"><h1>Andaman Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.saiandamanholidays.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.saiandamanholidays.in/travel-packages.htm" title="Travel Packages">Travel Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Andaman Tour</p>
				<br />
				
									<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>
					
					<table class="w100 formTable imgWidth">
					<tr>
					
											<td class="p10px vat imgWidth150 w150px">
						<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_14/401679/111736.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/401679/111736.jpg"  width="150" height="150"    alt="Andaman Tour" title="Andaman Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											
					<td class="p10px">
											<p class="mb5px"><b>Duration :</b> 
						3 Nights / 4 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Port Blair</p>
												<p><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.saiandamanholidays.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman 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="59161"/>
						</form>
						</p>
											</td>
					</tr>
					</table>
										<br />
					
					<div class="packageTabs myTabs horizontal mc"><!--MY TABS STARTS-->
					<ul class="fo lsn m0px p0px">
					
											<li id="tab2"><a href="#data2">Itinerary</a></li>
												<li id="tab4"><a href="#data4">Tour Detail</a></li>
												<li id="tab6"><a href="#data6">Terms &amp; Conditions</a></li>
											</ul>
					
					
											<div class="ic bdr" id="data2"><!--DATA2 START-->
						<br />
						<ul class="lsn m0px p0px">
									<li>
									<p class="b mb5px">Day 1: Arrive Port Blair
									</p>
									<div class="data p10px">Fly in to Port Blair Airport. Our representative will meet and assist you at the Veer Savarkar Airport. Board the waiting vehicles, drive to your hotel and check in. Our representative will assist to do Hotel Check in formalities. First half of the day is at leisure. After lunch, visit the Corbyns Cove Beach - 9 kms from Port Blair - a coconut palm fringed beach, ideal for swimming, sun-basking & bathing. After that, start for a day tour of places in & around Port Blair (City Tour) - Anthropological Museum, Fisheries (Marine) Museum and the Cottage Industries Emporium (Sagarika) - for shopping & souvenirs. In the evening, attend the enthralling Sound and Light Show at Cellular Jail - where the heroic saga of the Indian freedom struggle is brought alive. Return to your Port Blair hotel late in the evening for a delicious dinner and overnight stay.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 2: Port Blair - Coral Island + Ross Island - Port Blair
									</p>
									<div class="data p10px">Start after breakfast for a full-day Excursion to North Bay (Coral Island) - to see coral reefs, exotic varieties of beautiful ornamental fishes and other marine life. Optional Activities - Snorkelling, Swimming, Glass Bottom Boat Ride, Trekking + visit Ross Island - from where the Britishers' governed the entire A&N islands, prior to India’s Independence. This island is an ideal destination for nature walk amidst sylvan surroundings with deers, peacocks, exotic birds, etc.</div>					
										<p><b>Meals : </b> Breakfast</p>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 3: Port Blair- Havelock- Port Blair
									</p>
									<div class="data p10px">Early morning after breakfast you will be transferred to Phoniex bay Harbour. Head to Havelock Island by Luxury Catamaran M V MAKRUZZ / GOVT FERRY to Havelock Island (57 kms by sea from Port Blair). In Havelock Island our Company’s representatives will be there to meet you at the Harbour. Our company’s vehicle will take you to the Radhanagar Beach. Radhanagar Beach is situated 12kms from Havelock ferry pier is undoubtedly one of the best beaches of Andaman Islands. Fine white sand, turquoise blue waters and a lot of peace and serenity are the hallmark of this beautiful landmass. After spending luxurious time in this pristine beach then proceed to Havelock Harbour to take a ferry for Port Blair and reach Port Blair by evening and our company’s representatives will be at Phoniex Bay Harbour to pick you up and get transferred to the Hotel / Resort.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 4: Depart Port Blair
									</p>
									<div class="data p10px">Transfer to Airport to board the flight to your destination, with happy memories of your trip in<br />
Andaman.</div>					
									</li>
									<br />					
							</ul>						<!--DATA2 EMD--></div>
											
						<div class="ic bdr" id="data4"><!--DATA4 START-->
						<br />
						Expenses of personal nature such as tips, telephone calls, laundry, liquor etc.<br />
Any deviation from the route map.<br />
Any other item not specified in cost included.<br />
Any food other than the plan chosen.<br />
Guide and entrance fees during Sightseeing.<br />
Air fare / Train fare.<br />
Medical Insurance.<br />
Any optional activities like water sports etc. However, if you are interested in any of these activities, we can guide and arrange for the same with the supplementary charges<br />
Lunch & Dinner is as per the meal plan. <br />
Vehicle at disposal.<br />
Any Extra excursions apart from the suggested itinerary.<br />
Personal expenses.<br />
Expenses occurred due to bad weather, Flight or ferry cancellation, strike or any political unrest to be paid by guest as per actual.<br />
<br />
TERMS AND CONDITIONS<br />
<br />
Check out time for most of the hotels mentioned is 0700 hrs.<br />
Please note that our representative will hold placard with your name/travels name just outside the exit gate of the Terminal.<br />
The vehicle used will be exclusive for the couple / group and it will be as per contract & will change as advised / mentioned.<br />
Online rates are subject to change in case of change in hotel rates, transport rates, Government taxes etc.<br />
The hotels and services as mentioned in the itinerary are subject to confirmation.<br />
Per couple rates (Rs) - applicable on 2 persons staying together sharing the same room.<br />
Meal plan: EP - Accommodation only, CP - Accommodation with breakfast, MAP - Accommodation with breakfast, lunch or dinner, AP - Accommodation with breakfast, lunch & dinner.<br />
The package cannot be combined with any other offer.<br />
Refund on cancellation strictly depends upon concerned hotel's cancellation policy.<br />
The above package is not valid during national holidays, festivals & long weekends & 15 Dec-20 Jan<br />
Sai Andaman Holidays reserves the right to change/modify or terminate the offer any time at its own discretion and without any prior notice.<br />
Meals and services, unless specified in the itinerary, are not included.							<p class="b mb5px dif">Inclusions :</p>
							<ul>
																	<li>Sightseeing</li>
																				<li>Transfers</li>
																	</ul>
							<br />
														<p class="b mb5px dif">Exclusions :</p> <ul><li>Expenses of personal nature such as tips, telephone calls, laundry, liquor etc.</li><li>
Any deviation from the route map.</li><li>
Any other item not specified in cost included.</li><li>
Any food other than the plan chosen.</li><li>
Guide and entrance fees during Sightseeing.</li><li>
Air fare / Train fare.</li><li>
Medical Insurance.</li><li>
Any optional activities like water sports etc. However, if you are interested in any of these activities, we can guide and arrange for the same with the supplementary charges</li><li>
Lunch & Dinner is as per the meal plan. </li><li>
Vehicle at disposal.</li><li>
Any Extra excursions apart from the suggested itinerary.</li><li>
Personal expenses.</li><li>
Expenses occurred due to bad weather, Flight or ferry cancellation, strike or any political unrest to be paid by guest as per actual.</li><li>
TERMS AND CONDITIONS</li><li>
Check out time for most of the hotels mentioned is 0700 hrs.</li><li>
Please note that our representative will hold placard with your name/travels name just outside the exit gate of the Terminal.</li><li>
The vehicle used will be exclusive for the couple / group and it will be as per contract & will change as advised / mentioned.</li><li>
Online rates are subject to change in case of change in hotel rates, transport rates, Government taxes etc.</li><li>
The hotels and services as mentioned in the itinerary are subject to confirmation.</li><li>
Per couple rates (Rs) - applicable on 2 persons staying together sharing the same room.</li><li>
Meal plan: EP - Accommodation only, CP - Accommodation with breakfast, MAP - Accommodation with breakfast, lunch or dinner, AP - Accommodation with breakfast, lunch & dinner.</li><li>
The package cannot be combined with any other offer.</li><li>
Refund on cancellation strictly depends upon concerned hotel's cancellation policy.</li><li>
The above package is not valid during national holidays, festivals & long weekends & 15 Dec-20 Jan</li><li>
Sai Andaman Holidays reserves the right to change/modify or terminate the offer any time at its own discretion and without any prior notice.</li><li>
Meals and services, unless specified in the itinerary, are not included.</li></ul><br />
													<!--DATA4 EMD--></div>
												<div class="ic bdr" id="data6"><!--DATA6 START-->
						<br />
						~^#^~~^#^~<ul>
	<li>
	<p align="justify" style="widows: 8; page-break-inside: avoid"><font color="#000000"><font face="Arial, serif"><font size="3"><span lang="en-IN"><b>Rates are valid only for Indian nationals residing in India. Rates may vary depending on the country of residence.</b></span></font></font></font>
	</li>
	<li>
	<p align="justify" style="widows: 8; page-break-inside: avoid"><font color="#000000"><font face="Arial, serif"><font size="3"><span lang="en-IN"><b>City tour, Jolly buoy / Red Skin, Baratang are closed on Monday and on Government holidays. Ross Island is closed on Wednesday. Forest museum &amp; Chatham saw mill are closed on Sunday. Most of the sightseeing points are closed on Monday, in case your city tour is Monday then we will swap sightseeing to any other day to cover the entire tour including.</b></span></font></font></font>
	</li>
</ul>						<!--DATA6 EMD--></div>
											
					<!--MY TABS END--></div>
					";i:1;s:51:"Book Andaman Tour - 3 Nights / 4 Days Tour Packages";i:2;s:110:"book andaman tour - 3 nights / 4 days tour packages, beach and islands tour packages, port blair tour packages";i:3;s:147:"Sai Andaman Holidays offers Andaman Tour - 3 Nights / 4 Days tour package, budget Beach and Islands tour packages for Port Blair at exciting price.";i:4;s:2413:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair"        
		                 },
		      "description": "Expenses of personal nature such as tips, telephone calls, laundry, liquor etc.
Any deviation from the route map.
Any other item not specified in cost included.
Any food other than the plan chosen.
Guide and entrance fees during Sightseeing.
Air fare / Train fare.
Medical Insurance.
Any optional activities like water sports etc. However, if you are interested in any of these activities, we can guide and arrange for the same with the supplementary charges
Lunch & Dinner is as per the meal plan. 
Vehicle at disposal.
Any Extra excursions apart from the suggested itinerary.
Personal expenses.
Expenses occurred due to bad weather, Flight or ferry cancellation, strike or any political unrest to be paid by guest as per actual.

TERMS AND CONDITIONS

Check out time for most of the hotels mentioned is 0700 hrs.
Please note that our representative will hold placard with your name/travels name just outside the exit gate of the Terminal.
The vehicle used will be exclusive for the couple / group and it will be as per contract & will change as advised / mentioned.
Online rates are subject to change in case of change in hotel rates, transport rates, Government taxes etc.
The hotels and services as mentioned in the itinerary are subject to confirmation.
Per couple rates (Rs) - applicable on 2 persons staying together sharing the same room.
Meal plan: EP - Accommodation only, CP - Accommodation with breakfast, MAP - Accommodation with breakfast, lunch or dinner, AP - Accommodation with breakfast, lunch & dinner.
The package cannot be combined with any other offer.
Refund on cancellation strictly depends upon concerned hotel's cancellation policy.
The above package is not valid during national holidays, festivals & long weekends & 15 Dec-20 Jan
Sai Andaman Holidays reserves the right to change/modify or terminate the offer any time at its own discretion and without any prior notice.
Meals and services, unless specified in the itinerary, are not included.",
		      "name": "Andaman Tour",
		      "telephone": "91-9538031728/8001435933/9620231698"
		    }
		    </script>
			";i:5;N;}