Разбираем рабочую модель календаря, в которой перенос или отмена не ломают серию и финансовый учёт.

Почему обычной таблицы быстро становится мало
Пока учеников два или три, строка с именем, днём недели и ценой кажется достаточной. Проблемы начинаются при первом переносе: фактическое время расходится с шаблоном, оплата относится не к той дате, а отменённый урок либо исчезает без следа, либо навсегда загромождает расписание.
Рабочий календарь должен различать правило повторения и отдельное занятие. Тогда можно перенести один урок, завершить серию раньше или изменить будущие занятия, не создавая дубликаты.
- У каждого урока есть ученик, предмет, время, длительность и цена.
- Серия хранит правило, а занятие хранит фактическое состояние.
- Перенос, отмена и удаление означают разные действия.
- Финансовый результат появляется только после решения репетитора.
Как выглядит неделя в UrokDesk
На реальном экране ниже уроки расположены по времени, как в привычном календаре. Цвет и подписи помогают отличить запланированное занятие от проведённого, перенесённого или отменённого. Открывать отдельный журнал для ежедневной работы не нужно.

Пять правил устойчивого расписания
Сначала установите часовой пояс в профиле. Затем создавайте повтор только там, где действительно есть стабильный слот. Для разовых договорённостей лучше отдельный урок. При переносе выбирайте область изменения: один урок или будущую часть серии.
Отмена сохраняет факт договорённости и может иметь списание. Удаление подходит для ошибочно созданной записи и доступно репетитору. Эти действия не стоит объединять одной кнопкой.
- Не начисляйте долг за будущий запланированный урок.
- Фиксируйте стоимость в самом занятии, даже если есть ставка по умолчанию.
- Проверяйте конец повторяющейся серии хотя бы раз в месяц.
- Используйте отмену для истории и удаление для ошибки ввода.
- Связывайте проведённый урок с балансом ученика.
Что получает ученик
Ученик видит те же фактические даты в своём часовом поясе, но не получает управляющих действий репетитора. Он может открыть предстоящий урок и при доступном сценарии отправить запрос на перенос. Это снижает количество уточняющих сообщений и сохраняет решение в истории.
