a:6:{i:0;s:18011:"				<div class="h1"><h1>Andaman Bird Watching Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.sandsofandaman.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.sandsofandaman.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Andaman Bird Watching 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">SOA00125</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						4 Nights / 5 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">
						USD 1100 Per Person						</td>
						</tr>
												<tr>
						<td class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">Depends upon group size</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.sandsofandaman.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman Bird Watching 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="63582"/>
						</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_12/338525/118128.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/338525/118128.jpg"  width="150" height="150"    alt="Orange headed thrush" title="Orange headed thrush" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Bird Watching with trained and certified guides.<br />
<br />
The Andaman & Nicobar Islands are home to over 240 species of birds, of which 18 are endemic. All the endemic birds are forest-dwelling species; some appear quite commonly in disturbed forest and have been recorded near the capital, Port Blair.<br />
In the Andamans, one does not necessarily need to be an expert or have trained eye to spot and admire some of these fine feathered fellows. Given the dense canopy of forests, the mangrove ecosystem and the wide array of tropical fruits, birds here are easy to spot even from the balcony of your cottage.<br />
A trek, a pair of binoculars, some patience and a good guide will have you awe struck at the sheer beauty and uniqueness of the endemic species that have evolved on these stunning islands.<br />
<br />
 <br />
Itinerary<br />
 <br />
Day 1: Port Blair - Mount Harriet National Park<br />
<br />
Arrive at Port Blair by the early morning flight to start the Andaman Endemic Birding Tour. Meet & assist at the airport. We will bird around Mount Harriet National Park, a tropical moist evergreen forest. Should sight Andaman Woodpecker, Andaman Wood Pigeon, Andaman Cuckoo Dove , Andaman Crake, Fulvous-breasted Woodpecker, Dollarbird, Collared Kingfisher, Brown Coucal, Alexandrine Parakeet, Red-breasted Parakeet, Red-breasted Parakeet, Pintail Snipe, White-bellied Sea Eagle, Andaman Treepie , Black-naped Oriole Andaman Drongo, Orange-headed Thrush, Olive backed Sunbird, White-headed Starling.<br />
<br />
<br />
 <br />
Day 2:  Port Blair - Chidya Tapu <br />
<br />
Very early morning trip to Chidiya Tapu, a patch of moist evergreen forest located to the South of Port Blair and excellent for birding. The track for birding starts 4 km before Chidiya Tapu and 2 km along the seashore forest. Should sight the Andaman Woodpecker, Andaman Crake, Andaman Treepie, Andaman Serpent Eagle, Black-naped Oriole, Andaman Drongo, Olive backed Sunbird, White-headed Starling, Fulvous-breasted Woodpecker, Stork-billed Kingfisher, White-throated Kingfisher, Collared Kingfisher, Chestnut-headed Bee-eater, Brown Coucal, Alexandrine Parakeet, Red-breasted Parakeet, Red-breasted Parakeet.<br />
<br />
<br />
<br />
Day 3: Port Blair - Sippighat <br />
<br />
Very early morning drive towards Sippighat, located to the South of Port Blair. The area is a marshy wetland and good for sightings of water birds & waders. Should sight the Andaman Scops Owl , Andaman Hawk Owl, Sunda Teal, Fulvous-breasted Woodpecker, Blue-eared Kingfisher, Stork-billed Kingfisher, Collared Kingfisher, White-throated Kingfisher, Chestnut-headed Bee-eater, Brown Coucal, Red-breasted Parakeet, Oriental Scops Owl, Brown Hawk Owl, Edible nest Swiftlet, Common Snipe, Black-naped Tern, White-bellied Sea Eagle, Black-naped Oriole, Andaman Drongo , Orange-headed Thrush, Olive backed Sunbird. Thereafter proceed back to Mount Harriet to pick up those missed earlier. Return by evening.<br />
 <br />
 <br />
Day 4: Port Blair - Birding at Farargunj  and additional tour of city and shopping.<br />
 <br />
Birding at Farar Ganj & in the afternoon visit areas for Andaman endemics missed out during earlier trips.<br />
Shopping and City tour in Port Blair as per time availability. <br />
<br />
<br />
Day 5: Departure <br />
<br />
Tour Ends here you will be dropped at the airport to fly back to home with beautiful memories.<br />
<br />
<br />
Price: US $ 1100 per person (ex flights), on Twin share, based on 2 people travelling.<br />
(There would be a surcharge of  $ 30 from 20 December to 10 January)<br />
<br />
Inclusions: Price includes accommodation on full board, surface transportation, airport transfers, guide fees, entrance fees. This trip can also be tailor-made.<br />
<br />
Specially trained and certified guides are available with us.<br />
<br />
<br />
GENERAL INFORMATION<br />
<br />
NOTES FOR BIRDERS TO ANDAMAN ISLANDS<br />
Kalypso Adventures welcomes you to an interesting and productive birding trip to the Andamans. This document provides information about your holiday including information about modes of transport, your guide and about the weather and equipment. <br />
<br />
<br />
VISA<br />
<br />
ALL VISITORS TO INDIA MUST OBTAIN A VISA BEFORE DEPARTURE<br />
<br />
<br />
In addition, att Port Blair (Andaman Islands), you will need to fill in a few forms on arrival. No separate entry permit is required prior to arrival.<br />
<br />
INFORMATION ON WEATHER, CLIMATE & CLOTHING<br />
<br />
In general the weather will be warm and pleasant – hot during the day and pleasant during nights.<br />
<br />
TEMPERATURE PATTERN<br />
<br />
The Andamans  being in the tropics, has a steady temperature throughout the year. The rainy season starts by May and goes on till October. <br />
<br />
RAINFALL PATTERN<br />
The monsoon months are from May to October, with June & ly being the peak rainy months.<br />
<br />
DRESS<br />
Cottons are recommended.<br />
<br />
GUIDE<br />
Your birding guide will be with you throughout the tour. He would be responsible for birding as well as sorting all your logistics during the tour.<br />
<br />
ACCOMMODATION<br />
All accommodation on the tour is a luxury hotel. All meals are included.<br />
<br />
FOOD & WATER<br />
Food provided by the hotel will be safe for you – there is little risk to your health. If you wish to buy your own food, snacks or beverages at any time, we recommend that you ask for advice from your guide. In general – hot beverages (tea and coffee) are fine.<br />
<br />
HEALTH CONCERNS<br />
<br />
General: India is located in south Asia. Its climate is mostly tropical or sub-tropical and subject to seasonal monsoon winds, especially the southwest rain during summer. (Dec to Mar are dry months)<br />
<br />
India is an economically developing democratic republic and has worked very hard to control diseases. Adequate medical care is available in the major population centers, but is usually limited in the rural areas of the country. Many developed countries are utilizing the state-of-the-art medical services available in India. The cost of treatment is much cheaper here in comparison to the same facilities available in advanced countries. <br />
<br />
The most important cause of illness of travelers in India is food and waterborne diseases. Viruses, bacteria, or parasites can cause diarrhea. Infections may cause simple diarrhea and vomiting, fever, or, in extreme cases, liver damage (hepatitis). <br />
<br />
Malaria: The regions you will be passing is Malaria-free.<br />
<br />
Insurance: We recommended that you take your insurance that covers illnesses and accidents abroad. <br />
<br />
Precautions: During this birding trip you need not worry about your fitness if you take simple precautions.:-.<br />
<br />
Carry all the important prescriptions and OTC medicines. Do not forget to have the brand names as well as the generic names of the medicines one needs to have. <br />
Wear a sun hat when exposed. <br />
Drink plenty of fluids. Do not drink tap water. Use only bottled mineral water which is always kept in the back of your vehicle. <br />
Carry your personal medical kit and insect repellent. <br />
To prevent fungal and parasitic infections, keep feet clean and dry, and do not go barefoot. <br />
Do not eat food purchased from street vendors. <br />
Do not drink beverages with ice. <br />
Do not eat dairy products unless it is known that they have been pasteurized. <br />
Avoid handling animals (especially monkeys, dogs, and cats) to avoid bites and serious diseases. <br />
<br />
VACCINATION FORMALITIES<br />
<br />
Yellow fever: Although yellow fever does not occur in India, proof of appropriate vaccination may be required depending on countries visited before coming to India. Any person (except infants up to the age of six months) arriving by air or sea without a certificate is detained in isolation for a period up to six days if he or she: <br />
<br />
Arrives within six days of departure from an infected area, or <br />
Has been in such an area in transit. <br />
Has come on a ship which has started from or touched at any port in a yellow fever infected area within 30 days of its arrival in India provided such ship has not been disinfected in accordance with the procedure laid down by WHO, or has come by an aircraft that has been in an infected area and has not been disinfected in accordance with Indian or WHO regulations<br />
<br />
The following countries and areas are regarded by India as infected: <br />
<br />
Angola, Benin, Bolivia, Brazil, Burkina Faso, Burundi, Cameroon, Central <br />
African Republic, Chad, Colombia, Congo, Cote d'Ivoire, Ecuador, <br />
Equatorial Guinea, Ethiopia, French Guiana, Gabon, Gambia, Ghana, Guinea, <br />
Guinea-Bissau, Guyana, Kenya, Liberia, Mali, Niger, Nigeria, Panama, Peru, <br />
Rwanda, Sao Tome and Principe, Senegal, Sierra Leone, Somalia, Sudan, <br />
Surinam, Togo, Trinidad and Tobago, Uganda, United Republic of Tanzania, <br />
Venezuela, Zaire, Zambia. <br />
<br />
Malaria: The areas you pass through are malaria-free.<br />
<br />
No other vaccination certificate is mandatory, though you may like to consult your doctor for inoculation against typhoid, hepatitis A, and meningitis. Visit your doctor at least 4-6 weeks before the trip to allow time for shots to take effect. <br />
<br />
The following vaccinations can be thought about depending upon your doctor’s advice:- <br />
<br />
Hepatitis A or immune globulin (IG); Japanese encephalitis, only if planning to visit rural areas for four weeks or more; <br />
<br />
Rabies, if someone is exposed to wild or domestic animals during recreation.<br />
<br />
<br />
Medical Information Update <br />
Information given above are liable to change from time to time and one should contact the Indian missions of the respective country or the government tourist offices for more information.<br />
<br />
<br />
<br />
<br />
LOGISTICS<br />
<br />
<br />
Footwear<br />
<br />
Trekking/ walking or running shoes ( trainers)<br />
Campshoes or throngs ( flip-flops)<br />
Socks – Cotton. One pair woolen or polypropylene<br />
<br />
Clothing<br />
Sweater or light jacket<br />
Hiking shorts or skirts <br />
Light Waterproof jacket / poncho <br />
Hiking pants<br />
T-shirts or Blouses <br />
Underwear <br />
Sunhat (wide brim preferable)<br />
Swimwear (optional)<br />
<br />
Equipment<br />
<br />
Binoculars<br />
Small Rucksack (day pack)<br />
Water bottle <br />
Flashlight with spare batteries and bulb<br />
<br />
Other items<br />
<br />
Toilet articles<br />
Lighter<br />
Swiss knife<br />
Sunblock ( at least SPF-35 for the higher altitudes)<br />
Hand Towels for day use <br />
Laundry soap<br />
Personal medical kit<br />
Pre-moistened towelets<br />
Sewing kit<br />
Bandana / sweatband<br />
Sun glasses<br />
<br />
Optional gizmos<br />
<br />
Tripods/ telescopes & allied equipment<br />
Global positioning system GPS<br />
Thermometer<br />
Compass<br />
Laptop or Notebook for recording bird lists etc<br />
<br />
Water Bottle: Suggest carry on person either in day pack or on belt.Depends upon group sizeAll flight<br />
Personal expenses<br />
other than above mentioned inclusions<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_on.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">Hotel Velocity</h2>
								</div>
								<p class="cb"></p>
								<p><b>Address :</b> Port Blair, Andaman & Nicobar Islands, India</p>
								<p><b>Facility :</b> Airport Transfer, Banquet, Restaurant, Wakeup Services</p>
								<div class="mt7px">Decent and Luxury</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>Flights</li>
																		<li>Meals</li>
																		<li>Transport</li>
																		<li>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>All flight</li><li>
Personal expenses</li><li>
other than above mentioned inclusions</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.sandsofandaman.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman Bird Watching 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="63582"/>
						</form>
						</div>
						
						";i:1;s:65:"Book Andaman Bird Watching Tour - 4 Nights / 5 Days Tour Packages";i:2;s:121:"book andaman bird watching tour - 4 nights / 5 days tour packages, national parks tour packages, port blair tour packages";i:3;s:186:"Book Andaman Bird Watching Tour - 4 Nights / 5 Days tour packages from Sands of Andaman Travel Pvt. Ltd. - Get attractive 4 Nights / 5 Days National Parks  tour packages for  Port Blair.";i:4;s:10770:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair"        
		                 },
		      "description": "Bird Watching with trained and certified guides.

The Andaman & Nicobar Islands are home to over 240 species of birds, of which 18 are endemic. All the endemic birds are forest-dwelling species; some appear quite commonly in disturbed forest and have been recorded near the capital, Port Blair.
In the Andamans, one does not necessarily need to be an expert or have trained eye to spot and admire some of these fine feathered fellows. Given the dense canopy of forests, the mangrove ecosystem and the wide array of tropical fruits, birds here are easy to spot even from the balcony of your cottage.
A trek, a pair of binoculars, some patience and a good guide will have you awe struck at the sheer beauty and uniqueness of the endemic species that have evolved on these stunning islands.

 
Itinerary
 
Day 1: Port Blair - Mount Harriet National Park

Arrive at Port Blair by the early morning flight to start the Andaman Endemic Birding Tour. Meet & assist at the airport. We will bird around Mount Harriet National Park, a tropical moist evergreen forest. Should sight Andaman Woodpecker, Andaman Wood Pigeon, Andaman Cuckoo Dove , Andaman Crake, Fulvous-breasted Woodpecker, Dollarbird, Collared Kingfisher, Brown Coucal, Alexandrine Parakeet, Red-breasted Parakeet, Red-breasted Parakeet, Pintail Snipe, White-bellied Sea Eagle, Andaman Treepie , Black-naped Oriole Andaman Drongo, Orange-headed Thrush, Olive backed Sunbird, White-headed Starling.


 
Day 2:  Port Blair - Chidya Tapu 

Very early morning trip to Chidiya Tapu, a patch of moist evergreen forest located to the South of Port Blair and excellent for birding. The track for birding starts 4 km before Chidiya Tapu and 2 km along the seashore forest. Should sight the Andaman Woodpecker, Andaman Crake, Andaman Treepie, Andaman Serpent Eagle, Black-naped Oriole, Andaman Drongo, Olive backed Sunbird, White-headed Starling, Fulvous-breasted Woodpecker, Stork-billed Kingfisher, White-throated Kingfisher, Collared Kingfisher, Chestnut-headed Bee-eater, Brown Coucal, Alexandrine Parakeet, Red-breasted Parakeet, Red-breasted Parakeet.



Day 3: Port Blair - Sippighat 

Very early morning drive towards Sippighat, located to the South of Port Blair. The area is a marshy wetland and good for sightings of water birds & waders. Should sight the Andaman Scops Owl , Andaman Hawk Owl, Sunda Teal, Fulvous-breasted Woodpecker, Blue-eared Kingfisher, Stork-billed Kingfisher, Collared Kingfisher, White-throated Kingfisher, Chestnut-headed Bee-eater, Brown Coucal, Red-breasted Parakeet, Oriental Scops Owl, Brown Hawk Owl, Edible nest Swiftlet, Common Snipe, Black-naped Tern, White-bellied Sea Eagle, Black-naped Oriole, Andaman Drongo , Orange-headed Thrush, Olive backed Sunbird. Thereafter proceed back to Mount Harriet to pick up those missed earlier. Return by evening.
 
 
Day 4: Port Blair - Birding at Farargunj  and additional tour of city and shopping.
 
Birding at Farar Ganj & in the afternoon visit areas for Andaman endemics missed out during earlier trips.
Shopping and City tour in Port Blair as per time availability. 


Day 5: Departure 

Tour Ends here you will be dropped at the airport to fly back to home with beautiful memories.


Price: US $ 1100 per person (ex flights), on Twin share, based on 2 people travelling.
(There would be a surcharge of  $ 30 from 20 December to 10 January)

Inclusions: Price includes accommodation on full board, surface transportation, airport transfers, guide fees, entrance fees. This trip can also be tailor-made.

Specially trained and certified guides are available with us.


GENERAL INFORMATION

NOTES FOR BIRDERS TO ANDAMAN ISLANDS
Kalypso Adventures welcomes you to an interesting and productive birding trip to the Andamans. This document provides information about your holiday including information about modes of transport, your guide and about the weather and equipment. 


VISA

ALL VISITORS TO INDIA MUST OBTAIN A VISA BEFORE DEPARTURE


In addition, att Port Blair (Andaman Islands), you will need to fill in a few forms on arrival. No separate entry permit is required prior to arrival.

INFORMATION ON WEATHER, CLIMATE & CLOTHING

In general the weather will be warm and pleasant – hot during the day and pleasant during nights.

TEMPERATURE PATTERN

The Andamans  being in the tropics, has a steady temperature throughout the year. The rainy season starts by May and goes on till October. 

RAINFALL PATTERN
The monsoon months are from May to October, with June & ly being the peak rainy months.

DRESS
Cottons are recommended.

GUIDE
Your birding guide will be with you throughout the tour. He would be responsible for birding as well as sorting all your logistics during the tour.

ACCOMMODATION
All accommodation on the tour is a luxury hotel. All meals are included.

FOOD & WATER
Food provided by the hotel will be safe for you – there is little risk to your health. If you wish to buy your own food, snacks or beverages at any time, we recommend that you ask for advice from your guide. In general – hot beverages (tea and coffee) are fine.

HEALTH CONCERNS

General: India is located in south Asia. Its climate is mostly tropical or sub-tropical and subject to seasonal monsoon winds, especially the southwest rain during summer. (Dec to Mar are dry months)

India is an economically developing democratic republic and has worked very hard to control diseases. Adequate medical care is available in the major population centers, but is usually limited in the rural areas of the country. Many developed countries are utilizing the state-of-the-art medical services available in India. The cost of treatment is much cheaper here in comparison to the same facilities available in advanced countries. 

The most important cause of illness of travelers in India is food and waterborne diseases. Viruses, bacteria, or parasites can cause diarrhea. Infections may cause simple diarrhea and vomiting, fever, or, in extreme cases, liver damage (hepatitis). 

Malaria: The regions you will be passing is Malaria-free.

Insurance: We recommended that you take your insurance that covers illnesses and accidents abroad. 

Precautions: During this birding trip you need not worry about your fitness if you take simple precautions.:-.

Carry all the important prescriptions and OTC medicines. Do not forget to have the brand names as well as the generic names of the medicines one needs to have. 
Wear a sun hat when exposed. 
Drink plenty of fluids. Do not drink tap water. Use only bottled mineral water which is always kept in the back of your vehicle. 
Carry your personal medical kit and insect repellent. 
To prevent fungal and parasitic infections, keep feet clean and dry, and do not go barefoot. 
Do not eat food purchased from street vendors. 
Do not drink beverages with ice. 
Do not eat dairy products unless it is known that they have been pasteurized. 
Avoid handling animals (especially monkeys, dogs, and cats) to avoid bites and serious diseases. 

VACCINATION FORMALITIES

Yellow fever: Although yellow fever does not occur in India, proof of appropriate vaccination may be required depending on countries visited before coming to India. Any person (except infants up to the age of six months) arriving by air or sea without a certificate is detained in isolation for a period up to six days if he or she: 

Arrives within six days of departure from an infected area, or 
Has been in such an area in transit. 
Has come on a ship which has started from or touched at any port in a yellow fever infected area within 30 days of its arrival in India provided such ship has not been disinfected in accordance with the procedure laid down by WHO, or has come by an aircraft that has been in an infected area and has not been disinfected in accordance with Indian or WHO regulations

The following countries and areas are regarded by India as infected: 

Angola, Benin, Bolivia, Brazil, Burkina Faso, Burundi, Cameroon, Central 
African Republic, Chad, Colombia, Congo, Cote d'Ivoire, Ecuador, 
Equatorial Guinea, Ethiopia, French Guiana, Gabon, Gambia, Ghana, Guinea, 
Guinea-Bissau, Guyana, Kenya, Liberia, Mali, Niger, Nigeria, Panama, Peru, 
Rwanda, Sao Tome and Principe, Senegal, Sierra Leone, Somalia, Sudan, 
Surinam, Togo, Trinidad and Tobago, Uganda, United Republic of Tanzania, 
Venezuela, Zaire, Zambia. 

Malaria: The areas you pass through are malaria-free.

No other vaccination certificate is mandatory, though you may like to consult your doctor for inoculation against typhoid, hepatitis A, and meningitis. Visit your doctor at least 4-6 weeks before the trip to allow time for shots to take effect. 

The following vaccinations can be thought about depending upon your doctor’s advice:- 

Hepatitis A or immune globulin (IG); Japanese encephalitis, only if planning to visit rural areas for four weeks or more; 

Rabies, if someone is exposed to wild or domestic animals during recreation.


Medical Information Update 
Information given above are liable to change from time to time and one should contact the Indian missions of the respective country or the government tourist offices for more information.




LOGISTICS


Footwear

Trekking/ walking or running shoes ( trainers)
Campshoes or throngs ( flip-flops)
Socks – Cotton. One pair woolen or polypropylene

Clothing
Sweater or light jacket
Hiking shorts or skirts 
Light Waterproof jacket / poncho 
Hiking pants
T-shirts or Blouses 
Underwear 
Sunhat (wide brim preferable)
Swimwear (optional)

Equipment

Binoculars
Small Rucksack (day pack)
Water bottle 
Flashlight with spare batteries and bulb

Other items

Toilet articles
Lighter
Swiss knife
Sunblock ( at least SPF-35 for the higher altitudes)
Hand Towels for day use 
Laundry soap
Personal medical kit
Pre-moistened towelets
Sewing kit
Bandana / sweatband
Sun glasses

Optional gizmos

Tripods/ telescopes & allied equipment
Global positioning system GPS
Thermometer
Compass
Laptop or Notebook for recording bird lists etc

Water Bottle: Suggest carry on person either in day pack or on belt.Depends upon group sizeAll flight
Personal expenses
other than above mentioned inclusions",
		      "name": "Andaman Bird Watching Tour",
		      "telephone": "+91-9679584664"
		    }
		    </script>
			";i:5;N;}