Бот напоминаний на Google Таблицах - события из таблицы прямо в Telegram

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