Задача
Частный заказчик вёл рабочий график в Google Таблице и просил напоминания из неё в Telegram.
В таблице лежали даты - продления, оплаты, отчёты, звонки. Всё это держалось в голове.
Календарь он пробовал, но данные всё равно жили в таблице, а дублировать одно и то же в двух местах бросил через неделю.
Одна пропущенная дата стоила денег - слетело продление и сервис отключили в неудачный момент.
Условие поставил такое: таблицу не переделываем, колонки остаются как есть, бот подстраивается под то, что уже ведётся.
Что сделал
Сделал бота на Python и aiogram 3, к таблице подключился через Google Sheets API по сервисному аккаунту - заказчик выдал доступ на его почту.
Колонки не переименовывались, бот читает шапку и сам находит, где дата, где название события, где ответственный.
Опрос таблицы по расписанию через APScheduler, раз в час. Поправил строку - через час бот уже знает новое.
Напоминания за N дней и в день события, N задаётся отдельной колонкой в самой таблице, то-есть у каждой строки свой срок.
В сообщении кнопка сделано. Нажатие проставляет дату и отметку обратно в ту же строку, напоминание больше не приходит.
Результат
График остался в таблице, а держать даты в голове больше не нужно - бот приходит сам и приносит то, что на сегодня.
Периодичность и сроки заказчик правит прямо в ячейках, без обращений ко мне.
Продления и оплаты перестали проскакивать, за первые месяцы ни одной пропущенной даты.