Booking App Starter · Industry version
Recurring weekly lessons, parents booking for kids, and term packages that track sessions — tutoring scheduling in code you own.
Tutoring doesn't book like a haircut. The customer is a parent, the attendee is a student, the booking is 'Tuesdays at four until June', and a missed week turns into a makeup lesson someone has to track. This starter models that structure and gives you the code that runs it.
01 · The problem
Tutoring's core product is a recurring commitment, not a one-off slot. 'Every Tuesday at four for the term' is one agreement that generates twenty bookings — and when the family moves to Wednesdays, all future lessons should move as one. Slot-by-slot tools make families rebook weekly and make a simple day change into twenty manual edits.
The person booking is not the person attending. A parent books for one child, then another, sees both schedules on one account, and receives the reminders — while the tutor needs the student's subject, level, and progress notes, not the parent's. Collapsing parent and student into one 'customer' loses the relationship that every conversation, invoice, and report card hangs off.
Then there's the bookkeeping families actually argue about: the ten-lesson package, the lesson missed for a school concert, the makeup owed from March. Without session counting and an explicit makeup balance, tutors track credits in a notebook — and every discrepancy costs either goodwill or money.
02 · Data model
Everything in the base Booking starter —
servicesprovidersavailability_slotsbookingscustomersreminders— plus the entities this industry actually runs on:
| table | what it holds |
|---|---|
students | The learners — subject, level, school year, and notes — linked to the parent or guardian who books and pays for them. |
recurring_slots | The standing commitment — student, tutor, weekday, time, and term — that generates each week's lesson and moves as one when life changes. |
lesson_packages | Prepaid bundles with a session count — each attended lesson draws one down, and the running balance shows on both sides. |
03 · Screens
A parent books for a specific child, sees all their children's lessons in one place, and gets the reminders. Tutors see students with subject, level, and history — two views of one booking, each showing the half that matters to its reader.
Standing slots project forward through the term, and one change moves the series — this Tuesday only, or every Tuesday from now on, distinguished explicitly. Term breaks pause the series without deleting it, because September always comes.
Every attended lesson decrements the package; every excused absence books a makeup credit under your cancellation rules. Both balances are visible to the parent, which ends the ledger disputes before they start.
04 · In practice
A parent inquires for a Year 9 student needing maths help. A trial lesson books like any slot; after it goes well, the tutor converts it to a recurring Tuesday slot through the term. Twenty lessons appear, reminders scheduled, package attached.
A parent cancels Thursday within your notice window. The lesson is marked excused, a makeup credit lands on the student's balance, and the parent books it into a free slot next week from the same page. Nothing owed is remembered by a human.
Two weeks before term ends, tutors confirm which slots continue. Continuing families keep their times automatically; freed slots open to the waitlist. The new term starts with the calendar full instead of with two hundred renegotiation texts.
Yes — students are separate records linked to the paying parent. Each child has their own lessons, packages, and makeup balance, while the parent sees everything in one place and gets the reminders.
A recurring slot generates the term's lessons from one commitment. Changes distinguish this-week-only from the whole series, and term breaks pause without deleting. The family books once per term, not once per week.
Both are first-class: packages count down as lessons are attended, and excused cancellations create makeup credits under rules you set. Parents see their balances, which is most of what keeps those conversations short.
Yes — lessons store in absolute time and display in each viewer's zone, and a meeting-link field per lesson slots into your video tool of choice. For tutoring businesses that also sell courses, the LMS starter pairs naturally with this one.
Dual7 App Starters
Recurring weekly lessons, parents booking for kids, and term packages that track sessions — tutoring scheduling in code you own. Describe your version to start — the output is a project you own.