For schools

Run your school like a
tech company.

Roster, rates, bookings, equipment, packs, payouts, reports — one app, one source of truth. Built for owner-operators who already know what an off-season looks like.

Free forever on the base plan. No credit card.
~90s
avg time to cover a gap
94%
gap-fill rate
+34%
instructor utilization Δ
0
duplicate bookings, ever
§ 01The schedule

A calendar that
knows your school.

Every lesson, every instructor, every location, every service — in one view. Drag to reassign. Click anyone to see their rates, their week, and the lessons they taught last month.

Filter by everything
Service, instructor, location, customer, day — and combinations.
Conflict-aware
Instructor double-booked? Equipment short? The grid lights up before you do.
Drag to reassign
Pull a lesson onto another instructor. They get notified; the parent does too.
Multi-location aware
Carcavelos / Cascais / Ericeira — one schedule, three locations. Switch with one click.
mylessons.pt/schedule
March 12 – 18, 2026
CarcavelosAll instructorsSurf
Mon12
Tue13
Wed14
Thu15
Fri16
Sat17
Sun18
Surf · Group · 4
Marta S.
Tennis · Solo
João P.
Skate · Group
Beatriz C.
Surf · Group · 6
Marta S.
Music · Piano
André R.
Conflict · 2 lessons
!
Surf · Group · 4
Marta S.
Dance · Solo
Beatriz C.
Surf · Gap
Posting…
Beach event · 12
Team
Padel · Group
Sofia L.
Surf · Group · 4
Marta S.
RosterMarketplaceSoloEventConflictPending fill
§ 02Roster + marketplace

Your roster.
Plus 200+ marketplace instructors.

Post a staffing gap once. The request fans out to your own roster and to every independent marketplace instructor at the same time. First to accept wins. Race-condition-safe. Average fill time: ninety seconds.

Tiered fan-out
Send to roster first; fall back to marketplace after N minutes. Your rules.
Always-trusted list
Pin instructors who can take anything. Mark a few you'll never send to.
Filter the pool
By rating, by language, by sport, by distance. Only match the right humans.
See who filled what
Every accepted gap is logged with who, when, and how long it took to fill.
mylessons.pt/roster
Roster · 12 instructors+ MARKETPLACE 47
MS
Marta SilvaROSTER
4.9·412 LESSONS
92%
JP
João PereiraROSTER
4.8·318 LESSONS
78%
BC
Beatriz CostaMARKETPLACE
5.0·96 LESSONS
84%
AR
André ReisROSTER
4.7·256 LESSONS
61%
SL
Sofia LimaMARKETPLACE
4.9·184 LESSONS
88%
MT
Miguel TorresMARKETPLACE
4.6·72 LESSONS
0%
Marketplace fan-out · 47 instructors match this service
ROSTER FIRST · MARKETPLACE AFTER 90s
mylessons.pt/pricing
Surf · 60 min · GroupLIVE
Base rate
€34/ person / hour
Modifiers
Group · 4−€4Board + suit+€3English class+€2Pickup+€8
Per-instructor overrides
MS
Marta SilvaTOP-RATED
base €3442
JP
João Pereira
base €3434
BC
Beatriz CostaMARKETPLACE
base €3438
Pack · 8 lessons−12%
€240€272
§ 03Pricing engine

Base rates.
Personal overrides.
Packs and camps.

The school sets the base rate per service. Each instructor can override it for their own slots. Sell packs at a discount. Bundle equipment, lunch, and transport into a camp. One pricing engine for all of it.

Pre-paid packs
Sell 8 lessons up front; the system deducts as they're delivered.
Service modifiers
Group size, equipment, language — each modifier adjusts price automatically.
Promo codes & deals
School-wide, per-service, or one-off — with expiry and usage caps.
Seasonal multipliers
Summer surf at +25%, winter at −15%. Set once, apply for the year.
§ 04Payouts

Stripe Connect.
Split rules.
No invoices.

School take, instructor share, marketplace fee — calculated on every lesson, paid out every Friday. No reconciliation work. No cash envelopes. No Revolut requests.

Auto-split per lesson
Set the split per service; the engine handles the math for each booking.
Weekly payouts
Stripe pays out every Friday. Holds before that show in real time.
PDF receipts and invoices
Auto-generated, sent to parents and instructors. CNPD-compliant.
Refunds in 1 tap
Refund a lesson and the split reverses automatically. No spreadsheets.
mylessons.pt/payouts
Payouts · MarchSTRIPE CONNECTED
Split rule · Surf Group
SCHOOL 60%INSTRUCTOR 35%MARKETPLACE 5%

Last payout · Friday, March 14
42 LESSONS
School take
€2 415.20
+12%
Instructors
€1 408.50
+8%
Marketplace
€201.20
+22%
LessonGrossInstructorStatus
Surf · Group · 4 · Mar 14€136€48PAID
Tennis · Solo · Mar 14€48€17PAID
Surf · Group · 6 · Mar 13€204€71PAID
Padel · Group · Mar 12€120€42HELD
mylessons.pt/reports
Reports · Year-to-date EXPORT
Revenue · gross
€124 320
+18% YoY
Lessons
3 184
+12% YoY
Marketplace fills
142
+86% YoY
Revenue · last 12 months
MAMJJASONDJF
Retention · returning students
Q192%
Q288%
Q381%
Q476%
Marketplace · avg fill time
87s−14s WoW
94% GAP-FILL RATE · 8 DECLINES THIS WEEK
§ 05Reports

Know which lessons
actually grow your school.

Revenue trend, retention curves, marketplace fan-out stats, equipment ROI. The numbers school owners actually argue about — exported as PDF for the AGM, exported as CSV for the accountant.

Revenue + utilization
Monthly trend by service, location, and instructor. Drill into any cell.
Retention cohorts
Of last summer's 200 students, how many came back? Why not?
Marketplace KPIs
Avg fill time, decline rate, gap-fill percentage. Spot a slow weekend before it costs you.
PDF + CSV exports
For the AGM, the bookkeeper, and the silent partner who only checks once a quarter.
§ 06Onboarding

From spreadsheets to a real school OS
in 90 minutes.

A guided importer turns your CSVs into services, students, and instructors. White-glove migration available for schools running > 1 000 lessons/month — free of charge.

STEP 01
Drop your CSVs
Students, instructors, services — paste any spreadsheet. We map columns for you.
STEP 02
Auto-create services
We detect "Surf 60m group", "Padel solo", and the rest. Edit before publishing.
STEP 03
Connect Stripe
One Stripe Connect onboard for the school. Instructors connect their own next.
STEP 04
Invite your roster
Magic-link invites for your instructors. They land in the app already on the roster.
STEP 05
Open bookings
Flip the switch. Parents can now book online. You're live.
PS
Pedro Santos
OWNER · SURF SCHOOL CASCAIS
"Last August we covered 47 lessons that would have been cancelled. That's roughly three thousand euros that didn't walk out the door — because some instructor we'd never met took a Saturday morning we couldn't staff."
47lessons saved · August
€3 100revenue retained
3 yrson My Lessons
Built for schools

Stop running on
four spreadsheets.

14-day Pro trial. Free white-glove migration if you're moving from spreadsheets, Calendly, Acuity, Mindbody, or any custom Airtable.