a:6:{i:0;s:29224:"				<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>Andaman Tour - Andaman Escapade with Return Airfare</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.tripandamanholidays.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.tripandamanholidays.com/packages.htm" title="Packages">Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>Andaman Tour - Andaman Escapade with Return Airfare</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> 
						5 Nights / 6 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Port Blair, Havelock</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.tripandamanholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman Tour - Andaman Escapade with Return Airfare - 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="149467"/>
						</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_18/524328/231045.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_18/524328/231045.jpg"  width="150" height="90"    alt="Andaman Tour - Andaman Escapade with Return Airfare" title="Andaman Tour - Andaman Escapade with Return Airfare" /></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>
													
								Step back in time and discover a place which up until now been a long kept secret. If you are seeking a place that has buildings no taller than a coconut tree, a place that boasts beautiful, deserted white sandy beaches, crystal clear waters, and some of the friendliest people in the world, the Andaman Islands is for you. This tour brings to you attraction, activities and more than wanted leisure time to bask into the beauty of Andamans. Enjoy this amazing trip with return airfare.<br />
Carbyn's Cove Beach<br />
Cellular Jail Light and Sound Show<br />
Havelock Island Radhanagar Beach<br />
Elephant Beach + Boat Ride + Snorkeling<br />
Ross Island<br />
City Shopping<br />
Anthropological Museum<br />
High Speed Catamaran to Havelock<br />
Return airfare from Chennai/KolkataVehicle not at disposal at any of the islands.<br />
<br />
Any personal expenses. Room service and special orders. Alcoholic and non alcoholic beverages<br />
<br />
Any extra excursions or sightseeing apart from the suggested tour itinerary.<br />
<br />
Camera Tickets are NOT INCLUDED in the mentioned cost of Sightseeing & Transfers.<br />
<br />
Other meals not mentioned laundry, telephone calls, and incidentals.								</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> 
										</p>
										<p class="aj">Board a flight from Chennai/Kolkata to Port Blair. Upon arrival our representative will attend you and drop you to your hotel to rest and relax. After Lunch proceed to the nearest Beach, Corbyn's Cove. The Crescent shaped coconut palm fringed Corbyn's Cove ideal for swimming & bathing. Coastal drive to this beach is awesome, a stretch of around 4 Km with an open sea towards your left is a sight to experience. Take pit stops during this ride to click pictures and to explore the beauty. Later proceed to attend the enthralling Sound and Light Show at Cellular Jail - where the heroic saga of the Indian freedom struggle is brought alive. Enacting of freedom fighters and their struggle for India's Independence is enacted during this trip. Post completion of this trip, we drop you back to your hotel.</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> 
										</p>
										<p class="aj">Today we depart to Andaman Islands most amazing destination, Havelock Island. The destination is rated as the best island in India. Depart from Port Blair to Havelock Island in a ferry. Upon reaching Havelock, our representative attends you and will drop you at your hotel. Rest and Relax in a beachside resort. We at Experience Andamans only share beach side resorts for exquisite experiences. Later we begin our journey to one among Asia's best beach, Radhanagar Beach. Explore this white sand beach and bask in the beauty of this natural wonder. Post this we drop you back to your resort where you relax and unwind.</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> 
										</p>
										<p class="aj">How about a day doing nothing and just sitting near a beach with your loved ones and a book to read or a beer in hand? This day will be perfect for this. You can even avail an activity such as Scuba Diving, Sea Walk or Snorkeling during this day. Today is a leisure day when you just relax by the beach.</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> 
										</p>
										<p class="aj">Well, how about exploring something underwater? Today, we begin our journey to the most visited snorkeling destination in Havelock Island, Elephant Beach. Around 30 Minutes by boat, Elephant Beach flaunts one among the best reefs in Havelock Island. The great thing is that the reef here starts at a depth of less than a meter. Upon reaching Elephant beach, we rest and relax. Later, our guide takes you to snorkel underwater where you explore the amazing reef in Elephant beach. Later we return back from Elephant beach to the Havelock dock in a boat. Later in the evening around 4:00 PM you board a ferry to Port Blair. Upon arriving in Port Blair, our representative attends you and drop you back to your hotel. Note: Inclusive of snorkeling equipment, car pick up, boat ride and drop to the harbor. (The trip is subject to weather conditions and visibility). Please note that NO Swimming Skills are required for this activity. Do note that many hotels in Andaman Islands have early check-out timing around 8:00 AM.</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> 
										</p>
										<p class="aj">Visit the Administrative Capital Prior to Independence from where the Britishers governed the entire A & N Islands-ROSS ISLAND, A destination for Nature Walk amidst friendly Deers & Peacocks. Smritika Museum, records the life of its political prisoners. Upon return from Ross Island visit to the tribal museums that hosts history of various kinds of tribes in the Andaman. Later in the evening proceed to the shopping point to purchase gifts for your family and friends.</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 6:</b> 
										</p>
										<p class="aj">Return home with sweet memories of this mesmerizing Island :) .</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																				<li>Airfare Deals on Select Dates Only.</li><li>
Accommodation in rooms as given at respective hotels with breakfast and all taxes on double sharing basis.</li><li>
The above rates are on per person basis.</li><li>
All sightseeing by personal AC Vehicle.</li><li>
Return Airfare from Chennai/Kolkata/Bangalore Economy Class.</li><li>
Full day tour with all transfers including airport pick up and drop.</li><li>
All entry tickets, ferry tickets and permit charges.</li><li>
All Side Cruise Tickets.</li><li>
Breakfast at respective hotels.</li><li>
Experience Andamans travel experts assistance in all the islands.</li><li>
Personal Tour Coordinators for one Point of Contact.</li><li>
Travel assistance by field executive at all the major entry exit points(Airport/Jetty/Jail/Water sports complex, Havelock/Neil etc).</li><li>
All dedicated vehicle charges ( Scorpio , Xylo , Ertiga , Tavera, Swift Desire ) as per itinerary in AC and not at disposal.</li><li>
Transfer to Havelock Island/Neil Island in MAKRUZZ CRUISE/GREEN OCEAN/COASTAL CRUISE.</li><li>
Complementary snorkeling for trips to Elephant beach in Havelock Island</li><li>
Complementary trip to a near by location for sightseeing/dinner. Time duration 30 Minutes.</li><li>
In case of Baratang Island Trip a Personal AC Vehicle will be provided.</li><li>
Including all taxes.</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Vehicle not at disposal at any of the islands.</li><li>
Any personal expenses. Room service and special orders. Alcoholic and non alcoholic beverages</li><li>
Any extra excursions or sightseeing apart from the suggested tour itinerary.</li><li>
Camera Tickets are NOT INCLUDED in the mentioned cost of Sightseeing & Transfers.</li><li>
Other meals not mentioned laundry, telephone calls, and incidentals.</li></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.tripandamanholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman Tour - Andaman Escapade with Return Airfare - 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="149467"/>
						</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.tripandamanholidays.com/packages-in-port-blair.htm" title="Packages in Port Blair">Port Blair</a> <b class="alpha50 bn small">(47)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.tripandamanholidays.com/packages-in-havelock.htm" title="Packages in Havelock">Havelock</a> <b class="alpha50 bn small">(46)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.tripandamanholidays.com/packages-in-genting.htm" title="Packages in Genting">Genting</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.tripandamanholidays.com/packages-in-kolkata.htm" title="Packages in Kolkata">Kolkata</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.tripandamanholidays.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(47)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.tripandamanholidays.com/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(47)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.tripandamanholidays.com/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(9)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.tripandamanholidays.com/honeymoon-holidays-catid.htm" title="Honeymoon Packages">Honeymoon</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.tripandamanholidays.com/family-holidays-catid.htm" title="Family Packages">Family</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 Port Blair, Havelock</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.tripandamanholidays.com/tour-packages/andaman-honeymoon-delight-package-with-neil-island.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/524328/230101.jpg"  alt="Andaman Honeymoon Delight Package with Neil Island" title="Andaman Honeymoon Delight Package with Neil Island"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.tripandamanholidays.com/tour-packages/andaman-honeymoon-delight-package-with-neil-island.htm" title="Andaman Honeymoon Delight Package with Neil Island"><h3>Andaman Honeymoon Delight Package With Nei..</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> : 
								5 Nights / 6 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_148616" id="pkg_148616" method="post" action="http://www.tripandamanholidays.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.tripandamanholidays.com/tour-packages/andaman-honeymoon-delight-package-with-neil-island.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Andaman Honeymoon Delight Package with Neil Island - 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="148616"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.tripandamanholidays.com/tour-packages/andaman-tour-twin-islands-ross-and-smith-island-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/524328/230631.jpg"  alt="Andaman Tour - Twin Islands Ross and Smith Island Tour" title="Andaman Tour - Twin Islands Ross and Smith Island Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.tripandamanholidays.com/tour-packages/andaman-tour-twin-islands-ross-and-smith-island-tour.htm" title="Andaman Tour - Twin Islands Ross and Smith Island Tour"><h3>Andaman Tour - Twin Islands Ross And Smith..</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> : 
								8 Nights / 9 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_149105" id="pkg_149105" method="post" action="http://www.tripandamanholidays.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.tripandamanholidays.com/tour-packages/andaman-tour-twin-islands-ross-and-smith-island-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Andaman Tour - Twin Islands Ross and Smith Island 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="149105"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.tripandamanholidays.com/tour-packages/amazing-experience-andaman-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/524328/214388.jpg"  alt="Amazing Experience Andaman Tour" title="Amazing Experience Andaman Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.tripandamanholidays.com/tour-packages/amazing-experience-andaman-tour.htm" title="Amazing Experience Andaman Tour"><h3>Amazing Experience Andaman 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> : 
								5 Nights / 6 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_135325" id="pkg_135325" method="post" action="http://www.tripandamanholidays.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.tripandamanholidays.com/tour-packages/amazing-experience-andaman-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Amazing Experience Andaman 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="135325"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.tripandamanholidays.com/tour-packages/honeymoon-extravaganza-with-havelock-island-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/524328/230115.jpg"  alt="Honeymoon Extravaganza with Havelock Island Tour" title="Honeymoon Extravaganza with Havelock Island Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.tripandamanholidays.com/tour-packages/honeymoon-extravaganza-with-havelock-island-tour.htm" title="Honeymoon Extravaganza with Havelock Island Tour"><h3>Honeymoon Extravaganza With Havelock Islan..</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> : 
								7 Nights / 8 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_148630" id="pkg_148630" method="post" action="http://www.tripandamanholidays.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.tripandamanholidays.com/tour-packages/honeymoon-extravaganza-with-havelock-island-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Honeymoon Extravaganza with Havelock Island 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="148630"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.tripandamanholidays.com/tour-packages/andaman-tour-explore-havelock-island.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/524328/230648.jpg"  alt="Andaman Tour - Explore Havelock Island" title="Andaman Tour - Explore Havelock Island"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.tripandamanholidays.com/tour-packages/andaman-tour-explore-havelock-island.htm" title="Andaman Tour - Explore Havelock Island"><h3>Andaman Tour - Explore Havelock Island</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> : 
								4 Nights / 5 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_149121" id="pkg_149121" method="post" action="http://www.tripandamanholidays.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.tripandamanholidays.com/tour-packages/andaman-tour-explore-havelock-island.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Andaman Tour - Explore Havelock Island - 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="149121"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.tripandamanholidays.com/tour-packages/havelock-honeymoon-escape-with-jolly-bouy-island-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/524328/230109.jpg"  alt="Havelock Honeymoon Escape with Jolly Bouy Island Package" title="Havelock Honeymoon Escape with Jolly Bouy Island Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.tripandamanholidays.com/tour-packages/havelock-honeymoon-escape-with-jolly-bouy-island-package.htm" title="Havelock Honeymoon Escape with Jolly Bouy Island Package"><h3>Havelock Honeymoon Escape With Jolly Bouy ..</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> : 
								4 Nights / 5 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_148624" id="pkg_148624" method="post" action="http://www.tripandamanholidays.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.tripandamanholidays.com/tour-packages/havelock-honeymoon-escape-with-jolly-bouy-island-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Havelock Honeymoon Escape with Jolly Bouy Island Package - 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="148624"/>
							</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:90:"Book Andaman Tour - Andaman Escapade with Return Airfare - 5 Nights / 6 Days Tour Packages";i:2;s:159:"book andaman tour - andaman escapade with return airfare - 5 nights / 6 days tour packages, beach and islands tour packages, port blair, havelock tour packages";i:3;s:197:"Trip Andaman Holidays offers Andaman Tour - Andaman Escapade with Return Airfare - 5 Nights / 6 Days tour package, budget Beach and Islands tour packages for Port Blair, Havelock at exciting price.";i:4;s:1564:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair, Havelock"        
		                 },
		      "description": "Step back in time and discover a place which up until now been a long kept secret. If you are seeking a place that has buildings no taller than a coconut tree, a place that boasts beautiful, deserted white sandy beaches, crystal clear waters, and some of the friendliest people in the world, the Andaman Islands is for you. This tour brings to you attraction, activities and more than wanted leisure time to bask into the beauty of Andamans. Enjoy this amazing trip with return airfare.
Carbyn's Cove Beach
Cellular Jail Light and Sound Show
Havelock Island Radhanagar Beach
Elephant Beach + Boat Ride + Snorkeling
Ross Island
City Shopping
Anthropological Museum
High Speed Catamaran to Havelock
Return airfare from Chennai/KolkataVehicle not at disposal at any of the islands.

Any personal expenses. Room service and special orders. Alcoholic and non alcoholic beverages

Any extra excursions or sightseeing apart from the suggested tour itinerary.

Camera Tickets are NOT INCLUDED in the mentioned cost of Sightseeing & Transfers.

Other meals not mentioned laundry, telephone calls, and incidentals.",
		      "name": "Andaman Tour - Andaman Escapade with Return Airfare",
		      "telephone": "+91-9531880557"
		    }
		    </script>
			";i:5;N;}