Support Center

We're here to help you make the most of ScheduleMyClasses

Video Tutorials

Watch walkthroughs of every feature — from first setup to publishing schedules and sending tuition.

Watch Playlist
Getting Started

New here? The guided Getting Started steps walk you to your first schedule — build it step by step, or import the schedule you already teach.

Learn More
Smart Scheduling

Explore AI optimization, scheduling setup, student management, and creating & publishing your schedules.

Learn More
Tuition & Billing

Learn how tuition is auto-calculated, how to send statements to parents, and how to track payments.

Learn More

Frequently Asked Questions

Getting Started

The first time you sign in, Getting Started asks you one question: do you already teach a regular weekly schedule? Your answer picks the shorter route for you.

  • Yes, I already teach one: Set your teaching hours, then import your calendar — two steps. See "I already teach a weekly schedule — how do I bring it in?" below.
  • No, I'm starting fresh: The checklist walks you through your students, classes, and availability, then builds your schedule. See "I'm starting from scratch — what are the steps?" below.

You can switch between the two routes at any time using the link at the bottom of the step list.

Good to Know
  • You can stop any time: Progress saves automatically, and the checklist always reflects what you've actually done — even if you finish a step from somewhere else in the app
  • Easy to find: It's on its own page, in a banner at the top of the app, and on your dashboard
  • Optional steps stay out of the way: Optional items such as breaks and schedule preferences are listed separately — they refine your results but never hold you up
  • It retires itself: Hide the reminders any time with "Don't show again" (and bring them back with Resume Reminders). Once your first schedule exists, the reminders retire for good.
You don't have to re-type it. Bring it in from your calendar instead: go to Schedule Management → Import Schedule, or choose the import route in Getting Started.
Step 1 — Export One Typical Week

Export your class events as an .ics file. You only need your teaching events, and it's fine if a few extra events come along — you can remove them in the preview before importing.

  • Google Calendar: Gear icon → SettingsImport & exportExport, then unzip and upload the calendar containing your classes. Google can't export selected events, so if your classes are mixed into a busy calendar, duplicate one typical week onto a temporary calendar first and export that.
  • Apple Calendar: Go to one typical teaching week, click your first class, then ⌘-click each additional class, and drag the selection onto your Desktop to create a single .ics file.
  • Outlook (desktop): File → Save Calendar → More Options, set Date Range to one typical teaching week and Detail to Full details.

Getting Started has the full step-by-step version of these instructions for each calendar app.

Step 2 — Review the Preview
  • Upload one or more files: Name your schedule, select your .ics file(s), and click Parse & Preview
  • AI reads your events: Student name, class name, and price are extracted from each event's title and description automatically
  • Review before saving: Correct student and class names, adjust the times, fill in prices your calendar didn't include, and delete rows for events that aren't classes
Step 3 — Import

Click Import Schedule and your schedule is saved and ready to use — along with the student, class, and location records built from what you imported, so you can move straight on to tuition and billing.

Tip: Importing doesn't lock you in. Once your schedule is in, you can collect your students' availability and run the optimizer to see whether a better arrangement of the same lessons is possible — see "How do I collect student availability via email?" in the Smart Scheduling section below.

Getting Started walks you through these steps in order and tracks your progress automatically — it's the easiest way to work through the list below. If you'd rather navigate yourself, here are the same steps:

  1. Set up your profile: Go to Profile Settings → Weekly Availability to set your weekly availability windows
  2. Add locations: If you teach at multiple locations, add them in Profile Settings → Teaching Locations
  3. (Optional) Set breaks and preferences: If you want to consider breaks, specify them in Profile Settings → Break Requests and corresponding time range in Profile Settings → Break Preferences
  4. (Optional) Set schedule preferences: Specify schedule style preferences in Profile Settings → Schedule Preferences
  5. Add students: Navigate to Student Management and add your students with their contact information
  6. Set student availability: Go to Student Management → Student Availability to set each student's available time slots
  7. Create class requests: Define the classes you want to schedule in Student Management → Class Requests
  8. Generate schedule: Go to Schedule Management → Create Schedule and run the optimization engine

It depends on what you want to do. Here's what each route needs:

To import a schedule you already teach:

  • Your calendar, exported as an .ics file: That's it — student, class, and location details are built from the events you import

To generate an AI-optimized schedule:

  • Your availability: Days and time ranges when you can teach
  • Student information: Names and contact details
  • Student availability: Each student's available time slots (you don't have to gather these yourself — ScheduleMyClasses can email every student a secure link to fill in their own, and shows you who has responded. See "How do I collect student availability via email?" in the Smart Scheduling section below.)
  • Class requirements: Types of classes, duration, and preferred frequency
  • Teaching locations: Where you conduct lessons (required only if you selected multi-location during signup)

To build a schedule by hand (fewer inputs needed):

  • Student information: Names and contact details
  • Teaching locations: Required only if you selected multi-location during signup

For how-to steps, see "Can I create a schedule manually without running the optimizer?" in the Smart Scheduling section below.

To use Tuition & Billing features:

  • A schedule with an effective date: Imported, AI-optimized, or built by hand (see above). The effective date can be set in Schedule Management → Manage Schedules.
  • Your days off (recommended): So tuition calculations automatically exclude days you didn't teach

For details on the tuition workflow and days off, see "How does automatic monthly tuition calculation work?" and "How do I manage time off and days off?" in the Tuition & Billing section below.

Smart Scheduling

How It Works
Our AI scheduling engine uses the same advanced optimization technology that Fortune 500 companies rely on for their most complex business decisions:
Enterprise-Grade Intelligence:
  • Explores every possible combination: The system evaluates millions of potential schedules to find the absolute best solution for your situation
  • Two powerful algorithms: Uses both Mixed Integer Programming (used by airlines and hospitals) and Google's Constraint Programming technology
  • Smart algorithm selection: Automatically chooses the most powerful approach for your specific scheduling complexity
  • Guaranteed optimal solution: Unlike manual scheduling or simple tools, this finds the mathematically perfect answer every time
What this means for you:
  • Maximum income potential: Higher-priced classes are prioritized when time slots are limited
  • Perfect puzzle solving: Fits all your classes, breaks, and travel time together like pieces of a complex puzzle
  • Everyone's needs considered: Balances your preferences with student availability and scheduling constraints
  • No human error: The computer never forgets a constraint or misses a better combination
  • Lightning fast: Completes in minutes what would take you hours or days to figure out manually

The result: You get the single best possible schedule from all millions of potential arrangements - the same level of optimization that major corporations pay thousands for, designed specifically for independent teachers.

ScheduleMyClasses is specifically designed to boost your teaching income through intelligent optimization:
Income Maximization Strategies:
  • Prioritizes higher-paying classes: When you have more requests than available time, the system automatically schedules your most profitable classes first
  • Eliminates scheduling gaps: Packs classes efficiently to reduce wasted time between lessons
  • Considers your capacity: Ensures you're teaching during your most productive hours while respecting break needs
Real Income Impact:
  • Better time utilization: Instead of random scheduling, every hour is optimized for maximum earning potential
  • Strategic pricing flexibility: Adjust class prices anytime to influence which lessons get priority
  • Retain high-value students: Ensure your best-paying students always get scheduled, improving retention
The optimizer automatically balances multiple preferences to create schedules that work well for both you and your students:
Optional Preference Settings:
  • Schedule pattern preferences: Optionally choose whether you prefer classes clustered together or spread throughout the day
  • Teacher's preferred availability: Optionally set your preferred teaching hours within your available time windows
  • Teacher's break preferences: Add must-scheduled breaks (always included) or optional breaks (scheduled if time allows)
  • Teacher's break time preferences: Optionally specify preferred time slots within your break time ranges
  • Student's preferred time: Add student preferred time slots if students have time preferences beyond their availability
How the System Prioritizes Preferences:

The algorithm tries to satisfy preferences when they don't hurt your income, following this priority order:

  1. Teacher's availability preference: Schedule during your preferred teaching hours first
  2. Schedule style preference: Apply your clustering/spreading preference
  3. Optional breaks: Schedule optional breaks when time slots are available
  4. Must-scheduled breaks at preferred time: Place required breaks at your preferred times
  5. Student's preferred time: Accommodate student time preferences when possible
  6. Optional breaks at preferred time: Schedule optional breaks at preferred times last

Note: All preferences are balanced to maximize your income while maintaining schedule quality and satisfaction for everyone.

ScheduleMyClasses is designed to protect your time and energy — not just maximize your class count. Several settings work together to help you build a schedule that's both productive and sustainable.

Daily Hour Cap (Hard Constraint)

In Profile Settings → Schedule Preferences, set "What's the maximum hours you'll teach per day?" The optimizer treats this as a hard limit — it will never schedule more teaching time than this, regardless of student demand. Use this to protect your energy and avoid burnout.

Preferred Teaching Hours (Soft Constraint)

In Profile Settings → Availability, you can mark certain time windows as preferred. The optimizer will try to schedule classes within these windows first, as long as doing so does not reduce your total teaching income. This lets you protect mornings, evenings, or any block of time that matters to you.

Schedule Style

In Profile Settings → Schedule Preferences, choose "Which schedule style do you prefer?":

  • Clustered: Groups classes together, leaving large uninterrupted blocks of free time on other days — good for teachers who want big blocks of time off.
  • Spreaded: Distributes classes more evenly across available days — good for teachers who prefer a lighter, consistent daily load.
  • No Preference: The optimizer focuses purely on income and constraints without applying a style preference.
Break Scheduling

You can also protect meal times with Break Requests and Break Preferences. See "How does break scheduling work?" below for full details.

ScheduleMyClasses gives you smart, flexible control over your breaks — protecting time for lunch or dinner without sacrificing your teaching income. Breaks are managed through two settings: Break Requests (what to schedule and how strictly) and Break Preferences (when the break can or should be placed).

Step 1 — Break Requests: Must Schedule or Optional?
  • Must Schedule = Yes: The break is always placed in your schedule, even if doing so reduces your teaching income. Use this for breaks you cannot skip.
  • Must Schedule = No: The break is only placed if it does not reduce your teaching income. If no income-safe slot exists, the break is skipped.
Step 2 — Break Preferences: Allowed Window and Preferred Time

Every break needs a defined time range to work within. Configure this in Profile Settings → Break Preferences.

  • Allowed Window (required): The time range within which the break can be placed. The scheduler will never place a break outside this window. A default window is created automatically when you add a break request (Lunch: 12:00–2:00 PM, Dinner: 6:00–8:00 PM). You can edit or replace it anytime in Profile Settings → Break Preferences.
  • Preferred Time (optional): A narrower window within the allowed window that the scheduler tries to use first. It prioritizes this time as long as it does not reduce income — even for must-schedule breaks (if no preferred-time slot is available, the break is still placed anywhere within the allowed window).
Other Notes
  • Supported break types: We currently support Lunch and Dinner breaks, with smart defaults for each. Need a different break type? Let us know — we're tracking demand and plan to expand support based on user feedback.
  • No travel time needed: Breaks do not require additional travel buffer time.
  • Flexible duration: Set custom break lengths in 15-minute increments.
Yes. Model the siblings as a single group class whose duration covers both lessons, and the scheduler treats it as one continuous block.
How to Set It Up:
  • Combine the durations: Two siblings who each need 30 minutes become one 60-minute group class containing both students
  • Create it as a group request: In Student Management → Class Requests, add a class with type Group and select both siblings
  • Price it per student: Enter what each student pays, not the block total — two siblings at $30 each means $30. Every student in the class is billed that rate.
  • Teach it however you like: The scheduler reserves the whole block — you decide whether to teach them back-to-back within it or together
Why This Works:
  • One drop-off, one pick-up: The block is scheduled as a single slot, so the family makes one trip
  • Never split apart: Because it's one class, the optimizer can't schedule the siblings on different days or at opposite ends of the day
  • Both must be free: The block is only scheduled when both siblings are available for the entire window — so keep their availability windows wide enough to fit the combined duration
Yes. A semi-private lesson is simply a small group class, and students in one can still have their own individual lessons.
How to Set It Up:
  • The shared lesson: Create a class request with type Group and select the students who share it — two siblings, or any pair who learn well together
  • The private lessons: Create a separate Individual class request for each student as usual
  • Price them separately: Each request carries its own price, so the semi-private rate and the private rate are tracked independently
One Thing to Plan For:

Each student can have only one class per day, whether individual or group. So a student's semi-private class and their private lesson will be scheduled on different days — for example, a shared class on Wednesday and private lessons on Monday. If you need both on the same day, add them by hand in Schedule Management → Edit Schedule after generating.

Group classes allow you to teach multiple students together, but they have special scheduling requirements:
Group Class Requirements:
  • All students must be available: Group classes only get scheduled when ALL students in the group are available at the same time
  • Single daily limit per student: Each student can only have one class per day (whether individual or group)
  • Group size flexibility: You can create groups of any size, but larger groups are harder to schedule due to availability conflicts
Benefits & Tips:
  • Higher income per hour: Teaching multiple students at once increases your hourly rate
  • Efficient use of time: One time slot serves multiple students
  • Keep groups small: 2-3 students per group typically schedule more easily than larger groups
  • Flexible individual students: Students with more flexible schedules are easier to group together
Yes! ScheduleMyClasses has robust multi-location support, but it needs to be enabled during your initial account setup:
Initial Setup Required:
  • Choose during signup: Multi-location support must be selected when you first create your account
  • Cannot switch later: This setting affects the underlying optimization algorithms and cannot be changed after account creation
  • Need to switch? Contact our support team at support@schedulemyclasses.com - we can help migrate your data to a multi-location account
Multi-Location Features:
  • Add multiple venues: Define all your teaching locations in Profile Settings → Teaching Locations
  • Set travel times: Specify travel duration between each location pair
  • Smart scheduling: The AI automatically considers travel time when scheduling consecutive classes

Note: If you're unsure whether you have multi-location enabled, check your Profile Settings page. If you don't see a Teaching Locations card, you'll need to contact support to upgrade.

Student Management
The Batch Import feature lets you add up to 100 students at a time by pasting data from a spreadsheet.
Steps:
  1. Paste your data: Copy student names (and optionally emails, phone numbers, dates of birth) from your spreadsheet and paste them into the corresponding text fields
  2. Preview and validate: The system parses your data, auto-detects name format, and shows a preview table with inline editing
  3. Check for duplicates: Duplicate names are automatically flagged — both within the batch and against your existing student list
  4. Save: Confirm and save to create all student records at once
Details:
  • Only names are required: Email, phone, and date of birth are optional — you can add them later
  • Flexible name format: Supports both "First Last" and "Last, First" formats
  • Edit before saving: Correct any parsing errors directly in the preview table
  • Up to 100 per batch: For larger student lists, run multiple imports
Instead of manually entering each student's availability, you can email students a secure link where they submit their own available time slots.
How It Works:
  1. Customize your template: Edit the email subject and body using placeholders like {{ student_name }}
  2. Choose recipients: Send to all students, or only students who haven't submitted availability yet
  3. Students receive a secure link: Each student gets a unique, personalized link — no login or account needed
  4. Students submit availability: They fill in their available days and time slots through a simple, focused form
  5. Track submissions: Monitor who has submitted via status indicators (Ready / Sent / Accessed)
Important Details:
  • Links expire after 30 days: For security, each link is valid for 30 days from the date sent
  • No student account needed: Students access the form through their secure link without creating a login
  • Only active students with email: The system only sends to active students who have an email address on file
  • Resend anytime: You can resend emails to students who haven't responded yet
Creating & Editing
You can modify your schedule in Schedule Management → Edit Schedule in several ways:
  • Drag and drop: Click and drag classes to different time slots in the calendar view, or between unscheduled requests and calendar
  • Edit individual events: Double-click any class to modify its details, duration, or students
  • Delete classes: Remove classes that are no longer needed
  • Add new classes: Manually add classes that weren’t in the original optimization
  • Save changes: Remember to save your schedule with a custom name to preserve edits
Yes! You can build a schedule entirely by hand using the interactive calendar in Schedule Management → Create Schedule.
Minimum Requirements:
  • Active students: At least one active student in your student list
  • Location: At least one teaching location (required only if you selected multi-location during setup)
How It Works:
  • Click to add: Click any open time slot, select a student from the dropdown, enter the required details (such as class rate), and the class will be added instantly.
  • Drag and drop: Move classes between time slots by dragging them
  • Save when ready: Give your schedule a custom name and save it for future reference

Tip: Manual scheduling requires fewer inputs and is a great way to explore the calendar and tuition features, but it does not optimize your schedule. Filling some optional information will further enhance your experience. For example, if you add teacher availability, the calendar will automatically adjust to your working hours. With student availability enabled, the system will also check for conflicts and alert you when a selected time falls outside a student’s available hours.

The optimizer works to schedule as many classes as possible, but some may not fit due to various constraints. Here are the main reasons:
Too Many Requests for Available Time:
  • Lower class prices: Higher-priced classes were scheduled first, using up available time slots
  • Daily teaching hour limit reached: You’ve hit your maximum teaching hours per day (set in Profile Settings → Schedule Preferences)
  • Required breaks take space: Mandatory breaks reduced available time for classes
Impossible to Schedule Due to Conflicts:
  • No overlapping availability: Your availability doesn’t match with student availability
  • Group students conflict: Not all students in a group class share common available times
  • Student already has class: Students can only have one class per day
  • Travel time too short: Not enough time to travel between locations for consecutive classes
Solutions:
  • Expand student availability: Ask students to provide more flexible available time slots
  • Expand teacher availability: Add more available time slots in your weekly schedule
  • Increase daily teaching hours: Raise your maximum teaching hours per day limit in Profile Settings → Schedule Preferences
  • Adjust break requirements: Make some mandatory breaks optional to free up time slots
  • Review group compositions: Consider splitting large groups
Note: You can also manually add the classes as you see fit, which may not satisfy all availability constraints, as the optimizer has already considered every possibility within the given requirements.
If schedule generation is taking longer than expected, the most common cause is overly broad student availability. Here's what to check:
  • Use real student availability: The scheduler evaluates every possible combination of time slots across all students. When students are marked as available for most or all of the week, the number of possible schedules grows dramatically — making it much harder for the optimizer to find the best arrangement. Make sure each student's availability reflects their actual constraints rather than leaving large open windows. Narrower, realistic availability leads to significantly faster results.
  • Still running slow? Contact us at support@schedulemyclasses.com and we'll help diagnose your specific setup.
Managing & Publishing
ScheduleMyClasses supports multiple effective schedules with different effective dates, which is essential when your teaching schedule changes mid-semester.
How Effective Dates Work:
  • Set an effective date: In Schedule Management → Manage Schedules, assign an "effective from" date to a selected schedule — this is when that schedule becomes active, and it remains active until the next schedule's effective date
  • Multiple schedules coexist: For example, "Fall Schedule" effective Sep 1 and "Holiday Schedule" effective Dec 15 can both exist
  • Automatic transitions: The system automatically uses the correct schedule based on the date — no manual switching needed
Why This Matters:
  • Tuition auto-splits: If your schedule changes mid-month, tuition calculations automatically pro-rate using the correct schedule for each portion of the month
  • Historical accuracy: Past schedules are preserved, so tuition for prior months always calculates correctly
  • Easy semester transitions: Create your new semester schedule ahead of time and set the future effective date

Example: If "Schedule A" is effective Aug 10 and "Schedule B" starts Sep 20, September tuition will use Schedule A for Sep 1–19 and Schedule B for Sep 20–30.

The Schedule Management → Publish Schedules page is your hub for distributing schedules. You can export schedules to your personal calendar, email personalized schedule summaries to students, and track delivery status.
Export to Calendar (.ics):
  1. Select a schedule: Choose which schedule to export from the dropdown
  2. Set date range: Enter the "Weekly repeating from" and "to" dates — the exported events will repeat weekly within this range
  3. Include breaks (optional): Check this option if you want break periods included in the export
  4. Export: Click "Export to Calendar" — the system emails you an .ics file you can import into Google Calendar, Outlook, or Apple Calendar
Email Schedules to Students:
  1. Customize your template: Click "Edit Email Template" to personalize the subject and body using placeholders like {{ student_name }}, {{ effective_from }}, and {{ schedule_summary }}
  2. Send individually or in bulk: Click "Send" next to a specific student, or use "Send to All" to email every student with a valid email address
  3. Track delivery: Each student’s status shows as "Ready" (not yet sent) or "Sent" (with timestamp), so you always know who has received their schedule
What Students Receive:
  • Personalized summary: Each student sees only their own classes — day, time, and class name (plus location if applicable)
  • Effective date: The email includes when the schedule takes effect, so students know exactly when to expect changes
  • No login required: Students simply read the email — no account or sign-in needed

Tuition & Billing

ScheduleMyClasses uses a schedule-based flat monthly tuition model — the same approach used by the majority of established independent teachers and music studios.

How it works:
  • Tuition is calculated from the number of scheduled classes in a given month, not actual attendance
  • If you cancel a class (e.g. a personal day off), that class is automatically excluded from the tuition calculation
  • If a student misses a class, the scheduled slot still counts — consistent with standard independent teaching practice
Why this model?

From conversations with many teachers we talked to, the vast majority charge a flat monthly rate regardless of student attendance. It provides predictable income for teachers and clear expectations for families.

Other billing models:

We know some teachers use alternative models like pre-paid class packages or pay-per-attendance billing. These are not currently supported, but we're actively listening to user feedback. If your studio uses a different billing model, let us know — enough demand will move it up our roadmap.

The Tuition Management → Monthly Tuition Detail page automatically calculates each student's monthly tuition based on your published schedule.
Workflow:
  1. Select a month: Choose any month to view tuition calculations
  2. Review draft: The system automatically calculates tuition from your effective schedule — showing each student's classes, frequency, rate, and total
  3. Save: Persist the calculations to the database so they're stored for future reference
  4. Edit if needed: Adjust class counts, rates, or apply discounts for individual students using inline editing
  5. Finalize: Lock the month's tuition to prevent further edits and enable sending tuition statements
Smart Calculation Features:
  • Days off excluded: Full and partial days off are automatically subtracted from class counts
  • Schedule changes handled: If your schedule changed mid-month (different effective dates), tuition automatically pro-rates across both schedules
  • Per-class breakdown: Each class request generates its own line item (class type, count, rate, discount, subtotal)
  • Unfinalize if needed: Made a mistake after finalizing? You can unfinalize to re-open the month for edits
The Calendar Management → Days Off Plan page lets you manage your time off with an interactive calendar interface.
Types of Time Off:
  • Full day off: Mark entire days as unavailable — perfect for vacations, personal days, or holidays (e.g., "Off Sep 1–5")
  • Partial day off: Block specific hours on certain days — ideal for appointments or recurring commitments (e.g., "2:00–4:00 PM on Nov 2–4")
Features:
  • Click to add: Click any date on the calendar to quickly create a day off entry
  • Multi-day ranges: Set start and end dates for extended time off periods
  • US holiday reference: National holidays are displayed as background markers on the calendar for planning context (these are non-editable reference markers)
  • Optional notes: Add a reason or description to each time off entry for your records
  • Tuition impact: Days off are automatically excluded from monthly tuition calculations, so you're never billing for days you didn't teach
Once you've finalized a month's tuition, you can email professional tuition statements to students (or their parents) through Tuition Management → Statement Delivery & Payment.
Steps:
  1. Finalize the month: Tuition must be finalized before statements can be sent
  2. Customize your email: Edit the email template with your preferred subject and message
  3. Send statements: Select students and send — each receives a personalized email with a secure link to view their statement
  4. Track delivery: Monitor email status for each student (Sent / Viewed)
  5. Record payments: Mark tuition as paid directly from the tracking page
What Students See:
  • No login required: Students click a secure link to view their statement — no account needed
  • Clear breakdown: Class type, number of sessions, rate per class, any discounts, and total amount due
  • Payment status: Students can see whether their tuition is marked as paid or unpaid
  • Links expire after 30 days: For security, statement links are valid for 30 days
Contact Us

Still have questions? We're here to help you optimize your teaching schedule.


Two Ways to Start
Already teaching a weekly schedule?
Set your availability windows
Import your calendar as an .ics file
Starting from scratch?
Set your availability windows
Add student information and availability
Create class requests with prices
Run your first optimization
Save and review your schedule