Ассистент расписания в Телеграме
Бот-ассистент расписания: наговариваешь или пишешь обычными словами, он сам разбирает дату, время и повтор, кладёт событие в общий календарь и напоминает всем участникам.

Контекст
Когда расписание общее на двоих, любая договорённость живёт в переписке и там же тонет. Вносить каждую встречу в календарь руками мало кто готов: пока откроешь приложение, выберешь дату, впишешь название — проще написать сообщение и понадеяться, что вспомнишь. В итоге половина дел нигде не записана, а вторая записана только у одного из двоих.

Решение
Боту пишут или наговаривают обычными словами: «созвон завтра в 15:30», «обед с Аней сегодня в 14:00 в кафе», «тренировки по вторникам и четвергам в 19:00 до конца мая». Он распознаёт голосовое, разбирает фразу и сразу отвечает подтверждением — что именно он записал и на какое время, чтобы ошибка была видна сразу, а не в день встречи.
Бот различает разовое событие и повтор. Один день — разовая встреча, даже если сказано «на этой неделе». Несколько дней или слово «каждый» — повторяющееся занятие, и оно бывает бессрочным, ограниченным датой («до конца мая») или числом занятий («курс 10 раз по понедельникам»). Событие ложится в общий календарь, поэтому его видят оба участника в своих обычных приложениях.
Расписание можно не только пополнять, но и править словами: «перенеси созвон на 19:00», «переименуй планёрку в стендап», «удали встречу завтра». Если под фразу подходит несколько событий, бот присылает список и просит уточнить, а не удаляет наугад.


Как устроено
- Ввод. Текст и голосовые сообщения, обычные формулировки без команд и шаблонов.
- Разбор. Дата, время, длительность, место и правило повтора вытаскиваются из фразы; по умолчанию встреча длится час.
- Повторы. Бессрочные, до указанной даты или заданное число раз.
- Общий календарь. Событие одно на всех участников, видно в обычном календаре на телефоне.
- Напоминания. Список дел утром и отдельные напоминания за 30 и за 10 минут до каждого события.
- Доступ. Бот отвечает только заранее добавленным участникам, посторонним он просто не отвечает.
Роль и результат
Проект сделан целиком нами — от распознавания речи и разбора фраз до работы с календарём и рассылки напоминаний. Логика, на которой чаще всего ошибаются такие боты, закрыта автоматическими тестами: правила повторов, границы окон напоминаний и выбор нужного события при переносе и удалении. Результат простой: договорённость произносится один раз и дальше живёт в календаре у обоих, а не в переписке.
Расскажите о своём проекте



