Open Water Swims 2020

About 18% confirmed, 8% unconfirmed, 5% suspended, 62% canceled, 7% defunct.

Hello and welcome to my catalog of 384 open-water swims in the US and then some. There are multiple regional schedules, with some overlap. Each schedule gives the basics to help you find swims to your liking: what, where, when, plus links to details. The criteria for listing are simple and liberal. A swim must be an annual event, open to a general adult audience, and held in the US or close-by. Its distance should be at least a mile or so, and a link to the swim's details must be available. Swims along the New Jersey Shore, my splashing grounds, get some extra attention. Here are the schedules:

New for 2020

Did you notice a mistake on these pages? Do you know of another swim fitting the criteria for listing? Kindly enlighten me via

Quick guide to schedules

Each schedule sorts its swims by date, time, and name. Golden rules separate months. Unconfirmed dates and times, indicated by question marks, are estimated from last season. Canceled swims are denoted by lines through the date and time. Links under the Location column aim to map check-in. That target is tricky for some events, and thus these links are more reliably taken as initial heuristics. Some are unsuitable for final driving directions. In the Distance column, "mi" abbreviates mile(s) and "km" abbreviates kilometer(s). The More column names the body of water you'll be swimming in and gives the starting time. The time listed can be somewhat fuzzy. It is the starting time of the (first) race or of any pre-race meeting. Check-in usually closes earlier.

The More column may also include codes "Ⓓ," "Ⓚ," "Ⓡ," "Ⓜ," and "Ⓣ" for supplemental info. Ⓓ means that the event's timeline permits double-dipping when multiple distances are offered (you can swim more than a single race). Ⓚ means a kids' race of some sort is offered, usually a short splash-and-dash. Ⓡ means there's an option for relay teams. Ⓜ means that USMS has sanctioned the event in whole or in part, and you must be a USMS member to enter. Similarly, Ⓣ indicates that USAT membership is required.

There's more to say about location links. When you click on the location, your browser will take you to Google Maps, showcasing the swim. If instead of clicking, you rest your pointer (i.e., hover) over the location for a half second, the underlying address pops up along with its coordinates of latitude and longitude. You can use this info for your car's GPS navigator via copy-and-paste. Next come clickable symbols "🄱", "🄶", "🄼", and "🄾", which link to Bing Maps, Google Maps (as above), Mapquest, and OpenStreetMap, respectively. So, you've got some options to suit your cartographic tastes. When you tire of the pop-up, simply move your pointer away from the location column. All this pop-up panache is somewhat experimental; its fate is uncertain.


This is an artisanal and non-commercial website free of advertisements, trackers, web bugs, cookie monsters, and their ilk.

These notes started with a list of eleven swims in South Jersey for the 1999 season, when few events had websites. Their purview grew to about three dozen swims by 2013, mainly along the full Jersey Shore. A wintertime project to expand the scope, a little, seemed like a good idea during the Polar Vortex of 2014. Then my initial sources cascaded into still more sources. The hoped-for value added to these scattered sources is to provide a concise and reasonably comprehensive resource with convenient organization so that swimmers can find events quickly and easily.

The underlying database for these notes is ultimately a collection of links to the swims' websites. Each season, the links are checked for new dates; that's manual labor. From time to time, swimmers and organizers kindly email corrections, additions, and cancellations—friendly help that's appreciated. The original database recorded a handful of races then generally-known to open-water swimmers along the Jersey Shore. Posting these to a website was a hacker's natural expedience to replace bespoke emails sharing each season's schedule, to newcomers and regulars alike. Other swimmers maintained local schedules, too, some on paper and some online. These helped to seed the cascade of websites informing the current database. Now, the roster changes at the margins: a swim added here, a swim dropped there.

Once the database is updated, code takes over. And that's where the real fun begins. (Out-of-water fun, that is.)

For the technically curious: These pages use plain HTML (HTML5) markup with CSS (CSS3) for style; they do not use JavaScript. Your browser can thus display schedules in a jiffy once it has downloaded a few small files. The HTML and CSS files are validated with W3C tools, and they are reviewed mainly under Firefox, my preferred browser. (Occasionally, they are checked under alternative browsers Midori, Chromium, and Falkon. Once in a blue moon, they are checked under Safari and Chrome.) The underlying database comprises a directory of multiple YAML files. Each YAML file holds the information for one or more swims. A separate YAML file describes the regional schedules. This simple arrangement facilitates the manual entry and organization of gathered data. Hand-crafted, locally-sourced Perl code (some parts imported) transforms the database into the final HTML files, and rsync uploads these to my web host. My development platform is the Fedora distribution of GNU, Linux, & Friends software.