a:6:{i:0;s:11551:"				<div class="h1"><h1>Andaman With Neil Island Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.saitourism.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.saitourism.com/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Andaman With Neil Island 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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Port Blair, Havelock</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.saitourism.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman With Neil Island 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="104593"/>
						</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_15/435533/174406.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/435533/174406.jpg"  width="150" height="150"    alt="Andaman With Neil Island Tour" title="Andaman With Neil Island 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">Arrive at the Port Blair Airport, Veer Savarkar Airport, an IHPL representative will meet you and assist you to your hotel. The capital city of Andaman, Port Blair is famous for its pristine natural beauty and serene environment. The city offers fabulous views of coconut and palm trees, azure blue water and gleaming sand. It is one of the major tourist places in India.<br />
<br />
Relax and rest at the hotel. After lunch, spend some time at Water Sports Complex (closed on Wednesday). Indulge in water activities at your own cost; like on-water obstacle and non-motorized watersports in a safe area of the sea known as the Aqua Fun Park. Jet Ski, speed boat ride, glass bottom boat ride, banana boat ride, etc. are thrilling. (Please carry change of clothes) or opt to relax by the seaside at Ocean Blue cafe.<br />
<br />
In the evening, proceed to attend the fascinating Sound and Light Show at Cellular Jail (at 1800 or 1900 Hours, depending on light and sound show ticket availability) where the heroic saga of the Indian freedom struggle is brought to life with poignant music and lights.<br />
<br />
Once you've explored the attractions in Port Blair, return back to the hotel and retire for the day. Stay overnight in the 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> Havelock
								</p>
								<p class="aj">Check out of the hotel and head towards Havelock, situated 54 kilometers away from Port Blair. The breathtaking views of beaches scattered by palm trees and coral reefs, azure blue water and amazing resorts in this island attract tourists from all over the world. The ferry takes up to 2.5 hours to reach Havelock. Upon your arrival at Havelock, check in at the hotel and relax for some time.<br />
<br />
Pay a visit to the famous Radhanagar Beach in the afternoon. This beach is not only the finest beach in India but also it has been honored as 'Asia's Best Beach' by the famous 'Time Magazine'. The blue water, peaceful environment and white sand offer an overwhelming look to this beach. Here you can enjoy sun basking and stroll in the soft sand. Also, guests can partake in various adventure sports such as scuba diving, game fishing, swimming and snorkeling etc.<br />
<br />
Post spending quality time at the beach, return back to the hotel and take rest. (Kindly remind hotel to provide packed breakfast at Port Blair since the same is not included at Havelock).</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> Elephant Beach
								</p>
								<p class="aj">Today you are taken for an excursion to Elephant beach. Your ride will arrive at 0700 hours as the boat to the island expedition will leave at 0730 hours. Gear up for the most memorable snorkeling, at a distance of just 25 minutes by Boat. This scenic beach with fallen trees and white sand offers tranquil shallow waters perfect for beginner snorkelers. The boat goes right up to the beach. Enjoy snorkeling or spend the day lying on the beach and relaxing. The hard coral reef here starts close to shore at a depth of about 1 metre and has plenty of marine life.<br />
<br />
Return to your hotel for a relaxing night 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 4:</b> Havelock
								</p>
								<p class="aj">After breakfast, check-out from the hotel and transfer to the jetty to board the ferry to Neil Island. Upon arrival, transfer to the Hotel in Neil Island and check-in. Set out for a sightseeing trip to Laxmanpur Beach and Bharatpur Beach in the evening. Enjoy a comfortable overnight stay at Neil Island.</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> Neil Island
								</p>
								<p class="aj">After breakfast at the hotel, check-out and transfer to the jetty. Board the ferry to Port Blair. (ferry timing depends upon availability). Upon reaching Port Blair, transfer to your hotel and spend the rest of the day at leisure.</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> Port Blair
								</p>
								<p class="aj">Start the day with an appetizing breakfast, start for a tour of places in and around Port Blair. The City Tour starts with the famous Cellular Jail, which is a witness to the Indian freedom struggle. Next is Chatham Saw Mill, one of the oldest & largest in Asia). Forest Museum, is worth your time. At the Fisheries Museum, you would explore around 350 species of marine life such as starfish, fishes and live corals. In the Anthropological Museum, the tribal culture of the region is displayed. Here you will see a huge collection of weapons, models, clothes, baskets, photographs and tribal boats etc. The Naval Marine Museum, known as Samudrika Museum run and owned by the Indian Navy is a treasure of antique collections of corals and shells etc. The museum also displays the history, geography and culture of Andaman and Nicobar Islands. Later, enjoy a fantastic experience of discovering the Port Blair Museum and return back to the hotel for overnight stay.<br />
<br />
After lunch, proceed to visit Corbyn's Cove Beach. The only beach in Port Blair is ideal to relax and unwind. Proceed for local shopping.</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 7:</b> Departure
								</p>
								<p class="aj">Take your return flight Port Blair for onward journey with fond memories of the mesmerizing Andaman.</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>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.saitourism.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman With Neil Island 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="104593"/>
						</form>
						</div>
						
						";i:1;s:68:"Book Andaman With Neil Island Tour - 6 Nights / 7 Days Tour Packages";i:2;s:137:"book andaman with neil island tour - 6 nights / 7 days tour packages, beach and islands tour packages, port blair, havelock tour packages";i:3;s:165:"Sai Tourism offers Andaman With Neil Island Tour - 6 Nights / 7 Days tour package, budget Beach and Islands tour packages for Port Blair, Havelock at exciting price.";i:4;s:421:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair, Havelock"        
		                 },
		      "description": "",
		      "name": "Andaman With Neil Island Tour",
		      "telephone": "+91-8625030405"
		    }
		    </script>
			";i:5;N;}