This Document has been moved over to Google Drive
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 in advance and another five minutes in advancebefore 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:
...
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
…
If this is a reoccurring meeting, edit the calendar event and configure it to repeat. Doing so after initializing the event will ensure that the event metadata will be copied to all following reoccurring meetingsTo 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
Troubleshooting
[note that the #minerva-logs
channel exists] 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
In general, if any unexpected behavior occurs with Minerva, check if there’s any messages posted in #minerva-log
that indicate an error.
Minerva is no longer notifying me of an upcoming event
Minerva no longer detecting an upcoming event usually means that the associated Google Calendar event has broken metadata in its description. The best way to resolve this is to simply delete the description and re-generate the event description by using the /initialize
command.
The /initialize
or /meeting edit
commands aren’t working
If the /initialize
or /meeting edit
commands are not working and a meeting needs to be created/updated before a fix is made to the commands, the Google Calendar event’s description can be created/edited manually. For a quick template for a meeting that notifies members of a single channel, the following can be copy/pasted into the event description:
Code Block |
---|
...
| ||
{
"link": "https://meet.jit.si/bay_area",
"mainChannel": "CHANNEL_NAME_HERE",
"additionalChannels": [],
"agendaItems": [],
"notes": "",
"alertType": "alert-single-channel",
"eventType": "meeting"
} |
Be sure to replace CHANNEL_NAME_HERE
with the name of the channel you want to be notified.
For further editing, the event metadata is in the form of a JSON object so be sure to run any manually edited descriptions through a JSON Validator to ensure that it is in the correct format. In addition, avoid adding any additional whitespace to the description as the parser that Minerva uses to read these descriptions is particularly sensitive to them. Below are the fields that can be within the JSON object:
mainChannel
is the designated channel responsible for this event*eventType
can be: meeting (for a general or subteam meeting), test (for a cold flow, static fire), other, or none (for nothing)*additionalChannels
can be a space separated list of channels (prepended with a#
) or 'default' for the default set of channelsdefault
is currently set as: software, recovery, propulsion, payload, general, electrical, airframe, liquid_engine, business and mechanical
alertType
*alert
will @channel all channels listed (main and additional)alert-single-channel
will @channel the main channel, and direct message single-channel guests in the additional channelsalert-main-channel
will @channel the main channel, and post the message (sans-@channel) to additional channelscopy
will post the message to all channels listed.
notes
are notes appended to the end of the message if they existlink
link to the meetingagendaItems
agenda items for the event
* denotes required item