a:6:{i:0;s:22464:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Andaman Package</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.travelrightpackages.com/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.travelrightpackages.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> Andaman Package</p>
						</div>
						</div>
						</section>
										<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-->				
								
						<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.travelrightpackages.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman Package - 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="190742"/>
						</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_21/626469/300345.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_21/626469/300345.jpg"  width="150" height="92"    alt="Andaman Package" title="Andaman Package" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<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 – City Tour
										</p>
										<p class="aj">On arrival at Port Blair airport, our representative will receive and escorted to the hotel. After check-in at the hotel and little relax, we proceed to Carbyn’s Cove Beach & Cellular Jail. Evening enjoy the enthralling Light and Sound Show at Cellular Jail where the saga of the freedom struggle brought alive. Overnight stay at Port Blair. <br />
• CORBYN'S COVE BEACH- The coconut-palm fringed beach, 3 kilometers away town is ideal for swimming and sun-basking. Facilities like hotel, restaurant, bar, changing room, adventure water-sports are available here. Historical remains like Japanese Bunkers can be seen on the way to this beach. The Snake Island situated just across the beach is popular for scuba diving. The Restaurant & Beer Bar run by Tourism department provides delightful cuisine at reasonable rates in a soothing ambiance on the beach.<br />
• LIGHT AND SOUND MUSIC SHOW:-The Sound and Light show in the Cellular Jail narrates the saga of the Indian freedom struggle, brought alive through sound and light effect of the brutal and barbaric atrocities piled on the freedom fighters deported to these islands and incarcerated in the small cells of this jail. This show is very popular among the tourists visiting these islands.<br />
• CELLULAR JAIL-The Cellular jail, declared a National Memorial, is located at Port Blair which had stood as a mute witness to the most brutal and barbaric atrocities meted out to national freedom fighters, who were incarcerated in this jail. The jail, completed in the year 1906 acquired the name ‘Cellular' because it was entirely made up of individual cells for solitary confinement. It originally was a seven-block structure with three stories and a central tower acting as its fulcrum comprising of honeycomb like corridors. This jail, now a place of pilgrimage for all freedom-loving people draws everyone down memory lane to the years of freedom struggle. Jail Museum open from 9:00 am to 12:00 noon and from 1:30 pm to 4:45 pm. Overnight Stay 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 2:</b> Port Blair to Excursion to Coral island & Ross Island :
										</p>
										<p class="aj">After Breakfast you will be escorted to Andaman Water Sports Complex to catch a ferry which will be your mate for the entire excursion to Ross Island and North Bay.<br />
• NORTH BAY <br />
It is also called “The Gate Way to Port Blair”. This place is famous for its coral reefs, exotic verities’ of beautiful ornamental fishes and water sports activities. The breathtaking stretch of coral bed leaves you spellbound. North Bay is the foremost snorkeling point of Andaman. Apart from snorkeling and glass-bottom boat ride, scuba diving, underwater sea walk facility is also available at North Bay.<br />
• ROSS ISLAND <br />
It was the Capital of Port Blair during British and Japanese regime, prior to India’s Independence. It was named after Sir Daniel Ross a marine surveyor. It was nick named “The Paris of the East”. It is now under the supervision of the Indian Navy. This island is an ideal destination for nature walk amidst sylvan surroundings with deer’s, peacocks and exotic birds. Then back to Hotel. Overnight Stay 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 3:</b> Port Blair - Swaraj Dweep Island (Havelock) - Radhanagar Beach:
										</p>
										<p class="aj">Transfer to Swaraj Dweep (Havelock Island) by Cruise. On arrival, our representative will receive from Havelock jetty and escort you to check-in to the selected hotel. After little relax, proceed for the world’s most renowned beaches; Radhanagar Beach. The Island also has the biggest concentration of breath-taking diving and snorkeling sites, thus acting as a paradise to marine world explorers. Overnight stay at Havelock.<br />
• SWARAJ DEPP (HAVELOCK ISLAND) :-The Island (often just called Havelock) is one of the most beautiful and largest islands of Ritchie's Archipelago and is a placid heaven like no other. Situated 57 km north east of the South Andaman with an area of 92 Sq.Kms she offers a breathe taking trail of nature expeditions. The island is primarily populated by Bengali settlers. This picturesque Island with beautiful sandy beaches and lush green forest is also rated as the seventh most beautiful island in the world. The Island also has the biggest concentration of breath-taking diving and snorkeling sites, thus acting as a paradise to marine world explorers. <br />
Note: Collect the packed Breakfast from the hotel reception, if you are traveling by early morning Cruise. Ferry timings is mentioned in the tickets provided to you, please report 45 minutes prior to departure with a valid id card. Ferry operation is purely subject to Govt. clearance and weather condition. Class of travel and timings of the ferry is subject to availability at the time of confirmation.</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> Swaraj Dweep (Havelock Island) – Shaheed Dweep (Neil Island)
										</p>
										<p class="aj">At morning have your breakfast in the hotel after that our representative will help you to board the Boat which will sail to the Shaheed Dweep (Neil Island Island). On arrival at Neil Island, our representative will receive and escort you to check-in to the resort/hotel. After that start a trip for sightseeing Laxmanpur, Bharatpur & Howrah Bridge. Overnight stay at Neil Island.<br />
• BHARATPUR BEACH :- The Bharatpur Beach is a beach of a low tide located just half a kilometer from the jetty, considered to be the best beach in the Neil Island. The calm, tranquil and perchance the picturesque beach is also popular with various water activities like swimming, snorkeling and scuba diving.<br />
• LAXMANPUR BEACH :- Laxmanpur Beach is a picturesque waterfront, covering a long stretch of area of Laxmanpur village of Neil Island. The sea is shallow and calm, making it perfect for swimming and snorkeling. The serene beach offers a stunning panorama, especially the sun sets in the horizon.<br />
• NATURAL BRIDGE :- Neil Island is famous for its naturally shaped- like rock also known as the Howrah Bridge. It has two living natural corals formed just like a bridge. The rock formation was called by the Bengalis who settled in the island in the early days and they refer it as the Rabindra Setu and later called it the Howrah Bridge. It is best seen during low tide.</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> Shaheed Dweep (Neil Island) - Port Blair.
										</p>
										<p class="aj">After breakfast, board Green Ocean Cruise / Makruzz and return to Port Blair. Evening free for local marketing. Overnight stay 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 6:</b> Port Blair – Airport Dropping.
										</p>
										<p class="aj">Dropping to airport with memories and terrific holiday at Andaman Islands.<br />
Note : If your departure flight is delay, additional tour will be arranged on direct payment basis.</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>EP (No Meal)</li>
																				<li>Accomodation on double / triple sharing basis at above mentioned hotels / similar in base category rooms.</li><li>
Exclusive a/c vehicle for pick up and drop as per the itinerary (not at disposal).</li><li>
Daily breakfast at hotel.</li><li>
Airport pick up and drop.</li><li>
Makruzz / Green Ocean Cruise / Sea Link / Bhagya Express / Govt. inter island ferry for Neil & Havelock as per the availability.</li><li>
Assistance at all arrival and departure points.</li><li>
Entry permits | Entry tickets | Parking charges | Boat / ferry tickets wherever applicable.</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Airfare / Ship's fare.</li><li>
All kind of personal expenses such as tips, laundry, telephone bills and beverages.</li><li>
It does not include any meals unless and otherwise specifically mentioned.</li><li>
Guide, Jolly ride & snorkeling charges.</li><li>
Optional, suggested or unspecified activities.</li><li>
Guide at Cellular jail will cost extra.</li><li>
Camera fee (still or movie) </li><li>
Additional usage of vehicles.</li><li>
Any dispute regarding the child age to be settled directly with the hotels.</li><li>
GST (5%)</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</li><li>
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.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.travelrightpackages.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman Package - 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="190742"/>
						</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.travelrightpackages.com/jaipur-tour-packages.htm" title="Jaipur Tour Packages">Jaipur</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/coonoor-tour-packages.htm" title="Coonoor Tour Packages">Coonoor</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/new-delhi-tour-packages.htm" title="New Delhi Tour Packages">New Delhi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/havelock-tour-packages.htm" title="Havelock Tour Packages">Havelock</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/port-blair-tour-packages.htm" title="Port Blair Tour Packages">Port Blair</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/leh-ladakh-tour-packages.htm" title="Leh Ladakh Tour Packages">Leh Ladakh</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/udaipur-tour-packages.htm" title="Udaipur Tour Packages">Udaipur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/shillong-tour-packages.htm" title="Shillong Tour Packages">Shillong</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/ooty-tour-packages.htm" title="Ooty Tour Packages">Ooty</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/manali-tour-packages.htm" title="Manali Tour Packages">Manali</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelrightpackages.com/mysore-tour-packages.htm" title="Mysore Tour Packages">Mysore</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelrightpackages.com/singapore-city-tour-packages.htm" title="Singapore Tour Packages">Singapore</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelrightpackages.com/agra-tour-packages.htm" title="Agra Tour Packages">Agra</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelrightpackages.com/cherrapunji-tour-packages.htm" title="Cherrapunji Tour Packages">Cherrapunji</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelrightpackages.com/jodhpur-tour-packages.htm" title="Jodhpur Tour Packages">Jodhpur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelrightpackages.com/guwahati-tour-packages.htm" title="Guwahati Tour Packages">Guwahati</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelrightpackages.com/shimla-tour-packages.htm" title="Shimla Tour Packages">Shimla</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></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.travelrightpackages.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/honeymoon-holidays-catid.htm" title="Honeymoon Packages">Honeymoon</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/national-parks-holidays-catid.htm" title="National Parks Packages">National Parks</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelrightpackages.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(1)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
								
				</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:54:"Book Andaman Package - 5 Nights / 6 Days Tour Packages";i:2;s:123:"book andaman package - 5 nights / 6 days tour packages, beach and islands tour packages, port blair, havelock tour packages";i:3;s:167:"Book Andaman Package - 5 Nights / 6 Days tour packages from Travel Right - Get attractive 5 Nights / 6 Days Beach and Islands  tour packages for  Port Blair, Havelock.";i:4;s:407:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair, Havelock"        
		                 },
		      "description": "",
		      "name": "Andaman Package",
		      "telephone": "+91-9620563189"
		    }
		    </script>
			";i:5;N;}