Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Minerva’s primary functionality is to remind users of upcoming meetings and events through its integration with the Waterloo Rocketry Google Calendar. The Slackbot utilizes the Google Calendar event’s description to store metadata about the meeting which allows for a high level of configuration on how it manages these events.

Presently, Minerva sends two reminders for all meetings: one six hours and another five minutes before meeting start. These reminders can optionally include a list of agenda items to provide an overview of the event. In addition, the six-hour reminder automatically includes message reactions that can be used gauge event turnout. This can be seen below:

The five-minute reminder can include event location info and links for online meetings:

The alerts for the event reminders can be configured in a variety of ways, including their intrusiveness (e.g. an @channel versus a DM being sent) and the channels for which their members should be notified.

Creating Calendar Events for use With Minerva

Important: Do not attempt to modify the descriptions of Google Calendar events that have been initialized for use with Minerva unless you know what you are doing.

Initializing a Google Calendar event for use with Minerva requires the event’s description to be populated with the necessary JSON metadata. Since JSON is annoying to type up and a single missed quote can result in disaster, Minerva provides a command to go through the initialization process through a modal in Slack.

1. Create an event on Google Calendar

If it has not already been done, start off by creating an event that you would like to get notifications from Minerva for on the Waterloo Rocketry Google Calendar. If this is a reoccurring meeting, it is recommended that you create a single meeting, initialize it through Minerva, and then modify it to be reoccurring so the meeting metadata is duplicated between calendar events.

2. Invite Minerva to the channels that you would like it to notify in

In order for Minerva to be able to send reminder to a channel, it must be added to that channel. This can most easily be done by mentioning Minerva in the channel (i.e. sending a message to the channel with @minerva in it) and then selecting the option to invite it to the channel when prompted.

3. Initialize the calendar event using the /initialize command

To initialize a Google Calendar event for use with Minerva, execute the /initialize command from any text channel that Minerva is in. You will then receive a message notifying you that initialization messages, messages that contain a button which you can click to initialize and configure the meeting, have been sent:

These initialization messages can be found in the #minerva-log channel, and look something like what’s shown below:

Note that an initialization message for an event will only be posted if it is one of the next 10 events and the event’s start date is the next calendar day. Once these messages are posted, you can click on the “Initialize” button for the event you want to configure and a modal will pop up to display your configuration options:

Meeting Location: The location of the meeting that will be displayed in the reminder. Defaults to “E5 2001”

Meeting URL: The URL for the meeting, e.g. if it is a video call, that will be displayed in the reminder. Defaults to Waterloo Rocketry’s “bay_area” Jitsi room

Main Channel: The channel that the meeting reminder will be posted in.

Additional Channels: Channels other than the main channels that users that are part of should be notified of the meeting.

Agenda Items: Agenda items for the meeting that will be displayed in the reminder.

Notes: A short note for the meeting that will be displayed in the reminder.

Alert Type: Select how the meeting reminder will alert users:

  • Alert single channel: This will post the meeting reminder to the main channel with an @channel prepended to it and direct message all single-channel guests that are in the specified additional channels. This is the default option.

  • Alert: This will repost the message to all the selected channels with an @channel prepended so that all users in the channels are notified. The most disruptive option as it pings all users in the selected channels, pinging them multiple times if they are in more than one of them. Use with care.

  • Copy: This will post the reminder to all the selected channels.

Once you have configured the meeting as needed, you can click on the “Submit” button to save your changes and initialize the calendar event. You can confirm this by checking the description of the event in Google Calendar, which should look like this:

If this is a reoccurring meeting and you have opted to initially create a single event to initialize with, you can now edit the calendar event and configure it to repeat.

Editing Events After Creation

If you would like to edit a meeting’s details after it has been initialized, you can do so by using the /meeting edit command.

To edit a meeting, ensure that it is the next upcoming meeting for the channel it has configured as the Main Channel and execute the /meeting edit command in that main channel. The Meeting Editor modal will then pop up. This is the same modal that appears when the /initialize command is executed, and thus the instructions from that section can be applied here.

Note that the /meeting edit command can only edit the next meeting for the channel it has configured as the Main Channel. To edit meetings that are further in the future, you can delete the meeting’s description from the Google Calendar event and reinitialize it, or attempt to change the meeting description text manually.

Troubleshooting

[note that the #minerva-logs channel exists]

Minerva is no longer notifying me of an upcoming event

[remove the event description and reinitialize it]

The /initialize or /meeting edit commands aren’t working

  • Manually edit the contents of the calendar event description

  • No labels