a:6:{i:0;s:37523:"				<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>7 Days Andaman Package</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.andamanvishakatravels.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.andamanvishakatravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>7 Days Andaman Package</p> 
										<div class="fo dt w100"> 
					<div class="dtc vat ttw-detail pr20px pr">					
												<ul class="lsn gallery-slide" id="bxlider_ins">
																	<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/255327.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/255327.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/255327.jpg"  alt="7 Days Andaman Package" title="7 Days Andaman Package" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																	</ul>
												
					<script>
					var $j = jQuery.noConflict();
					var realSlider= $j("ul#bxlider_ins").bxSlider({
					      speed:500,
					      pager:false,
					      auto: true,
					      slideWidth: 450,
					      slideMargin: 0,
					      nextText:'',
					      prevText:'',
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					        changeRealThumb(realThumbSlider,newIndex);
					        
					      }
					      
					    });
					    
					    var realThumbSlider=$j("ul#bxslider-pager").bxSlider({
					      minSlides: 4,
					      maxSlides: 4,
					      slideWidth: 200,
					      slideMargin: 5,
					      moveSlides: 1,
					      pager:false,
					      speed:1000,
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      nextText:'<span></span>',
					      prevText:'<span></span>',
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					
					      }
					    });
					    
					    linkRealSliders(realSlider,realThumbSlider);
					    
					    if($j("#bxslider-pager li").length<5){
					      $j("#bxslider-pager .bx-next").hide();
					    }
					
					// sincronizza sliders realizzazioni
					function linkRealSliders(bigS,thumbS){
					  
					  $j("ul#bxslider-pager").on("click","a",function(event){
					    event.preventDefault();
					    var newIndex=$j(this).parent().attr("data-slideIndex");
					        bigS.goToSlide(newIndex);
					  });
					}
					
					//slider!=$thumbSlider. slider is the realslider
					function changeRealThumb(slider,newIndex){
					  
					  var $thumbS=$j("#bxslider-pager");
					  $thumbS.find('.active').removeClass("active");
					  $thumbS.find('li[data-slideIndex="'+newIndex+'"]').addClass("active");
					  
					  if(slider.getSlideCount()-newIndex>=4)slider.goToSlide(newIndex);
					  else slider.goToSlide(slider.getSlideCount()-4);
					
					}
					
					</script>
					</div>
			        <div class="dtc">
			        <p class="b xlarge mb10px">7 Days Andaman Package</p>
					
											<p class="mb5px"><b>Duration :</b> 
						6 Nights / 7 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Port Blair, Havelock</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px"><i class="fa fa-inr"></i> 62500						</p>
						<p class="xxsmall alpha50">Per Person</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.andamanvishakatravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="7 Days Andaman Package - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px ts0 xxlarge dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="168765"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
											<div class="mt7px dif">* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.</div>
												<div class="mt30px mb30px">
						<div class="b xxlarge mb10px">
								   					Overview
		   											</div>					
						<p class="aj">Bugged  Package Category  Cost : 62,500/- for Cost   5 Person<br />
<br />
hotel At Port Blair :  Island Pride /aastha Hotel or Similar <br />
hotel At Havelock : V-knot  or Similar <br />
<br />
  <br />
economy :  Package Category  Cost : 74,500/-  for Cost 5person <br />
<br />
hotel At Port Blair : Nakshatra Inn or Similar <br />
hotel At Havelock : Nagri Inn or Similar <br />
<br />
note:-<br />
<br />
 <br />
<br />
·         At Hotel Check-out Time is 08.00 A.m.<br />
<br />
·         Early Check in and Late Checkout Subject to Availability.<br />
<br />
·         the Above Rates are Valid for the Mentioned Period Only and Subject to Change Without Any Prior Notice.<br />
<br />
·         if Any Case Petrol Charge’s Going to High They Costing Will Be Change as per Ur Booking.<br />
<br />
·         Any Changes in the Hotel Taxes or Ferry/entry Charges Will Be Charged Additional.<br />
<br />
·         * the Above Rates are On per Head Basis.<br />
<br />
·         Supplement Charge for A.c Vehicle & Havelock, Neil Island: 450/- per HeadPersonal Expenses<br />
<br />
airfares / Ship Fare to Mainland India<br />
<br />
activity Charges, Jet Ski, Scuba Diving Etc<br />
<br />
expenses Occurred Due to Bad Weather ,Flight or Ferry Cancellation , Strike or Political Unrest to Be Paid By Guest as per Actual<br />
<br />
any Dispute Regarding Child Age to Be Settled Directly with Hotels<br />
<br />
room Services, Laundry, Telephone Charges, Ross Island<br />
<br />
maintenance Fee.</p>
						</div>
														<div class="mt30px b xlarge">
												   					Detailed Tour Itinerary
				   													</div>		   
								<br/>
																			<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 1											
											:</b> Arrival at Port Blair/ Visit the Cellular Jail + witness the Light n Sound Show at Cellular Jail										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												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. First Half of the Day is At Leisure. Later in the Afternoon Proceed for Visit to Cellular Jail Followed By Light and Sound Show. the Cellular Jail Has a Pride of Place in India’s Freedom Struggle. Many a Stalwart Were Imprisoned Here. Declared a National Memorial, this Three Storey Prison Constructed By Britishers in 1906, is a Pilgrimage Destination for Freedom Fighters. this Colossal Edifice Has Mutely Witnessed the Most Treacherous of Inhumane Atrocities Borne By the Convicts, Who Were Mostly Freedom Fighters. the Day Draws to a Gentle Close with the Sound and Light Show At the Historic Cellular Jail Which Gives You a Vivid Experience of Its Strong Association with the Freedom Fighters and Their Struggle for Independence. Overnight Stay At Respective Hotel / Resort At Port Blair. (note- 1) Cellular Jail is Closed On Every Monday and National Holidays. 2) Entry to Cellular Jail and Museum Closes By 1600hrs and Light N Sound Show is Open Every Day 1800hrs. Light N Sound Tickets are On 1st Come 1st Serve Basis.)															
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 2											
											:</b> Excursion to Coral island North Bay & Ross Island										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After Breakfast, Start Off for a Full- Day Excursion to Coral Island (north Bay) to See Coral Reefs, Exotic Varieties of Beautiful Ornamental Fish and other Marine Life. this is An Ideal Place for Snorkelling as this Sandy Beach Coupled with Clear Water Creates a Breathtaking Spectacle. Please Carry Your Lunch Pack, Drinking Water & Changing Dress.( Water Sports Activities Available Here are Scuba Diving , Under Water Sea-walk , Snorkelling , Glass Bottom Boat Ride , Jet Ski- Water Scooter , Banana Boat Ride , Speed Boat Etc On Direct Payment Basis) After North Bay, Visit Ross Island, the Former Residential and Administrative Island of the British During Their Rule of South East Asia, Was Nick Named the Paris of the East. this Island Was Completely Destroyed in An Earthquake, Now in Ruins. Overnight Stay At Respective Hotel At Port Blair. (note: 1) Ross & North Bay Remains Closed On Every Wednesdays. 2) Ferry Departs At 0930hrs – Subject to Weather Condition, Please Report to Rajiv Gandhi Water Sports Complex Latest By 0900hrs. 3) Contact Us if You Want a Private Chartered Boat for Above Trip Perfect for 5-7 Person.) Optional Activities:- Scuba Diving and Sea Walk At North Bay On Direct Payment Basis.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 3											
											:</b> Port Blair to Havelock/ Excursion to Radhanagar beach										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After Breakfast Get Transfer to Phoenix Bay Harbour to Catch a Ferry to Havelock. 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 Andamans 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. It Hosts Two of the World’s Most Renowned Beaches; Vijaynagar Beach and Radhanagar Beach. the Island also Has the Biggest Concentration of Breath-<br />
<br />
<br />
<br />
taking Diving and Snorkeling Sites, Thus Acting as a Paradise to Marine World Explorers. On Arrival the Cab Will Be Provided to Pickup and Drop Guest to Beach No 7, Radhanagar Beach Rated as the Best Beach in Asia. Spend the Day Relaxing On this Beach. Later Proceed to Selected Hotel. Stay Here Overnight amongst Sandy Beach and Lush Green Forest in a Comfortable Beach Resort. (note-1) this Day Your Breakfast Will Be At Port Blair. if You are Travelling By An Early Morning Ferry Ask the Hotel to Give a Packed Breakfast. 2) Ferry Timings are Mentioned in the Tickets Provided to You Please Report 45minutes Prior to Departure with a Valid Photo Id Card Issued By Govt. Competent Authorities. Ferry Timings are Subjected to Weather Conditions. 3) Carry Only the Limited Essential Luggage to Havelock/ Neil.) Class of Ferry and Timings is Subjected to Availability At the Time of Confirmation Only			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 4											
											:</b> After breakfast get transfer to Phoenix Bay Harbour to catch a ferry to Havelock. The Island (often										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After Breakfast Get Transfer to Phoenix Bay Harbour to Catch a Ferry to Havelock. 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 Andamans 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. It Hosts Two of the World’s Most Renowned Beaches; Vijaynagar Beach and Radhanagar Beach. the Island also Has the Biggest Concentration of Breath-<br />
<br />
<br />
<br />
taking Diving and Snorkeling Sites, Thus Acting as a Paradise to Marine World Explorers. On Arrival the Cab Will Be Provided to Pickup and Drop Guest to Beach No 7, Radhanagar Beach Rated as the Best Beach in Asia. Spend the Day Relaxing On this Beach. Later Proceed to Selected Hotel. Stay Here Overnight amongst Sandy Beach and Lush Green Forest in a Comfortable Beach Resort. (note-1) this Day Your Breakfast Will Be At Port Blair. if You are Travelling By An Early Morning Ferry Ask the Hotel to Give a Packed Breakfast. 2) Ferry Timings are Mentioned in the Tickets Provided to You Please Report 45minutes Prior to Departure with a Valid Photo Id Card Issued By Govt. Competent Authorities. Ferry Timings are Subjected to Weather Conditions. 3) Carry Only the Limited Essential Luggage to Havelock/ Neil.) Class of Ferry and Timings is Subjected to Availability At the Time of Confirmation Only			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 5											
											:</b> Port Blair – City tour										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Baratang Island (Middle Andaman), about 120kms from Port Blair (the Capital of Andaman & Nicobar Islands) and  travel time is 3hours and 30mins due to speed restriction (40kms per hour )in tribal reserve area. This Amazing Travel is through the dense rain forest which also berths one of the oldest tribe in the world called “ JARAWA” (Negro breed, black in skin color), any interaction or exchange of any foreign articles / photography with them is strictly banned and offender will be booked against PAT (protection of aboriginal tribes ) regulations which could be fine and imprison . Please switch of you mobile phone, photo camera and video camera at check post itself, you may switch on the same once you reach Baratang. On arrival at Baratang sightseeing to Lime stone cave by motor boat, this is something amazing b`cus this ride is through dense mangrove forest ride. Baratang is a under develop island with very little infrastructure and amenities , please do carry pack breakfast since you will be leaving early morning , there are small Dhabas where you can have lunch (neat and hygienic ) but do not expect any star restaurant service .Return back port blair <br />
<br />
(Trip to Baratang starts as early as 0330hrs in the morning due to convoy restrictions , Please ask hotel to give pack breakfast , visit to lime stone caves by boats are closed on every Monday .Boat operations is subjected to weather conditions and Govt clearance which we do not have control.)			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 6											
											:</b> Port Blair to Baratang Island and Diglipur (Total Distance one way 375KMS, Travel time 10 to 12 hrs										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Baratang Island (middle Andaman), About 120kms from Port Blair (the Capital of Andaman & Nicobar Islands) and  Travel Time is 3hours and 30mins Due to Speed Restriction (40kms per Hour )in Tribal Reserve Area. this Amazing Travel is Through the Dense Rain Forest Which also Berths One of the Oldest Tribe in the World Called “ Jarawa” (negro Breed, Black in Skin Color), Any Interaction or Exchange of Any Foreign Articles / Photography with Them is Strictly Banned and Offender Will Be Booked Against Pat (protection of Aboriginal Tribes ) Regulations Which Could Be fine and Imprison . Please Switch of You Mobile Phone, Photo Camera and Video Camera At Check Post Itself, You May Switch On the Same Once You Reach Baratang. On Arrival At Baratang Sightseeing to Lime Stone Cave By Motor Boat, this is Something Amazing B`cus this Ride is Through Dense Mangrove Forest Ride. Baratang is a Under Develop Island with Very Little Infrastructure and Amenities , Please Do Carry Pack Breakfast Since You Will Be Leaving Early Morning , There are Small Dhabas Where You Can have Lunch (neat and Hygienic ) But Do Not Expect Any Star Restaurant Service .return Back Port Blair <br />
<br />
(trip to Baratang Starts as Early as 0330hrs in the Morning Due to Convoy Restrictions , Please Ask Hotel to Give Pack Breakfast , Visit to Lime Stone Caves By Boats are Closed On Every Monday .boat Operations is Subjected to Weather Conditions and Govt Clearance Which We Do Not have Control.)			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 7											
											:</b> Departure										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Transfer to Airport and Departure with unlimited memories...			
														   
											</div> 
											</div>
																			<script>
								jQuery(document).ready(function() {
									//jQuery('.product-detail').css('display','none');
								    jQuery(".sub-title").click(function() {
								        var $this = jQuery(this);
										  jQuery('.w-title').addClass('h15px',400);
								          $this.find('.w-title').removeClass('h15px',400);
										  jQuery('.product-detail').slideUp();
								          $this.next().slideDown();
								          if($this.find('i').hasClass('fa-angle-up')){
								          	$this.find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
								          } else {
								          	$this.find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
								          }
								        });
									});
								</script>
																<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>Accommodation in A.c Room On 02dbl with 01 Extra Mattress    Sharing Basis with Breakfast Only Except the Day of Arrival</li><li>
·         Both Ways Airport Transfers By A.c Private Vehicle One Time One Spot Basis</li><li>
all Sightseeing By A.c Private Vehicle in Port Blair as per Itinerary Not At Disposal</li><li>
all Sightseeing By Non-a.c Private Vehicle in Havelock Island</li><li>
to and Fro Ticket to Havelock By A.c Cruise /.</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Personal Expenses</li><li>
airfares / Ship Fare to Mainland India</li><li>
activity Charges, Jet Ski, Scuba Diving Etc</li><li>
expenses Occurred Due to Bad Weather ,Flight or Ferry Cancellation , Strike or Political Unrest to Be Paid By Guest as per Actual</li><li>
any Dispute Regarding Child Age to Be Settled Directly with Hotels</li><li>
room Services, Laundry, Telephone Charges, Ross Island</li><li>
maintenance Fee.</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.andamanvishakatravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="7 Days 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="168765"/>
						</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.andamanvishakatravels.com/packages-in-port-blair.htm" title="Packages in Port Blair">Port Blair</a> <b class="alpha50 bn small">(14)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanvishakatravels.com/packages-in-havelock.htm" title="Packages in Havelock">Havelock</a> <b class="alpha50 bn small">(13)</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.andamanvishakatravels.com/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanvishakatravels.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanvishakatravels.com/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanvishakatravels.com/romantic-holidays-catid.htm" title="Romantic Packages">Romantic</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanvishakatravels.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.andamanvishakatravels.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.andamanvishakatravels.com/tour-packages/stay-day-trip-havelock-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/231696.jpg"  alt="Stay Day Trip Havelock Tour" title="Stay Day Trip Havelock Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanvishakatravels.com/tour-packages/stay-day-trip-havelock-tour.htm" title="Stay Day Trip Havelock Tour"><h3>Stay Day Trip Havelock Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 18000</b> <b class="xsmall alpha50">Per Person</b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								2 Nights / 3 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_150039" id="pkg_150039" method="post" action="http://www.andamanvishakatravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanvishakatravels.com/tour-packages/stay-day-trip-havelock-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Stay Day Trip Havelock 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="150039"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamanvishakatravels.com/tour-packages/amazing-andaman-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/231693.jpg"  alt="Amazing Andaman Tour" title="Amazing Andaman Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanvishakatravels.com/tour-packages/amazing-andaman-tour.htm" title="Amazing Andaman Tour"><h3>Amazing Andaman Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 14000</b> <b class="xsmall alpha50">Per Person</b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								2 Nights / 3 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_150036" id="pkg_150036" method="post" action="http://www.andamanvishakatravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanvishakatravels.com/tour-packages/amazing-andaman-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Amazing 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="150036"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamanvishakatravels.com/tour-packages/port-blair-havelock-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/231681.jpg"  alt="Port Blair - Havelock Tour" title="Port Blair - Havelock Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanvishakatravels.com/tour-packages/port-blair-havelock-tour.htm" title="Port Blair - Havelock Tour"><h3>Port Blair - Havelock Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 29800</b> <b class="xsmall alpha50">Per Person</b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_150029" id="pkg_150029" method="post" action="http://www.andamanvishakatravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanvishakatravels.com/tour-packages/port-blair-havelock-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Port Blair - Havelock 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="150029"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamanvishakatravels.com/tour-packages/diglipurto-rangat-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/231705.jpg"  alt="Diglipur to Rangat Tour" title="Diglipur to Rangat Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanvishakatravels.com/tour-packages/diglipurto-rangat-tour.htm" title="Diglipur to Rangat Tour"><h3>Diglipur To Rangat Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 49500</b> <b class="xsmall alpha50">Per Person</b></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_150049" id="pkg_150049" method="post" action="http://www.andamanvishakatravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanvishakatravels.com/tour-packages/diglipurto-rangat-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Diglipur to Rangat 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="150049"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamanvishakatravels.com/tour-packages/andaman-honeymoon-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/231678.jpg"  alt="Andaman Honeymoon Package" title="Andaman Honeymoon Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanvishakatravels.com/tour-packages/andaman-honeymoon-package.htm" title="Andaman Honeymoon Package"><h3>Andaman Honeymoon Package</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 49800</b> <b class="xsmall alpha50">Per Person</b></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_150025" id="pkg_150025" method="post" action="http://www.andamanvishakatravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanvishakatravels.com/tour-packages/andaman-honeymoon-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Andaman Honeymoon 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="150025"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamanvishakatravels.com/tour-packages/diglipur-and-neil-island-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/231703.jpg"  alt="Diglipur and Neil Island Tour" title="Diglipur and Neil Island Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanvishakatravels.com/tour-packages/diglipur-and-neil-island-tour.htm" title="Diglipur and Neil Island Tour"><h3>Diglipur And Neil Island Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 49800</b> <b class="xsmall alpha50">Per Person</b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair</p>
															<div class="mt10px small">
							<form name="pkg_150045" id="pkg_150045" method="post" action="http://www.andamanvishakatravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanvishakatravels.com/tour-packages/diglipur-and-neil-island-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Diglipur and Neil 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="150045"/>
							</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:61:"Book 7 Days Andaman Package - 6 Nights / 7 Days Tour Packages";i:2;s:122:"book 7 days andaman package - 6 nights / 7 days tour packages, adventure tour packages, port blair, havelock tour packages";i:3;s:177:"Book 7 Days Andaman Package - 6 Nights / 7 Days tour packages from Andaman Vishaka Travels - Get attractive 6 Nights / 7 Days Adventure  tour packages for  Port Blair, Havelock.";i:4;s:1734:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair, Havelock"        
		                 },
		      "description": "Bugged  Package Category  Cost : 62,500/- for Cost   5 Person

hotel At Port Blair :  Island Pride /aastha Hotel or Similar 
hotel At Havelock : V-knot  or Similar 

  
economy :  Package Category  Cost : 74,500/-  for Cost 5person 

hotel At Port Blair : Nakshatra Inn or Similar 
hotel At Havelock : Nagri Inn or Similar 

note:-

 

·         At Hotel Check-out Time is 08.00 A.m.

·         Early Check in and Late Checkout Subject to Availability.

·         the Above Rates are Valid for the Mentioned Period Only and Subject to Change Without Any Prior Notice.

·         if Any Case Petrol Charge’s Going to High They Costing Will Be Change as per Ur Booking.

·         Any Changes in the Hotel Taxes or Ferry/entry Charges Will Be Charged Additional.

·         * the Above Rates are On per Head Basis.

·         Supplement Charge for A.c Vehicle & Havelock, Neil Island: 450/- per HeadPersonal Expenses

airfares / Ship Fare to Mainland India

activity Charges, Jet Ski, Scuba Diving Etc

expenses Occurred Due to Bad Weather ,Flight or Ferry Cancellation , Strike or Political Unrest to Be Paid By Guest as per Actual

any Dispute Regarding Child Age to Be Settled Directly with Hotels

room Services, Laundry, Telephone Charges, Ross Island

maintenance Fee.",
		      "name": "7 Days Andaman Package",
		      "telephone": "+91-9933246100"
		    }
		    </script>
			";i:5;N;}