a:6:{i:0;s:16541:"				<div class="h1"><h1>Blue Ocean Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.holidayplannerandaman.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.holidayplannerandaman.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Blue Ocean 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">Tour Code </td>
						<td class="p5px pl0px vat">HPP975</td>
						</tr>
												<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</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 18500 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.holidayplannerandaman.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Blue Ocean 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="84037"/>
						</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/386438/148424.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/386438/148424.jpg"  width="150" height="150"    alt="Blue Ocean Tour" title="Blue Ocean Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					camera /guide/ any other extra activities<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 and Sight Seen
								</p>
								<p class="aj">On arrival at Veer Savarkar Airport, our travel executive would receive and escort you to your hotel. After check in, your day tour would start with a visit to the main attraction in Port Blair, the historic national memorial cellular jail also known as kaalapaani. The Cellular Jail declared a national memorial was constructed by Britishers in 1906. Cellular Jail has mutely witnessed the most 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 in Port Blair.<br />
<br />
Note: Cellular Jail is closed on Mondays and public holidays. In case you land on Monday, the itinerary will be suitably amended to cover this attraction on some other 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 2:</b> Ross and North Bay
								</p>
								<p class="aj">Start after breakfast for a full-day excursion to North Bay (Coral Island) - to see coral reefs, exotic varieties of beautiful ornamental fishes and other marine life. The glass bottom boat ride helps one to take a closer look at the vast coral colonies. You can also enjoy Snorkeling and other water sports activities like Jet Ski Ride, Sea walk etc. Please carry your snacks / pack lunch, drinking water & changing dress. Then visit Ross Island - from where the Britishers governed the entire Andaman & Nicobar Islands, prior to India’s Independence. One can see remnants of an opulent past in the ruins of the church, swimming pool and the chief commissioner's residence with its huge gardens and grand ballrooms. There is also a cemetery and a small museum managed by the Indian Navy. This island is an ideal destination for nature walk amidst sylvan surroundings with deer, peacocks, exotic birds, etc. Overnight stay will be at respective Hotel / Resort at Port Blair.</p>					
									<p><b>Meals : </b> Breakfast</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> Portblair To Havelock - Radhanagar Beach
								</p>
								<p class="aj">Get geared up to visit Asia’s No.1 beach rated by Times magazine. Reach Phoenix Bay jetty to board the cruise to Havelock.  After a 2 hour journey in the Andaman Sea with the flying fishes and Dolphins (you may be lucky to sight some) reach Havelock islands. Our tour executive will receive you at the jetty and take you to Radhanagar beach. Spend your day in the No.1 beach in Asia. Enjoy the waves and miles of coast line. This virgin white sand beach is best place for swimming as there are no rocks in the coast and the waves are not too high. Although Havelock is the most developed of the islands, it’s still very low-key and simple – a world away from the busy life of mainland India. Evening return to Port Blair, stay at Port Blair hotel.</p>					
									<p><b>Meals : </b> Breakfast</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> Elephanta Beach
								</p>
								<p class="aj">(Car will come at 0800 hrs and please ensure you are ready as the boat will leave at 0830 hrs and it is a further 10 min drive away to the boat) Embark on the most memorable snorkelling trip, just 25 min by Boat this beach offers snorkelers calm blue shallow waters and is the perfect spot for beginner snorkelers. The boat goes right up to the beach and it’s so easy to slip on your gear and just start snorkelling. It’s also a great place to just spend the day lying on the beach and relaxing. The beach is very scenic with fallen trees and white sand giving the photographer some interesting shots. The reef here starts very close to shore at a depth of about 1 metre. The large reef is mostly made up of hard coral and has plenty of marine life. Note: Inclusive of snorkelling equipment and car pick up and drop to jetty. (The trip may be changed to light house subject to weather conditions and visibility).<br />
Meals : Breakfast<br />
Day 5: Havelock - Neil ( Natural Coral bridge+Bharatpur) Port Blair<br />
After a breakfast, board the ferry for a journey to Havelock to Neil Island and visit to Bharatpur Beach, one of the most beautiful beaches in Andaman. You can take a ride in a glass bottomed boat to see under water corals and marine life . Late afternoon visit the Laxmanpur Beach 2 to view the natural coral bridge and Return from Neil Island in the evening by the Cruise and transfer to hotel in Port Blair. The guest will arrive only in the evening at Port Blair. (Do note that all hotels on Neil have a early morning check out time and late check out is provided at the discretion of the hotel management) Request you to kindly keep the luggage ready and leave it at the reception.<br />
Meals : Breakfast<br />
Day 6: Baratang – ( Limestone Cave+ Mud Volcano) – Port Blair<br />
Baratang Island Tour starts early morning for Baratang Island, 100km Road Journey ,the island between South and Middle Andaman has beautiful Mangrove Creeks, Mud Volcano and Limestone Cave . Once we reach Baratang we takes Small Speed Boat for Lime stone Caves where you can enjoy 30min Adventure journey through mangrove creeks, 30mins Trekking in the forest for Lime Stone Caves and Mud valcano. and Overnight stay will be at respective Hotel / Resort at Port Blair.<br />
Meals : Breakfast<br />
Day 7: Departure<br />
Depart Port Blair with Fond memories of these mesmerizing Islands.</p>					
									<p><b>Meals : </b> Breakfast</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> Havelock Island - Kalapatar Beach
								</p>
								<p class="aj">Kala pathar beach is located at the far end of Havelock Island. Away from the settlement, this beach is famous for its white sand and serene beauty. Ideal for photography and a long walk along the coast line. No mobile network ensures you are away from the cyber world and day to day worries.</p>					
									<p><b>Meals : </b> Breakfast</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> Neil Island
								</p>
								<p class="aj">After a breakfast, board the ferry for a journey to Havelock to Neil Island and visit to Bharatpur Beach, one of the most beautiful beaches in Andaman. You can take a ride in a glass bottomed boat to see under water corals and marine life . Late afternoon visit the Laxmanpur Beach 2 to view the natural coral bridge and Return from Neil Island in the evening by the Cruise and transfer to hotel in Port Blair. The guest will arrive only in the evening at Port Blair. (Do note that all hotels on Neil have a early morning check out time and late check out is provided at the discretion of the hotel management) Request you to kindly keep the luggage ready and leave it at the reception.</p>					
									<p><b>Meals : </b> Breakfast</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> Fly Back to Home
								</p>
								<p class="aj">Conclude your tour with transfer to the airport to board your return flight back home. Arrive home with wonderful memories of your holiday in Andaman, which we are sure you will treasure for a lifetime.</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
													<div class="headHr">
				            <p class="p7px b pl10px xlarge">Hotel Detail : </p>
				            </div>
															<div class="data lh13em p20px aj mb7px">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px"><p class="fr lh0">
								
																	<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_off.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_off.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_off.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_off.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_off.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_off.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_off.png" alt=""/>
																	
								</p>
								<div class="mb5px">
								<h2 class="dif b xxlarge">Airport Hotel/ Hotel Velocity/ Da Bay Inn/ Nk International/ Sea Shall/tsg Grand/tsg Emerald/the North Reef/ Radhakrishna Beach Resort/ Holiday Inn Beach Resort/havelockisland Beach Resort</h2>
								</div>
								<p class="cb"></p>
								<p><b>Address :</b> India</p>
								<p><b>Facility :</b> 24-Hour Front Desk, Airport Transfer, Banquet, Bar/Lounge, Business Facilities, Car Rental / Hire, Medical Facility, Parking, Restaurant</p>
								<div class="mt7px">VERY GOOD/ EXCELLENT</div>
								</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>2 Star Hotel</li>
																		<li>3 Star Hotel</li>
																		<li>Flights</li>
																		<li>Sightseeing</li>
																		<li>Transport</li>
																		<li>Transfers</li>
																		<li>Airport Pickup-Drop</li>
																		<li>Entry Tickets</li>
																<li>Accommodation In Twin Sharing Rooms At Specified Hotels & Resort As Per The Package</li><li>
Daily Breakfast </li><li>
Sightseeing Tours As Per The Itinerary A/C /Non A/C Vehicle </li><li>
Light & Sound Show At Cellular Jail</li><li>
Havelock, Neil Transfers By Deluxe Ac Cruise/ Govt Ferry.(Some Time Private Ferry Is Not Available Due To Some Technical Issues And All Then We Will Provide You Government Ferry.) </li><li>
Snorkeling Kit With Guide</li><li>
Dinner By Holiday Planner On Last Day</li><li>
Assistance At The Airport At The Time Of Arrival And Departure</li><li>
Miscellaneous Charges Like Inner-Line Permits, And All Applicable Luxury/Road Taxes.</li><li>
All Entry Tickets, Ferry Charges & Permits</li>
													</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>camera /guide/ any other extra activities</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.holidayplannerandaman.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Blue Ocean 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="84037"/>
						</form>
						</div>
						
						";i:1;s:54:"Book Blue Ocean Tour - 6 Nights / 7 Days Tour Packages";i:2;s:113:"book blue ocean tour - 6 nights / 7 days tour packages, beach and islands tour packages, port blair tour packages";i:3;s:145:"Holiday Planner offers Blue Ocean Tour - 6 Nights / 7 Days tour package, budget Beach and Islands tour packages for Port Blair at exciting price.";i:4;s:438:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair"        
		                 },
		      "description": "camera /guide/ any other extra activities",
		      "name": "Blue Ocean Tour",
		      "telephone": "+91-9679504603"
		    }
		    </script>
			";i:5;N;}