← All switching guides

FareHarbor + DiveDay

FareHarbor fills the seats. DiveDay runs the boat.

FareHarbor takes the online booking and puts you in front of its hotel and reseller network — and then the dive day still runs on a clipboard, because a general booking engine was never built for cards, waivers, or a roll call on the water. Here's how DiveDay runs that day: keep FareHarbor for the storefront, or leave the per-booking fee behind and take the booking here too. Either way, bringing your divers across is the same few minutes.

FareHarbor is an online booking platform for tours, activities, and rentals — owned by Booking Holdings, the company behind Booking.com — and plenty of dive shops run their storefront on it. It's genuinely good at that job: guests book and pay online, and its distribution network puts your trips in front of hotels, concierges, and resellers you'd never reach on your own. We're not here to talk you out of any of that.

What it isn't is dive software. FareHarbor makes no claim to certification gating, medical waivers that fail closed, rental-gear fit, or a boat manifest built for a roll call — because it's a general booking engine, not a dive shop's back office. Its "manifest" is a passenger list you can download; it has no concept of a C-card. So your guests book beautifully, and then the part that keeps people safe on the water still runs on a clipboard.

And the storefront isn't free: FareHarbor charges nothing monthly, but it takes a fee on every booking — added to your guest's checkout price — for as long as you use it. It doesn't publish the rate; you hear it on a sales call (third parties report around 6%). A cut of every booking, forever, is the thing a growing shop feels.

So there are two honest ways DiveDay fits a FareHarbor shop, below: keep FareHarbor for the storefront and add the dive day it can't run, or take the booking in DiveDay too and leave the per-booking fee behind. Whichever you pick, you bring your divers across the same way — and the safety spine holds either way.

Keep it, or leave it

Keep FareHarbor. Add the day it can't run.

DiveDay runs the water side — everything between "booked" and "back at the dock" that a booking engine was never built to touch. Point-for-point, this is what FareHarbor leaves to your clipboard:

  • Readiness that won't let an unready diver board

    The trip and the dive site decide what each diver needs; if a card or waiver can't be verified, DiveDay says so plainly instead of passing them through. FareHarbor takes the booking — it never checks whether the diver is cleared to get on the boat.

  • Certification checks that actually gate the dive

    DiveDay gates the dive on the card: a deep dive won't clear a diver who isn't carded for it, and every nitrox fill is re-checked at fill time. Cards you enter are verified by staff; cards you bring in come across verified and flagged imported, with a one-tap confirm. A general booking engine has no concept of a C-card.

  • Native waivers with medical review — in every tier

    Waivers are built in and versioned against your own release, and a medical answer that calls for a physician's sign-off blocks the diver until that review — it doesn't just warn. Not a form stapled to a checkout, and not a paid add-on.

  • A roll-call manifest that survives the dock

    Big Boarded / Not-boarded buttons for wet thumbs, a head count for every dive, and a manifest the crew saves to the phone so it keeps working after the signal drops at the ramp.

  • Rental fit and the trip's packing list

    Every diver's sizes become the boat's kit list, with a tank per diver per dive split by air and nitrox. FareHarbor doesn't know a diver's wetsuit size.

  • The night-before brief and a recap they share

    Each diver gets a plain-language brief the night before — dock time, conditions, what to bring — and a shareable recap page after. The booking confirmation was the start; this is the rest of the relationship.

FareHarbor keeps doing what it's good at — taking the online booking and putting you in front of its hotel and reseller network, which DiveDay has no equivalent for and won't pretend to. There's no wire between the two systems: you bring your divers into DiveDay with the CSV export below, and re-import as your roster grows. What you get back for that is the dive day itself.

Or leave the per-booking fee behind.

If FareHarbor is really just your booking button — you're not leaning on its distribution network — you don't need to keep paying on every booking to keep it. DiveDay takes the booking itself: a public schedule anyone can book without an account, checkout through your own Stripe account, and the same native waivers. Bring your divers across once, point your booking link at DiveDay, and the per-booking fee stops. The steps below are the same either way.

Step 1

Get your data out of FareHarbor

FareHarbor runs in a browser, and your data comes out of the Dashboard's reports — there's no single "export everything" button. The goal is your people as a CSV. Menu labels shift over time, so treat these as the shape of the path, not word-for-word buttons.

  1. 1

    Sign into your FareHarbor Dashboard as an owner or admin

    Reports live in the Dashboard, behind an owner or admin login — not the guest-facing booking page.

  2. 2

    Open Reports and run the Contacts (customer) report

    FareHarbor's Contacts report is your customer list — names, email, phone — for a date range. That roster is what you need; the rest of the reports are booking and sales records.

  3. 3

    Set the date range as wide as it goes

    The Contacts report is scoped to a range, not a single all-time dump, so widen it as far as FareHarbor allows before you run it — otherwise a slow season or a lapsed regular quietly gets left behind.

  4. 4

    Download it as CSV

    FareHarbor's reports and manifests download as CSV straight from the Dashboard. Save the file where you'll find it — that file is all DiveDay needs.

  5. 5

    Don't wait on the API

    FareHarbor has an API, but access is partner-gated — you email their support to request it, and it's built for resellers, not a self-serve export you can run yourself. The Dashboard CSV is your route out, and it's enough.

  • The Contacts report is date-scoped, not a one-click "everything" export — set the range as wide as FareHarbor allows so seasonal and lapsed customers come along.
  • Your column headings don't have to match anything. DiveDay recognizes the common names FareHarbor and every other system use, and shows you exactly how each column mapped before you commit.
  • Certification cards and rental sizes aren't in a FareHarbor export — a booking engine doesn't hold them (see the scope table below). Expect people and their contact details; certs and sizes you build in DiveDay as divers arrive.
  • What FareHarbor does hold is bookings, and those come across: run the Bookings report over the same wide date range and your regulars arrive with their visit history rather than as new names.

Step 2

What comes across — and what doesn't

This is the same scope table DiveDay shows before it imports a single row. A card your system already checked comes across verified and flagged imported, ready to use, with a one-tap confirm for staff, and its refresher-due date comes with it. A specialty card is the one that waits on that confirm before it clears the dive it authorizes; individual medical answers are never reconstructed.

  • Names, email, phoneComes acrossImported as given. A row with an email is matched to an existing diver so a re-import updates them; a row without one always comes in as a new record.
  • Emergency contactComes acrossName and phone carry over when present.
  • Dive insurance (DAN)Comes acrossCarried across as free text, exactly as your file holds it (“DAN #12345”). Never a gate — it's the detail the crew wants on hand in an incident.
  • Rental sizesComes acrossBCD, wetsuit, boot, and fin sizes become a rental-fit profile.
  • Certification cardComes acrossImported verified and flagged imported — DiveDay trusts the card your system already checked, so a diver is ready from the first trip. A card lands with a card number and a recognized level; staff give it a one-tap confirm. A refresher-due date comes across with it, read from whatever date format your file writes, and a date already past lands as a card that's due rather than one that looks current forever. Two things import for staff review instead of as verified: a card your own file marks unverified, and a card whose refresher date we can't read — we won't guess at a date the boat depends on. Unrecognized levels are left for a person to enter.
  • Specialty cards (deep, wreck, night, drysuit)Comes acrossImported as verified specialty cards, flagged imported — from a specialty column, or from a certification row that names one (“PADI Deep Diver”). Your diver's agency number is what carries them, the same number their level card uses, so a “Deep, Wreck” cell comes across as both cards and a certification file with one row per card brings in every card a diver holds. A specialty is what clears a riskier dive, so this one is stricter than a level card: the dive that requires it waits until a staffer confirms they've seen the card, and everything else about the diver's day does not.
  • Enriched air (nitrox)Comes acrossImported as a verified nitrox card, flagged imported, whenever the row carries a nitrox card number — so a diver can request enriched air right away. A fill is the highest-stakes gate, so an imported nitrox card gives plain air until a staffer confirms they've seen the card or checked the number with the agency; boarding never waits on it.
  • Signed waivers & medical clearanceComes acrossWhen a row says the diver already accepted a waiver at the prior shop, DiveDay trusts it — including its medical clearance — and the diver is not asked to sign again. The record is marked imported everywhere staff see it, snapshots your shop's current release for reference only (the diver did not agree to that exact text), and is dated to the acceptance date the row gives (or the import date if it doesn't). Individual medical answers are never reconstructed — only the accept/no-review-needed outcome carries over. Trusting a prior shop's acceptance is a deliberate choice on our side, not an accident of the import.
  • Waiver / medical documentsComes acrossA row's waiver_document_url / medical_document_url is fetched once and re-stored in DiveDay's own storage for audit, the same way a pasted card photo is. Image files (JPEG/PNG/WebP/HEIC) and PDFs are supported, 5 MB max.
  • RoleComes acrossEveryone imports as a diver. Staff roles and logins are never granted by import.
  • Card on file / paymentStays behindStays with your payment processor — DiveDay never imports card or payment data.
  • Past visits (what they booked, when)Comes acrossA bookings or orders export comes across one line per booking, and lands on the diver's profile as history: the date, what your old system called the trip, its own status word, and the price it recorded. Two things it deliberately is not. It is not a trip — imported history never appears on your schedule, never counts toward a boat's capacity, and never reaches a manifest. And a booking is not a dive: an export holds cancellations and no-shows too, so DiveDay shows your old system's own word for each line rather than counting them all as dives the diver made. The amounts are there to read, not to add up — they stay out of your reporting, which covers what you've run here.
  • Receipts & service historyStays behindPayment records stay with your processor, and gear-service history has nowhere to land — DiveDay tracks the sizes a diver takes, not individual rigs. Your full-shop export carries your DiveDay history when you want it.

Step 3

Bring the file into DiveDay

With your export saved, the rest is in DiveDay and takes minutes.

  1. 1

    Open Settings → Import contacts

    In your DiveDay shop, the owner or manager opens the import page and uploads the CSV you exported.

  2. 2

    Check the preview

    DiveDay maps your columns automatically and previews the file before anything is saved — how each column landed, which cards will come in verified and flagged imported, and anything it's leaving behind. Rows with an email match an existing diver so a re-import updates them instead of duplicating; the rows that pass import when you confirm.

  3. 3

    Import — your roster is ready

    Roster, rental sizes, and cards are ready immediately: cards land verified and flagged imported, so divers are trip-ready from the first booking. Each imported card carries a one-tap confirm on the diver's record for staff to give it a look when they get a moment — no boarding waits on it. The one thing that does wait is a dive that requires a specialty card: that gate opens when a staffer confirms the card, which is one tap on the diver's record.

For a FareHarbor export: A FareHarbor export is mostly contact and booking data — expect people, emails, phones, and any emergency contact to import, and no certification cards or rental sizes (a booking platform doesn't hold them). Import the Contacts file, then the Bookings file: DiveDay matches divers by email, so the second file adds each booking to the same diver's history instead of duplicating them, and re-running either one later updates rather than doubles.

A person, not a wizard

We'll switch you on — and off — ourselves.

Send us what you've got — one clean export or a decade of messy tabs — and one of us maps the columns and brings your divers in with you, free, on any plan. And if DiveDay is ever not the right fit, the door swings the other way just as personally: your data is yours, and we'll help you carry all of it back out. Getting in, and getting out, shouldn't be the hard part.

Run the dive day FareHarbor can't.

Walk the live demo as the owner, the captain, or a diver first — then start a trial shop, bring your export, and see your roster land in DiveDay with the safety spine intact.