Skip to main content

Google Calendar (Daily digest)

Description

User Guide

Connect one or more Google calendars to your server: the bot posts a summary of upcoming events every day, and can display an interactive panel where anyone can subscribe to a day-before reminder sent by direct message.

What it does​

  • Posts a daily digest of the events of the next 30 days, in the channel and at the time of your choice.
  • Displays an interactive event panel: pagination, automatic refresh and a countdown to the next update.
  • Sends a day-before reminder by direct message to members who subscribe to an event from the panel.
  • Tracks several calendars at once: public ones (read without signing in) or private ones (read through a connected Google account).
  • Honours the time zone you set for the server.

What you need to provide on the Google side​

You have nothing to create at Google: no Google Cloud project, no API key, no OAuth credentials. TennoCore provides all of that. Depending on the type of calendar, all you need is:

Public calendar​

  1. The calendar ID. On a computer, open calendar.google.com → hover over the calendar under "My calendars" → ⋮ menu → Settings and sharing → Integrate calendar section → copy the Calendar ID.
  2. The calendar must be made public: same page → Access permissions → Make available to public. Without this, the bot cannot read it.

A Google link containing cid= is also accepted in place of the ID.

Private calendar​

  1. A member (often you) must connect their Google account: the Connect my Google account button in the dashboard, or /agenda connect on Discord. Google displays a code to enter on a dedicated page. The authorisation requested is read-only on calendars.
  2. Once the account is connected, pick it as the owner and select the calendar from the list offered. The calendar then does not need to be public.
note

A private calendar is read using the token of the account that authorised it. If that member disconnects their account, the private calendars attached to it stop being readable.

Quick start (Admin)​

  1. Set the time zone: /agenda timezone tz:Europe/Paris.
  2. Add a calendar: /agenda calendrier ajouter_public calendar_id:<ID> (or go through the dashboard).
  3. Pick the channel and the time: /agenda digest config_responses channel:#agenda hour:9.
  4. Check the result: /agenda digest tester.
  5. Turn on the daily posting: /agenda digest enable_module.

Commands​

Google account (everyone)​

CommandDescription
/agenda connectConnect your Google account (a code to enter on a Google page).
/agenda meSee the status of your Google connection.
/agenda disconnectDisconnect and delete your Google tokens.
/agenda my_eventsYour next 5 events, in a private reply.
/agenda publishPost an interactive event panel.
/agenda digest testerPost a test digest right away.

Parameters of /agenda publish: channel (defaults to the current channel), days (window of 1 to 60 days, 30 by default), refresh_every (automatic refresh from 30 to 3600 seconds, 300 by default).

Tracked calendars​

CommandDescription
/agenda calendrier listerList the calendars tracked by this server.
/agenda calendrier ajouter_publicAdd a public calendar (ID or link containing cid=), with an optional label. (Administrator)
/agenda calendrier ajouter_priveAdd a private calendar using the Google account of a connected member. (Administrator)
/agenda calendrier retirerRemove a tracked calendar (the ID is auto-completed). (Administrator)

Daily digest​

CommandDescription
/agenda digest config_responsesPick the channel and the local posting time (0–23). (Administrator)
/agenda digest enable_moduleTurn on the daily posting. (Administrator)
/agenda digest desactiverTurn off the daily posting. (Administrator)
/agenda timezoneSet the server time zone, in IANA format. (Administrator)

Settings from the dashboard​

Dashboard → Tools & Staff category → Google Calendar Planning.

  • Digest configuration: posting channel, posting time (0–23), time zone (Europe/Paris, UTC, America/New_York) and an on/off switch.
  • Private calendars: list of connected Google accounts (with their email address), a button to connect one more, a button to disconnect one.
  • Calendars: list of tracked calendars, with an icon showing public or private, the ID and the owning account. Adding happens through a dialog where you first pick the type:
    • Public: you paste the ID (a collapsible help panel explains where to find it).
    • Private: you pick the connected account, then the calendar from that account's list.
    • In both cases you can give a display name.
  • Event preview (30d): the next 10 events grouped by day, with a link to Google Calendar.
  • Test the digest: posts a digest immediately in the configured channel.

The number of tracked calendars is capped at 3 for a non-premium server (default value, adjustable by the TennoCore team).

Good to know​

  • The digest is checked every 5 minutes and is posted only once a day, during the hour you chose. If the bot is unavailable for that whole hour, the day's digest is simply skipped — it will not be caught up later.
  • The digest always covers 30 days and shows 25 events per page.
  • With no calendar configured, /agenda publish refuses to post and invites you to add one.
  • The event panel is temporary: its buttons stop responding after fifteen minutes without interaction, and the automatic refresh stops with it. For a permanent display, use the daily digest rather than the panel.
  • The Refresh now, Notify me the day before and Stop notifying me buttons are reserved for the member who ran the command: everyone else gets a refusal. So each person has to post their own panel to subscribe, or use the digest panel.
  • Day-before reminders arrive by direct message: a member who has closed their DMs will not receive them. They are checked every minute.
  • The time zone drives the posting time and the display of dates. The dashboard only offers three zones; /agenda timezone accepts any IANA name (Europe/Brussels, America/Sao_Paulo, …).
  • The bot needs the Send Messages and Embed Links permissions in the digest channel.
  • /agenda disconnect deletes your Google tokens on the TennoCore side. The server's public calendars keep working, the private calendars that relied on your account do not.