Create courses, manage schedules, and handle student enrollments.
Navigate to Admin → Courses → New Course. Each course has a name, certification level, description, prerequisites, and a base price. Courses can be assigned to levels like Open Water, Advanced, Rescue, First Aid, Technical, and more.
Two optional labels help customers find the right course:
For shops that operate on consultation or deposit (no posted price), check Contact for pricing on the course edit form. The price field clears, the public listing shows “Contact for pricing”, and schedules with no per-session price override get a Contact to book CTA instead of Book Now. You can still set a specific price on individual schedules to enable online booking for that session only.
The course description supports Markdown formatting — use headings, lists, and bold text to structure the information students see on your public course page.
Add a course photo on the edit form to give the course a strong visual identity. It fills the card on your public courses page (with a gradient overlay so the title stays readable) and renders as a hero banner at the top of the course detail page.
A course can have multiple scheduled sessions. Go to Admin → Schedules → New Schedule to create one. Each schedule includes:
When schedule details change (date, location, instructor), enrolled students automatically receive a schedule-updated email showing the before and after values.
After the event's end time, the schedule is automatically marked Completed within an hour. Cancelled events stay cancelled. Instructor pay-out and attendance roll-up are still admin-triggered.
Each event's schedule detail page now includes a Financials section showing revenue (payments minus refunds), per-event expenses with a line-by-line breakdown, instructor pay (projected or paid), and profit. Edit expenses or close out instructor pay via their existing admin pages.
Students enroll through the public course page. When a session reaches capacity, additional students are placed on a waitlist. If a spot opens up, the next waitlisted student receives a notification and has 48 hours to confirm.
Admins can also enroll students directly from Admin → Enrollments → Enroll Student. You can search for existing users or create a new student account inline without leaving the form. When marking a paid enrollment, you can record the payment method (cash or e-Transfer) and an optional reference number — useful for tracking e-Transfer payments alongside the booking. To collect a deposit instead of the full amount, choose Partial / Deposit and enter how much was collected; the invoice stays open with the balance owing, and the row shows the outstanding amount until it's recorded as paid. A free-form Notes field captures any internal details about the enrollment (special arrangements, deposit context, gear sizing, etc.) that should travel with the booking.
Any course, event, or trip schedule can take a fixed deposit instead of full payment. On the schedule editor, set a Deposit Amount and choose whether online checkout offers Full only, Deposit only, or lets the customer pick at checkout. Check Deposit is non-refundable if the shop keeps the deposit on cancellation regardless of the cancellation policy's usual refund tiers — the rest of the payment still follows the standard policy.
Set Balance Due (days before start) to control when the remaining balance is due. Customers who book with a deposit see the outstanding amount and due date on their booking confirmation email and invoice, and can pay it off any time from Account → My Courses. The platform automatically emails a balance-due reminder roughly a week before the due date and a final reminder once the balance is due, so shops don't need to chase deposits by hand.
Instructors don't need to check invoices separately — a participant who still owes a balance is flagged right on the roster email they receive before the event.
Multi-day courses and events generate one record per day. Customers always book the full event, but shop staff can assign a customer to a subset of days from the admin enrollment page. The booking price is recomputed proportionally, and per-day manifests and attendance are available to instructors.
Courses that include an online learning component can be flagged as Requires e-learning code on the course form. When a student signs up for such a course, admins receive an email notification so they can issue the code. Each enrollment shows whether the code has been sent — admins toggle the status from Admin → Enrollments as codes are issued.
By default the notification is sent to all admin users. To route signups to a single inbox instead, set the Notification Email field under Admin → Configuration → Email.
When a course has no upcoming scheduled sessions, students see a “Request this course” option on the course page. This lets you gauge demand and know when to schedule new sessions.
Trips and events can include courses as optional add-ons — for example a PADI AWARE certification attached to a beach cleanup. Open the schedule from Admin → Schedules, scroll to Add-ons, click Add add-on, choose Course, and pick the course from the dropdown; the label, price, and max participants auto-fill.
If the course is something you only offer as an add-on (not a regularly scheduled course), uncheck Show on public courses page on the course edit form. The course stays bookable as an add-on but is hidden from /dive/courses. Add-on-only courses are tagged in the admin courses table so they’re easy to spot.
Add long-form sections (training philosophy, signature programs, FAQ, partner brands) to your public courses page from Admin → Site → Courses Page. Each section has a heading, a markdown body, and an optional side image. Place sections above or below the course grid, drag the handle to reorder them, and toggle Published to hide a section without deleting it.
The platform automatically sends reminder emails 48 hours before a scheduled event. Participants receive an email with the event details and logistics information. If an instructor is assigned, they receive a separate roster email listing all confirmed participants with contact details.
Keep your student-to-instructor ratios within certification-agency limits by configuring guardrails on each course and assigning staff to individual schedules. Available on the Pro plan — Starter shops can still assign a lead instructor and run basic scheduling.
On the course edit form, three optional ratio fields control how the platform counts capacity:
Open the schedule editor and choose a Lead instructor from the existing instructor field. To bring in additional staff, use the Additional staff picker — each person's role is set via a dropdown to Instructor or Assistant / DM; staff assigned the Assistant / DM role add the per-assistant bonus to the allowed student count.
The schedule editor shows a real-time warning as you assign staff and set capacity — reflecting whether the schedule's capacity exceeds what the assigned staff can supervise. By default this is advisory only — admins see the warning but can still save. If confirmed enrollment pushes the ratio over the limit, a warning appears after saving but never blocks you from saving.
To make the guardrail a hard block, go to Configuration → Dive Courses and switch the ratio enforcement mode from Warn to Block. In block mode, saving is blocked only when the schedule's capacity exceeds what its assigned staff can supervise — an over-ratio condition caused by confirmed enrollment is still shown as a warning but never blocks saving. To resolve a blocked save you must either reduce capacity, add more staff, or adjust the course ratio.