Timetables change all the time, and we designed Soniq Studio to expect that. A student goes on a school trip. A parent’s shift pattern moves. You fall ill on a Thursday. Each change should take a moment to make, and none of them should knock over the rest of your week.

To make that possible, Soniq Studio thinks about your lessons in two layers. Once you see the two layers, the way the timetable behaves makes sense.

The plan and the lessons

The first layer is the plan. When you add a student’s lesson and tick Recurring, you describe a pattern: Amy, guitar, Tuesdays at 4pm, every week. You choose how often it repeats with Repeat every, and you can say when it ends with Stop repeating (optional). If you leave the end date empty, the lessons carry on until you change them.

The second layer is the lessons themselves. Each Tuesday on your timetable is a real lesson on a real date. It comes from the plan, but it can also hold things of its own. Once you invoice a lesson, for example, that lesson knows which invoice line it belongs to.

Most of the time, the two layers agree and you never think about them. They matter when something changes.

Changing one lesson leaves the rest alone

When you move or cancel a lesson that repeats, Soniq Studio asks you a question. Choose This event to change only that one lesson. Choose This and future events to change the plan from that date onwards.

Say Amy has a dentist appointment next Tuesday, and you move her lesson to Wednesday. With This event, only next week’s lesson moves. The plan still says Tuesdays, so the week after, Amy is back in her usual time. You do not need to remember to move her back.

Now say Amy’s family tells you she has a new after-school club on Tuesdays from next month. With This and future events, Soniq Studio changes the pattern from that date. Every lesson before it stays exactly where it was. Your past lessons stay as they happened, which keeps your invoices and records correct.

Lessons that happen only once never ask the question. There is only one lesson to change.

Lessons that are already billed keep their history

A lesson that you have invoiced carries more than a date and a time. It is part of what a family has paid for, or will pay for. Soniq Studio protects that link.

When you move a billed lesson, it keeps its connection to the invoice line. When you cancel a billed lesson, Soniq Studio asks What happens to the money? You choose between No adjustment, Owe a makeup lesson and Refund the money. A makeup lesson adds a lesson credit to the family’s account, and you use that credit when you teach the makeup. A refund is available once the family has paid that invoice.

A lesson you have not invoiced yet has no money attached. Soniq Studio removes it without asking about the money. This keeps the common case quick, and the careful questions appear only when they matter. You can see the steps for each change in How to add, move, or cancel a single lesson.

Suggestions stay on their own calendar

The same idea protects you when you generate a timetable for a new term. Soniq Studio places the suggested lessons on their own calendar, next to your real timetable. Your current lessons stay as they are.

You can look through the suggestions, move any lesson that needs adjusting, and try a different arrangement. Nothing reaches your timetable until you choose Copy events to copy them across. If the suggestions are not right, choose Delete calendar and start again. To try it, see How to generate a term timetable.

Why we built it this way

We built the timetable around one rule: a change should affect only what you meant to change. Teachers move lessons every week. If every change risked the rest of the term, you would spend your evenings checking and re-checking.

Keeping the plan and the lessons apart lets us keep that rule. You can say “just this once” or “from now on”, and Soniq Studio knows the difference. Your history stays accurate, your invoices stay correct, and next week looks the way you expect.

For the full list of what each lesson holds, see Lesson and schedule fields.