Google Календарь (ежедневная сводка)
Руководство пользователя
Подключите один или несколько календарей Google к своему серверу: бот каждый день публикует сводку предстоящих событий и может показывать интерактивную панель, где каждый подписывается на напоминание за день до события в личных сообщениях.
Что это делает
- Публикует ежедневную сводку событий на следующие 30 дней в выбранном вами канале и в выбранное время.
- Показывает интерактивную панель событий: постраничный просмотр, автоматическое обновление и счётчик до следующего обновления.
- Отправляет напоминание за день в личном сообщении участникам, которые подписались на событие через панель.
- Отслеживает несколько календарей одновременно: публичные (читаются без входа в аккаунт) или приватные (читаются через подключённый аккаунт Google).
- Учитывает часовой пояс, который вы задали для сервера.
Что нужно подготовить на стороне Google
Вам не нужно ничего создавать в Google: ни проекта Google Cloud, ни ключа API, ни идентификатора OAuth. Всё это предоставляет TennoCore. В зависимости от типа календаря вам понадобится лишь следующее:
Публичный календарь
- ID календаря. На компьютере откройте calendar.google.com → наведите курсор на календарь в разделе «Мои календари» → меню ⋮ → Настройки и доступ → раздел Интеграция календаря → скопируйте Идентификатор календаря.
- Календарь должен быть сделан публичным: та же страница → Разрешения на доступ → Сделать общедоступным. Без этого бот не сможет его прочитать.
Вместо ID также принимается ссылка Google, содержащая cid=.
Приватный календарь
- Участник (чаще всего вы сами) должен подключить свой аккаунт Google: кнопка Подключить мой аккаунт Google в панели управления или
/agenda connectв Discord. Google покажет код, который нужно ввести на отдельной странице. Запрашиваемое разрешение — только чтение календарей. - После подключения аккаунта выберите его как владельца и выберите календарь из предложенного списка. Публичным такой календарь быть не обязан.
Приватный календарь читается с помощью токена того аккаунта, который дал разрешение. Если этот участник отключит свой аккаунт, привязанные к нему приватные календари перестанут читаться.
Быстрый старт (админ)
- Задайте часовой пояс:
/agenda timezone tz:Europe/Moscow. - Добавьте календарь:
/agenda calendrier ajouter_public calendar_id:<ID>(или сделайте это через панель управления). - Выберите канал и время:
/agenda digest config_responses channel:#календарь hour:9. - Проверьте результат:
/agenda digest tester. - Включите ежедневную отправку:
/agenda digest enable_module.
Команды
Аккаунт Google (для всех)
| Команда | Описание |
|---|---|
/agenda connect | Подключить ваш аккаунт Google (код вводится на странице Google). |
/agenda me | Посмотреть состояние вашего подключения к Google. |
/agenda disconnect | Отключиться и удалить ваши токены Google. |
/agenda my_events | Ваши 5 ближайших событий, приватным ответом. |
/agenda publish | Опубликовать интерактивную панель событий. |
/agenda digest tester | Немедленно опубликовать тестовую сводку. |
Параметры /agenda publish: channel (иначе текущий канал), days (окно от 1 до 60 дней, по умолчанию 30), refresh_every (автообновление от 30 до 3600 секунд, по умолчанию 300).
Отслеживаемые календари
| Команда | Описание |
|---|---|
/agenda calendrier lister | Показать календари, отслеживаемые этим сервером. |
/agenda calendrier ajouter_public | Добавить публичный календарь (ID или ссылка с cid=), с необязательной подписью. (Администратор) |
/agenda calendrier ajouter_prive | Добавить приватный календарь, используя аккаунт Google подключённого участника. (Администратор) |
/agenda calendrier retirer | Убрать отслеживаемый календарь (ID подставляется автоматически). (Администратор) |
Ежедневная сводка
| Команда | Описание |
|---|---|
/agenda digest config_responses | Выбрать канал и местное время отправки (0–23). (Администратор) |
/agenda digest enable_module | Включить ежедневную отправку. (Администратор) |
/agenda digest desactiver | Отключить ежедневную отправку. (Администратор) |
/agenda timezone | Задать часовой пояс сервера в формате IANA. (Администратор) |
Настройки в панели управления
Панель управления → категория Инструменты и персонал → Планирование Google Calendar.
- Настройка сводки: канал публикации, время отправки (0–23), часовой пояс (Europe/Paris, UTC, America/New_York) и переключатель включения.
- Приватные календари: список подключённых аккаунтов Google (с их адресами электронной почты), кнопка для подключения ещё одного и кнопка для отключения.
- Календари: список отслеживаемых календарей со значком, обозначающим публичный или приватный, с ID и аккаунтом-владельцем. Добавление через окно, где вы сначала выбираете тип:
- Публичный: вы вставляете ID (раскрывающаяся подсказка объясняет, где его найти).
- Приватный: вы выбираете подключённый аккаунт, а затем календарь из списка этого аккаунта.
- В обоих случаях можно задать отображаемое название.
- Предпросмотр событий (30 дней): 10 ближайших событий, сгруппированных по дням, со ссылкой на Google Calendar.
- Проверить сводку: немедленно публикует сводку в настроенном канале.
Количество отслеживаемых календарей ограничено: 3 для сервера без премиума (значение по умолчанию, может быть изменено командой TennoCore).
Полезно знать
- Сводка проверяется каждые 5 минут и публикуется только один раз в день, в течение выбранного вами часа. Если бот недоступен весь этот час, сводка за день просто пропускается — позже она не будет отправлена.
- Сводка всегда охватывает 30 дней и показывает 25 событий на странице.
- Без настроенного календаря
/agenda publishотказывается публиковать и предлагает сначала добавить календарь. - Панель событий временная: её кнопки перестают отвечать через четверть часа без взаимодействия, и автообновление прекращается вместе с ними. Для постоянного отображения используйте ежедневную сводку, а не панель.
- Кнопки Обновить сейчас, Напомнить за день и Больше не напоминать доступны только участнику, запустившему команду: остальные получат отказ. Поэтому каждому нужно опубликовать свою панель, чтобы подписаться, либо воспользоваться панелью сводки.
- Напоминания за день приходят в личных сообщениях: участник, закрывший личные сообщения, их не получит. Они проверяются каждую минуту.
- Часовой пояс управляет и временем отправки, и отображением дат. Панель управления предлагает только три пояса;
/agenda timezoneпринимает любое название IANA (Europe/Brussels,America/Sao_Pauloи так далее). - Боту нужны права Отправлять сообщения и Встраивать ссылки в канале сводки.
/agenda disconnectудаляет ваши токены Google на стороне TennoCore. Публичные календари сервера продолжат работать, а приватные, зависевшие от вашего аккаунта, — нет.