# DiveDay > DiveDay is booking and operations software for dive shops. Every shop on DiveDay has a public schedule of departures (boat dives, shore dives, course sessions) that anyone can read and book without an account. DiveDay is not itself a dive operator: each shop sets its own departures, prices and requirements. ## A shop's public pages - Schedule: https://dive.day/s/ — the shop's upcoming departures, reviews and courses, as HTML with schema.org JSON-LD (an ItemList of Events). - Availability: https://dive.day/s//availability.json — the next 14 days of departures with a seat open, as JSON. Read this to find a departure. Absent (404) for a shop that has chosen not to be listed. - Booking page: https://dive.day/s//trips/ — one departure, and the form that books a seat on it. Bookings happen on this page and only here; the availability document is for finding a departure, not for booking one. Hand your reader this URL (it is each departure's booking_url). - Courses: https://dive.day/s//courses — the shop's course catalog, each course on its own page beneath it. ## Reading availability.json - departures[]: id, title, starts_at and ends_at (the shop's wall clock with its UTC offset, e.g. 2026-07-25T07:30:00-04:00), time_zone (IANA), sites (dive site names in dive order), price ({ amount, currency } as a decimal string in the currency's own places, or null when the shop has not priced it), certification (null when the departure asks nothing, otherwise minimum_level, required_specialties and requires_nitrox), seats_open, booking_url. - certification.minimum_level is one of open_water, advanced_open_water, rescue (lowest to highest) or null; required_specialties are codes from deep, wreck, night, drysuit; requires_nitrox is a boolean. These are what the diver will be asked to show before boarding, not a suggestion. - Only departures a visitor could book right now appear: a full boat, a private charter and a departure on a conditions hold are left out. Fields you do not recognise are safe to ignore. - window.from and window.to bound the document; generated_at is when it was written. Seats change as people book, so treat seats_open as a snapshot and let the booking page have the last word. ## Shops listed for search - None listed yet. ## About DiveDay - [Product](https://dive.day/product) - [Pricing](https://dive.day/pricing) - [Sitemap](https://dive.day/sitemap.xml)