Tutor Booking
Set up and run the Tutor Booking core module, and learn how tutors and students use it.
The Tutor Booking module turns your Mentor LMS site into an online tutoring marketplace. Instructors become tutors with a public profile and weekly availability. Students find a tutor, pick a time in their own time zone, pay with the gateways you already use, meet online, and review the tutor afterwards. You keep a commission, and tutors withdraw their earnings through the Payouts page that Mentor LMS already has.
Tutor Booking is a core module: it ships inside Mentor LMS, so there is nothing to download or upload. Update your site from the Maintenance page as usual (this creates its database tables), then switch it on under Settings → Plugins → Core modules. You can switch it off again at any time; its data is kept. It needs the Billing module to be on.
1. Introduction
| # | Feature | What it does |
|---|---|---|
| 1 | Tutor marketplace | Public directory with search and filters, tutor profiles, subjects, saved tutors |
| 2 | Booking | Live availability, a short hold while the student pays, automatic or manual confirmation |
| 3 | Changes | Cancel with refund rules, tutor reschedule proposals |
| 4 | Online sessions | Meeting room on Jitsi Meet (no account or keys needed), join window, attendance log, reminders |
| 5 | Recordings | Optional recording links, only with the student's agreement |
| 6 | Reviews | Star rating and comment after a completed session, tutor reply, admin moderation |
| 7 | Money | Escrow, commission, refunds as student credit, tutor earnings, payouts, admin refund, books check |
| 8 | Admin tools | Overview, all bookings, finance, reviews, CSV exports |
Three kinds of people use the module:
- Administrators set it up and look after it (sections 2–4 and 8).
- Tutors are instructors with an approved tutor profile (section 5).
- Students book and attend sessions (section 6).
2. Set up (administrator)
Step 1 — Switch the module on
Open Settings → Plugins, find TutorBooking under Core modules and switch it on. A Tutoring group appears in the dashboard sidebar. Administrators see: Overview, All bookings, Tutors, Subjects, Subject requests, Finance, Reviews and Settings. Instructors see My tutor profile, Bookings and Earnings.
Students get a My Tutoring entry in their account menu (top-right avatar), which opens their bookings.
Step 2 — Check your email and payment settings
- Booking emails use your SMTP settings (Settings → SMTP). Without them, people still get in-app notifications but no emails.
- Students pay with the online payment gateways you have enabled under Billing → Payment Gateways. Offline (manual) payment is not offered for tutor sessions.
Step 3 — Add subjects
Open Tutoring → Subjects. Click New category (for example Mathematics), then add subjects inside it (Algebra, Calculus). Tutors choose from these subjects, and students filter by them. Inactive categories and subjects are hidden from students and tutors.
Step 4 — Review the settings
Open Tutoring → Settings (section 3), then approve your first tutors (section 4).
Step 5 — Link to the marketplace (optional)
Add the tutor directory to your public menu: Settings → System → Navbar → Edit Navbar → URL Items → Add Url, with the URL /tutoring/tutors and a title such as Find a Tutor.
3. Settings
Open Tutoring → Settings, change what you need, then click Save settings. Only values you change are stored, so defaults improved in a later Mentor LMS update still reach you.
Booking rules
| Setting | Default | Meaning |
|---|---|---|
| Allowed session lengths | 30, 45, 60, 90 min | The lengths a student can choose |
| Default session length | 60 min | Pre-selected length |
| Slot hold (minutes) | 10 | How long a time is reserved for a student while they pay |
| Minimum notice (minutes) | 60 | The soonest a time can be booked |
| Buffer between sessions (minutes) | 0 | Gap kept free between two sessions of the same tutor |
| Room opens before start (minutes) | 10 | How early the session room can be joined |
| No-show grace period (minutes) | 15 | Reserved for no-show handling |
| Book up to (days ahead) | 60 | How far ahead students can book |
Booking confirmation
| Setting | Default | Meaning |
|---|---|---|
| Booking confirmation | Automatic | Automatic: payment confirms the session. Manual: the tutor must accept it first |
| Tutor response time (hours) | 24 | In manual mode, a request the tutor does not answer in time is declined and the student is refunded |
Tutors and sessions
| Setting | Default | Meaning |
|---|---|---|
| Accept new tutor applications | On | Turn off to stop new applications |
| Session room server | meet.jit.si | Jitsi Meet domain. Use your own server for branding and control |
| Session recordings | On | Lets tutors attach recording links, with student consent |
Money
| Setting | Default | Meaning |
|---|---|---|
| Escrow after completion (days) | 3 | How long money stays in escrow after a session is completed. 0 releases it immediately |
| Platform commission (%) | Site's instructor revenue share | Your fee. Leave empty to use 100 − instructor revenue from your site settings |
| First session free | Off | A new student's first session costs nothing; the tutor is still paid |
| Refund when a student cancels | 24 h → 100%, 12 h → 50%, else 0% | The first row that matches how far ahead the student cancels applies |
Background tasks
Expired holds, finished sessions, reminders and payment releases are handled automatically while people use the site, at most once a minute. You do not need to set up anything on the server. This card shows when the tasks last ran, and Run tasks now runs them immediately.
4. Manage tutors, subjects and reviews (administrator)
Tutors
Open Tutoring → Tutors. Filter by Pending, Approved, Suspended, Rejected or Draft, or search by name or email.
- Preview opens the tutor's profile as students would see it.
- Approve publishes the tutor. The user becomes an instructor, and the tutor is notified.
- Reject asks for a reason, which is sent to the tutor.
- Suspend hides a tutor from students; Reinstate brings them back.
- Feature pins a tutor higher in search results. Verify shows a verified badge.
Every new application also sends the administrator an in-app notification.
Subjects and subject requests
Students who cannot find their subject can submit a request on the Subjects page. Handle requests under Tutoring → Subject requests: write a reply and set the status to Reviewing, Matched (you added or found the subject) or Rejected. If you accept a request, add the subject under Tutoring → Subjects.
Reviews
Tutoring → Reviews lists every review. Use Hide on an inappropriate review: it disappears from the tutor's profile and no longer counts towards their rating. Show again reverses it. The Hidden filter lists hidden reviews.
5. Tutors: become a tutor and manage bookings
Apply
- Log in as a student or instructor and open Tutoring → My tutor profile (instructors) or
/tutoring/profile. - Fill in the six steps. Each step saves as you go.
| Step | What to enter |
|---|---|
| 1. About you | Headline, an "About you" text of at least 50 characters, country, time zone, languages you teach in |
| 2. Teaching | Teaching style, years of experience, "best for", an optional intro video link |
| 3. Subjects & rates | Your hourly rate, an optional trial price, and the subjects you teach |
| 4. Experience | Optional experience and education entries |
| 5. Hours | Weekly hours per day (use Add hours, or copy Monday's hours to Tuesday–Friday), plus days off or extra hours |
| 6. Review | Check the profile strength and click Send for review |
- Wait for approval. While your profile is waiting it is read-only. You receive an in-app notification and an email when it is approved or rejected.
Time zones. Your weekly hours are in your time zone. Students see them converted to theirs, so you never have to calculate.
Trial price. A trial price applies only to the shortest session length and only to a student's first session with you. It never exceeds your normal price.
Handle bookings
Open Tutoring → Bookings:
- Requests waiting for you: in manual mode, Accept a request, or Decline it with a reason (the student is refunded in full). Unanswered requests are declined automatically after the response time.
- Upcoming and Past and cancelled list your other sessions. Click one to open its page.
On a booking's page you can:
- Join session once the room opens (a few minutes before the start).
- Propose new time: pick a new date and time and an optional reason. The student must accept it; until then the original time stays booked.
- Cancel session: the student is refunded in full.
- After the session, reply to the review, and add a recording link if the student agreed to recording.
You also get a reminder 24 hours and 1 hour before each session.
If you do not join a confirmed session, it ends as cancelled and the student is refunded in full. If the student does not come but you did, you are still paid.
Earnings and withdrawals
Tutoring → Earnings shows Released earnings (free to withdraw), Waiting to be released (completed sessions still in escrow, after the platform fee), and a list of recent releases. Click Withdraw to open the standard Payouts page, where released tutoring earnings are added to any course earnings.
6. Students: find a tutor and book
- Open the tutor directory (
/tutoring/tutors). Search, filter by subject, language, hourly rate and rating, and sort the results. Click the heart on a profile to save a tutor; saved tutors are under/tutoring/favourites. - On a profile, choose a session length and subject, pick a day, then a start time. Times are shown in your own time zone, and the list refreshes by itself so a time someone else just took disappears.
- Click Continue. If you are not logged in you are asked to log in or sign up, then brought straight back.
- Review the booking: add notes for the tutor, and check the price and tax. Click Continue to payment.
- The time is held for you (10 minutes by default) while you Pay now with an online gateway. If you have credit from an earlier refund that covers the price and tax, you can click Pay with credit instead. Release this time gives the time back.
- After payment the booking is Confirmed, or Waiting for the tutor if the tutor must accept it first. You are notified by email and in the app.
Your bookings
Open My Tutoring from your account menu. Bookings are grouped as Waiting for payment, Upcoming and Past and cancelled. Open one to:
- Join session from a few minutes before the start until it ends.
- Add to calendar with a downloadable
.icsfile, Google Calendar or Outlook. - Cancel session. The page tells you the refund before you confirm.
- Allow recording: switch this on before the session if you are happy for the tutor to record and share it with you.
- Answer a reschedule proposal from the tutor: accept the new time or keep the original.
- After a completed session, rate and review the tutor.
Refunds and credit
Refunds go back to you as credit, not to your card. Credit appears on your bookings page and can pay for a later session in full (price plus tax). The amount depends on who cancels and when:
| Situation | Refund |
|---|---|
| You cancel with plenty of notice | As set by the site (default: 100% at 24 h or more) |
| You cancel later | A smaller share (default: 50% at 12–24 h, then none) |
| The tutor or an administrator cancels | 100% |
| The tutor does not respond or does not join | 100% |
| You cancel while the tutor has not yet accepted | 100% |
7. How the money works
- Payment. The payment goes into escrow. Tax is set aside separately.
- Completion. When the session is completed and the escrow period has passed, the amount is split: your commission goes to the platform and the rest to the tutor as released earnings.
- Cancellation. The refund share goes to the student as credit. The part not refunded (a late cancellation fee) is released to the tutor and platform straight away.
- Withdrawal. Tutors withdraw released earnings from Billing → Payouts. You pay them with the payout methods you already use there.
- Refund after payout. If a session was already paid out and you must refund it, open Tutoring → Finance and press Refund on the booking. The student receives credit for the full amount and the tutor and commission shares are taken back. A tutor's balance may go negative until later earnings cover it. This can be done once per booking.
Checking the books. Tutoring → Finance shows the total in each account and whether everything balances. The same check is available on the server with php artisan tutoring:reconcile, which reports any booking that does not add up.
8. Reports and day-to-day administration
- Tutoring → Overview shows the last 30 days: sessions started, paid, completed and cancelled after payment, booking volume, platform commission, average rating, and tutor counts. The Health card shows whether the money books balance and when the background tasks last ran. Two links export Bookings (CSV) and Ledger (CSV) for the last 30 days.
- Tutoring → All bookings lists every booking. Filter by status or by student or tutor name, and Cancel a booking if needed (the student is refunded in full).
php artisan tutoring:rebuild-ratingsrecomputes every tutor's rating from their visible reviews, if you ever need to repair them.
9. Troubleshooting
| Problem | What to check |
|---|---|
| No payment methods on the payment page | Enable at least one online gateway under Billing → Payment Gateways. Offline payment is not offered for tutor sessions |
| A student says the time disappeared | Times are held for 10 minutes (or your setting). An unpaid hold is released automatically |
| A tutor does not appear in the directory | Their profile must be Approved, and not suspended |
| No emails are sent | Check Settings → SMTP. In-app notifications work without it |
| The session room does not open | It opens a few minutes before the start (default 10). Check Session room server in Settings if you use your own server |
| Reminders or payments seem late | They run when someone visits the site, at most once a minute, so a site with no visitors at all waits for the next one. Use Tutoring → Settings → Run tasks now to run them immediately |
| Overview says the books do not balance | Run php artisan tutoring:reconcile to list the affected bookings and contact support with the output |
| The tutor menu is missing | The user must be an instructor with an approved tutor profile, and the module must be switched on |
10. Limits of this version
- Students pay with an online gateway; offline (manual) payment is not available for tutor sessions.
- Refunds are given as credit. Refunding to the original card or account is a manual action outside the module.
- Session rooms use Jitsi Meet only. Zoom and custom meeting links are planned.
- Recordings are links (for example YouTube), not uploads.
- There is no student–tutor chat yet.
- Packages, recurring sessions, group classes and coupons are planned for later versions.