Skip to content
OpenWaterAtlas

The best time to dive, month by month, for every dive region

"Best time to visit" advice is usually one person's memory of one trip — and it's almost always pitched at whole countries, which is the wrong grain: the Pacific and Caribbean coasts of Mexico don't share a season. So this scores every month from 5 years of daily wind, rain and temperature across 1,419 dive sites, grouped into 105 dive regions (by nearest travel hub) in 23 countries. Darker = the calmer, drier, warmer weeks each region's own conditions favour. Built from our open dataset — reproducible, not a guess.

Indonesia: 6 months apart
Sorong peaks in November, but Jakarta in May — a single "best month" for the country would hide that.
🇪🇬 Marsa Alam
is the most year-round region here — the flattest swing between its calmest and roughest months.
🇮🇹 Reggio Calabria
has the sharpest season — its best months stand out most, so timing matters there.
Dive region JFMAMJJASOND Best months
🇮🇩 Indonesia
Sorong 66 FairLowFairGoodLowLowLowLowLowPeakPeakFair October, November
Mataram (Pujut, Lombok Tengah) 46 LowLowLowPeakPeakGoodLowFairFairGoodGoodLow April, May
Kuta, Badung 35 LowLowGoodPeakGoodFairLowLowFairPeakPeakFair October, November
Manado 35 LowLowLowLowGoodGoodGoodPeakGoodPeakLowLow August, September, October
Luwok 34 LowLowLowFairLowLowLowFairPeakPeakGoodLow September, October
Bima 28 LowLowLowGoodGoodFairLowLowFairPeakPeakLow October, November
Jakarta 20 LowLowLowGoodPeakGoodFairPeakGoodPeakLowLow May, August, September, October
Banda Aceh 3 LowLowGoodPeakLowLowLowLowLowLowLowLow April
🇪🇬 Egypt
Hurghada 91 LowLowLowGoodFairFairPeakGoodGoodPeakPeakFair July, November
Berenice Troglodytica 58 LowLowLowLowLowLowPeakFairLowLowLowLow July
Sharm El Sheikh 42 FairLowLowFairFairFairGoodGoodGoodPeakGoodFair October
Marsa Alam 33 FairFairLowFairFairFairPeakGoodFairPeakFairLow July, October
Saint Catherine 22 FairLowLowGoodFairFairPeakGoodFairGoodPeakGood July, November
🇲🇻 Maldives
Malé 94 LowLowPeakPeakLowFairLowLowLowLowLowLow March, April
Maamigili 42 LowLowPeakPeakLowFairLowLowLowLowLowLow March, April
Gan 8 LowLowPeakFairLowGoodLowLowLowLowLowLow March, June
Noonu Atoll 8 LowLowPeakPeakLowLowLowLowLowLowLowLow March, April
🇫🇷 France
Biarritz 19 LowLowLowLowLowFairPeakPeakGoodLowLowLow July, August
Hyères, Var 15 LowLowLowLowLowGoodGoodPeakLowLowLowLow August
Cannes 10 LowLowLowLowLowGoodGoodPeakLowLowLowLow July, August
Papeete 8 LowFairPeakGoodFairLowLowLowLowLowLowLow March
Perpignan/Rivesaltes 8 LowLowLowLowFairPeakGoodPeakGoodGoodLowLow June, August
Bordeaux 7 LowLowLowLowLowLowGoodPeakFairLowLowLow July, August
Le Castellet, Var 7 LowLowLowLowLowGoodFairPeakLowLowLowLow August
Montpellier/Méditerranée 7 LowLowLowLowLowFairFairPeakLowLowLowLow August
Pointe-à-Pitre 7 GoodFairFairPeakGoodLowLowFairPeakFairGoodGood April, September
Grand-Bourg 5 FairFairFairPeakPeakLowLowGoodPeakFairFairFair April, May, September
Hondarribia 5 LowLowLowLowLowFairPeakPeakLowLowLowLow July, August
Brest 4 LowLowLowFairFairPeakGoodPeakFairLowLowLow June, August
Marignane, Bouches-du-Rhône 4 LowLowLowFairLowGoodPeakPeakLowLowLowLow July, August
🇵🇭 Philippines
Coron 18 FairLowGoodPeakGoodFairLowLowLowLowGoodFair April
Mamburao 17 LowLowFairPeakPeakFairLowLowLowFairGoodLow April, May
Ormoc City 14 LowLowFairGoodPeakPeakLowGoodLowLowFairLow May, June
Dumaguete City 12 LowLowFairPeakGoodFairLowGoodFairLowLowLow April
Cabatuan 10 LowLowFairPeakGoodLowLowLowLowLowLowLow April
Panglao 7 LowLowLowPeakGoodFairLowFairFairLowLowLow April
Surigao City 4 LowLowFairGoodGoodPeakLowLowFairFairLowLow June
Davao 3 LowLowFairPeakLowLowLowLowFairGoodFairLow April
Mambajao 3 LowLowLowFairGoodPeakFairPeakGoodFairLowLow May, June, August, September
🇹🇭 Thailand
Na Thon (Ko Samui Island) 23 LowLowGoodPeakLowLowLowLowLowLowLowLow April
Phuket 17 LowFairGoodPeakLowLowLowLowLowLowLowLow April
Langkawi 9 LowFairGoodPeakGoodGoodGoodLowLowLowLowLow April
Ranong 8 LowFairGoodPeakLowLowLowLowLowLowLowLow April
Laem Ngop 7 LowFairGoodPeakFairLowLowLowLowLowLowLow April
Krabi 6 LowLowGoodPeakFairLowLowLowLowLowLowLow April
🇺🇸 United States
Pensacola 11 LowFairLowGoodFairFairPeakFairGoodFairLowFair July
Kahului 10 GoodLowLowLowLowFairFairFairGoodPeakGoodFair October
Monterey 10 LowLowLowLowFairFairGoodPeakPeakGoodLowLow July, August, September
Burlington 6 FairLowLowLowFairFairLowFairPeakLowLowLow September
Gainesville 6 FairFairLowFairGoodFairGoodFairGoodPeakGoodGood October
San Jose 5 LowLowLowLowLowFairPeakPeakPeakGoodLowLow July, August, September
Hagåtña 4 FairFairGoodGoodPeakPeakFairFairFairLowGoodFair May, June
Hilo 4 GoodLowLowLowLowLowLowLowPeakPeakLowLow September, October
Panama City Beach 3 LowLowLowLowLowLowLowLowFairPeakFairLow October
San Juan 3 PeakLowFairLowPeakGoodLowFairFairPeakGoodPeak January, May, October, December
Santa Ana 3 FairLowLowFairFairGoodPeakGoodGoodPeakGoodGood July, October
🇭🇷 Croatia
Rijeka(Omišalj) 32 LowLowLowLowLowPeakGoodFairLowLowLowLow June
Pula 13 LowLowLowLowLowPeakGoodGoodLowLowLowLow June, July
Zadar 11 LowLowLowLowLowPeakGoodFairLowLowLowLow June
Split 5 LowLowLowLowLowPeakGoodFairLowFairLowLow June
Sečovlje 3 LowGoodLowFairLowPeakGoodGoodLowLowLowGood June
🇦🇺 Australia
Cairns 11 LowLowLowLowLowLowLowLowLowGoodPeakFair November
Gold Coast 11 LowLowLowLowLowPeakFairFairLowLowLowLow June
Sydney (Mascot) 11 LowFairLowPeakGoodGoodFairFairFairFairLowGood April
Williamtown 9 LowFairLowGoodFairFairFairGoodGoodFairFairPeak December
Geelong/Melbourne 8 GoodGoodPeakGoodFairLowLowLowLowLowLowLow March
Grafton 5 GoodGoodLowLowLowPeakLowFairLowLowFairGood June
Perth 5 FairGoodGoodPeakGoodLowLowLowFairFairFairFair April
🇮🇹 Italy
Genova (GE) 21 LowLowLowLowLowPeakPeakPeakLowLowLowLow June, July, August
Alghero 7 LowLowLowFairGoodPeakPeakPeakGoodGoodLowLow June, July, August
Rome 7 LowLowLowLowLowPeakGoodGoodLowLowLowLow June, August
Campo nell'Elba (LI) 5 LowLowLowLowFairGoodPeakGoodLowLowLowLow July
Grosseto (GR) 5 LowLowLowLowFairPeakGoodPeakLowLowLowLow June, July, August
Reggio Calabria 5 LowLowLowLowLowPeakPeakPeakFairLowLowLow June, July, August
Olbia (SS) 4 LowLowLowLowLowGoodGoodPeakFairFairLowLow June, July, August
Pisa (PI) 3 LowLowLowLowLowPeakPeakFairLowLowLowLow June, July
🇲🇽 Mexico
Cozumel 27 LowLowFairFairGoodLowGoodGoodPeakGoodFairLow September
Cancún 5 LowLowLowFairGoodLowPeakPeakGoodLowLowLow July, August
San José del Cabo 3 LowFairLowFairPeakFairFairFairFairGoodGoodPeak May, December
Tulum 3 FairFairFairFairFairLowGoodGoodPeakPeakGoodGood September, October
🇬🇧 United Kingdom
Brighton, East Sussex 25 LowLowLowFairGoodPeakGoodPeakLowLowLowLow June, July, August
Kirkwall, Orkney Islands 10 LowLowLowFairPeakGoodGoodFairLowLowLowLow May, July
Birmingham, West Midlands 3 LowLowLowFairFairGoodFairPeakLowLowLowLow August
🇵🇹 Portugal
Lisbon 18 LowLowLowLowLowLowFairGoodPeakLowLowLow September
Porto 8 LowLowLowLowLowFairLowPeakGoodLowLowLow August
Portimão 6 LowLowLowFairFairFairFairFairPeakFairGoodLow September
Cascais 4 LowLowLowLowLowLowFairFairPeakFairLowLow September
🇲🇹 Malta
Valletta 32 LowLowLowLowLowGoodPeakPeakLowLowLowLow June, July, August
🇨🇾 Cyprus
Paphos 8 LowLowLowLowLowGoodPeakFairFairGoodLowLow June, July
Lefkoniko (Geçitkale) 7 LowLowLowLowLowFairGoodFairPeakPeakGoodLow September, October
Larnaca 5 LowLowLowLowFairGoodGoodGoodGoodPeakPeakLow October, November
Akrotiri 3 LowLowLowLowLowGoodGoodFairGoodPeakGoodLow October
🇨🇴 Colombia
San Andrés 17 LowLowGoodPeakGoodLowLowFairPeakGoodLowLow September
🇲🇦 Morocco
Rabat 8 LowLowLowLowLowFairPeakPeakGoodGoodFairLow July, August
Essaouira 4 FairLowLowLowFairFairGoodPeakPeakPeakPeakFair August, September, October, November
Agadir (Temsia) 3 LowLowLowLowLowLowPeakPeakGoodGoodPeakFair July, August, September, November
🇪🇨 Ecuador
Isla Baltra 8 PeakPeakGoodGoodGoodFairLowLowLowFairFairGood January, February
Salinas/La Libertad 5 GoodFairPeakPeakGoodFairLowLowFairFairLowFair April
🇨🇻 Cape Verde
Espargos 6 LowLowLowLowLowFairPeakFairLowGoodFairLow July
São Pedro 4 FairLowLowLowLowLowPeakLowLowFairGoodFair July
🇹🇿 Tanzania
Zanzibar 8 FairGoodGoodLowLowLowLowLowFairFairGoodPeak December
🇦🇷 Argentina
Mar del Plata 4 GoodLowLowLowPeakGoodFairFairGoodFairLowLow May
La Plata 3 LowLowLowFairFairPeakFairLowLowLowLowFair June
🇲🇺 Mauritius
Plaine Magnien 4 LowFairFairPeakFairLowLowLowFairGoodPeakGood April, November
🇹🇷 Turkey
Bodrum 3 LowLowLowFairFairFairLowPeakFairPeakLowLow August, October

Rating is relative to each region's own year: Peak Good Fair Low "Low" = that region's off-season, not "bad diving". Number after a region = dive sites in it. Hover a cell for the underlying wind / rain / temperature.

How the regions and the score are built

A country is too coarse a unit — Mexico spans the Pacific and the Caribbean, the US spans Florida, California and Hawaii. We don't hold administrative regions, so each dive site is snapped to its nearest airport hub (within 150 km) and regions are named by that hub city — Cozumel, Cabo, Kona, Key West — which is how you'd fly there anyway. Sites more than 150 km from any hub (remote liveaboard reefs like Socorro) are left out.

For each site we hold a 5-year daily climatology — median wind, mean rain and mean air temperature per day — from Open-Meteo / ERA5. We average those to a monthly value per region, then score each month on three things a diver feels:

  • Calm — lower wind means better visibility, easier boat access and less surge.
  • Dry — less rain means less runoff killing viz, and fewer blown-out days.
  • Warm — warmer air tracks warmer water (weighted at half, since divers tolerate warmth far better than cold).

Each factor is z-normalised within the region and combined. Every month is then rated Peak / Good / Fair / Low by how far it sits from that region's own best month — so the rating answers "which months are best for this region", not a global ranking, and a genuinely year-round region never drops to "Low". A region needs at least 3 sites with climatology to appear (105 qualify today).

Caveats, stated plainly. This is a climate-conditions signal, not a marine-life calendar — a manta or whale-shark season can peak outside the calmest weeks. Water temperature is inferred from air, not measured per month. Regions are approximated by airport proximity, not surveyed dive-operator boundaries. And climate is the long-run average; any single year varies. Every input is in the open dataset, so you can re-derive or re-weight this yourself.

Data: OpenWaterAtlas open dataset (DOI 10.5281/zenodo.20668393), built on Open-Meteo / ERA5. CC-BY 4.0 — reuse with attribution and a link back.

View →