This walkthrough shows how a club admin creates a new course or camp, configures cohorts and pricing, and publishes it so parents can enrol. Screenshots are taken against a sample club called Demo Club.
Before you begin
- You need the Courses admin role on the tenant (Settings → Team).
- Stripe Connect must be onboarded for paid courses — check Club → Settings → Stripe.
- You can save drafts at any point. Nothing is visible to parents until you click Publish.
Step 1 — Open Courses and start a new course
From the club admin nav, go to Courses. The list shows every course in any status (draft, published, archived). Click New course in the top right.

Step 2 — Pick a template (optional)
Templates pre-fill the name, description, default duration, and common settings. Use them to keep recurring camps consistent week over week.
- Start from blank — full control over every field.
- From a previous course — clone an existing course’s structure (handy for the next summer’s camps).
- From a saved template — pick from the templates your club has saved.
Step 3 — Fill in the core details
- Title — what parents see (e.g. Maynooth Summer Camp 2026).
- Description — supports basic formatting. Keep it focused on what makes this camp specific (location, coach, theme, ages).
- Venue — name + address. Used for parent confirmation emails and calendar invites.
- Age band — set Ages min and Ages max if applicable. The parent enrolment form will enforce this client-side (and the server still validates).
Step 4 — Schedule and cohorts
Courses can run as a single block or as multiple cohorts (different age groups, different time slots, parallel sessions). Configure the schedule shape first, then add cohorts.
- Fixed dates — list specific days (e.g. five consecutive days of a summer camp).
- Recurring — weekly schedule with a start and end date (e.g. a 10-week course).
Each cohort can have its own age range, capacity, price, and default start/end time within the day. Parents pick a cohort from a chip row when they enrol.

Step 5 — Pricing and capacity
- Course-level price — applies to every cohort unless that cohort overrides it.
- Cohort-level price — overrides the course price for that specific cohort (useful when an older-age cohort is more expensive).
- Capacity — total spots per cohort. Once full, the cohort goes into waitlist mode automatically.
- Partner-club discount (optional) — set partner-membership pricing for parents who provide a valid membership number at checkout.
Step 6 — Intake form
For courses requiring participant details (medical info, consent, photo permissions), enable Require participant intake. The intake form is presented after payment confirmation; parents complete it before the first session.
Step 7 — Save and review
Click Save draft. Review every section against your checklist; admins can preview the parent-facing page from the draft view. Drafts are private — only club admins can see them.
Step 8 — Publish
When you’re happy, click Publish at the top right. The course appears in the Open programmes section on the tenant home (and at /courses/[id]) immediately. Parents can start enrolling.

After publishing
- Monitor enrolments — the course’s admin detail page shows the live spots-remaining count per cohort and a participant list.
- Edit while live — most fields can be edited on a published course (description, dates, capacity), but price changes only apply to future enrolments — existing parents keep their original price.
- Cancel a course — moves it to cancelled status, notifies enrolled parents, and triggers refunds via Stripe according to your cancellation policy.
Common questions
Can I run a free course?
Yes — set the price to 0. Parents will see “Confirm free enrolment” instead of a payment button.
How do I let parents pay later instead of at enrolment?
Not currently supported on the public course flow. For invoice-based payment, use the membership or sponsorship flow instead.
What happens to enrolments if I unpublish a course?
Existing enrolments stay valid; the course just disappears from the public site. Use Archive when the course is finished rather than unpublishing mid-season.