a:6:{i:0;s:13406:"				<div class="h1"><h1>9N/10D Andaman Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.andamandiyatours.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.andamandiyatours.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>9N/10D Andaman 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">
						9 Nights / 10 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Port Blair</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.andamandiyatours.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="9N/10D Andaman 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="44721"/>
						</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/387716/88223.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/387716/88223.jpg"  width="150" height="150"    alt="9N/10D Andaman Tour" title="9N/10D Andaman 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> Port Blair
								</p>
								<p class="aj">After arriving at Port Blair Airport Guests leave for hotel with our envoy. After checking into hotel and little relaxation, guests have breakfast. After Lunch, the tour starts with a trip to CORBYNS COVE BEACH - a coconut palm fringed beach, 7 kms away from Port Blair town and ideal for Swimming and Sun-Bathing. In the evening guests visit the Cellular Jail to see the LIGHT & SOUND SHOW - history of the heroic freedom struggle which is brought alive by a recorded voice-over performance. After the show Guests move to MARINA PARK - a seafront park in close proximity to Water Sports Complex where local inhabitants and tourists spend their evenings by enjoying the sea breeze and sea waves. Tour ends for the day and Guests retire to their respective Hotel/Resort at Port Blair for 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 2:</b> Havelock Island
								</p>
								<p class="aj">At morning Guests, with their breakfast packed, leave Port Blair by inter-island Cruise Ship depart to visit HAVELOCK ISLAND - an island 50 kms away from Port Blair famous for its serene beaches. On arrival, our envoy receives Guests at Havelock Jetty and makes arrangements for their outing at RADHANAGAR BEACH - Asia’s 7th most beautiful beach. After the visit Guests retire for the day to their respective Hotel/Resort at Havelock for 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 3:</b> Elephanta Beach
								</p>
								<p class="aj">After Breakfast, Guests check out from their room and our envoy takes them by local boat to another ideal site at Havelock Island called ELEPHANTA BEACH - habitating magnificent coral reef, exotic varieties of beautiful ornamental fish and under water marine life. Guests watch these during SNORKELING . After lunch Guests return back to Port Blair by inter-island Cruise Ship. On arrival at Port Blair our envoy receives Guests from Harbour and drops them at hotel for 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 4:</b> City Tour
								</p>
								<p class="aj">After Breakfast, our envoy takes Guests for CITY TOUR which begins with the CELLULAR JAIL - a place of pilgrimage for all freedom loving people which gives anyone a glimpse of the pre-independence era and freedom struggle. Following it is ANTHROPOLOGICAL MUSEUM - an ethnographic museum, it illustrates the four Negrito Tribes of Andaman. It is followed by FISHERIES AQUARIUM - exhibiting species of marine life endemic to the Island. NAVAL MARINE MUSEUM (Samudrika) - gives a good retrospect of the history, shell, coral marine life, geography and archaeology of these Islands. It is followed by CHATHAM SAW MILL - one of the oldest and largest wood mill in Asia. Forest activities are illustrated through small scale models and decorative pieces made of famous wood are displayed in forest museum. After Lunch, Guests visit CHIDIYA TAPU BEACH - at a distance of 35kms from the city, Chidiya Tapu is the southern extreme of Andaman Trunk Road (ATR) with lush green mangroves and numerous chirping birds. This beautiful beach is famous for its sunset and the mesmerizing twilight of dusk. After returning from Chidiya Tapu Guests retire to their respective Hotel/Resort at Port Blair for 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> Baratang Island
								</p>
								<p class="aj">Guests leave very early in the morning for BARATANG ISLAND which is situated between South Andaman & Middle Andaman around 100 kms from Port Blair by road. Guests undertake MANGROVE SAFARI which takes them along a beautiful trail through mangrove forests and creeks and culminates into a LIME STONE CAVE surrounded by beautiful mangrove creeks. After the visit Guests take the Andaman Trunk Road (ATR) to RANGAT situated in Middle Andaman. Guests retire to their respective Hotel/Resort at Rangat for 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 6:</b> Diglipur
								</p>
								<p class="aj">At morning Guests leave for DIGLIPUR situated in North Andaman Island which is connected to Middle Andaman Island by Chengappa Bridge (Austin Bridge). Guests pass over the bridge on their way to Diglipur. At Diglipur Guests take local boat from Aerial Bay Jetty to visit the twin ROSS AND SMITH ISLANDS famous for its Sand-bridge(disappearing and reappearing depending on high and low tides) joining the twin islands. It is famous for Turtle nesting too. On their way back to Rangat Guests visit AMKUNJ BEACH, MORICE DERA & DHANIYA NALA near Rangat. Once in Rangat, Guests retire to their respective Hotel/Resort for 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 7:</b> Port Blair
								</p>
								<p class="aj">After breakfast Guests check out from their Hotel/Resort and return back to PORT BLAIR. Guests check-in their respective Hotel/Resort at Port Blair and take rest for the day.</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 8:</b> Jolly Buoy/Red Skin Island
								</p>
								<p class="aj">After breakfast Guests leave for Wandoor jetty with their packed lunch. Around 30 kms by road from Port Blair, Wandoor jetty is where Guests take a ferry ride to JOLLY BUOY/RED SKIN ISLAND. This Island is one of the most beautiful island among the 15 small and large Islands of MAHATMA GANDHI MARINE NATIONAL PARK. Guests see corals reefs, exotic varieties of beautiful ornamental fishes and other marine lives through Glass-bottom boat ride & Snorkeling. After the visit Guests retire to their respective Hotel/Resort at Port Blair for 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 9:</b> Ross Island
								</p>
								<p class="aj">After breakfast Guests take a boat ride from Aberdeen jetty to ROSS ISLAND, the erstwhile capital of Port Blair during the British regime. The island presently houses the ruins of old buildings like Chief Commissioner’s House, Government House, Church, Bakery, Press, Swimming Pool, etc, all in dilapidated condition. After seeing Ross Island the same boat takes Guests for a trip to NORTH BAY ISLAND (Coral Island) - an island just 1 km away from Port Blair habitating coral reefs, exotic varieties of beautiful ornamental fishes and other marine lives. Guests watch the marine flora & fauna through Glass-bottom boat ride & Snorkeling. After the visit Guests retire to their respective Hotel/Resort at Port Blair.</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 10:</b> Departure
								</p>
								<p class="aj">Guests check out and leave for Airport at appropriate time to catch their flights back home with lovely memories to cherish.</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>
															</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.andamandiyatours.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="9N/10D Andaman 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="44721"/>
						</form>
						</div>
						
						";i:1;s:59:"Book 9N/10D Andaman Tour - 9 Nights / 10 Days Tour Packages";i:2;s:118:"book 9n/10d andaman tour - 9 nights / 10 days tour packages, beach and islands tour packages, port blair tour packages";i:3;s:163:"Andaman Diya Tours & Travels offers 9N/10D Andaman Tour - 9 Nights / 10 Days tour package, budget Beach and Islands tour packages for Port Blair at exciting price.";i:4;s:401:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair"        
		                 },
		      "description": "",
		      "name": "9N/10D Andaman Tour",
		      "telephone": "+91-9933262165"
		    }
		    </script>
			";i:5;N;}