Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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.

...

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

...

Troubleshooting

[note that the #minerva-logs channel exists]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.[remove the event description and reinitialize it]

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
languagejson
{
    "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 channels

    • default 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 channels

    • alert-main-channel will @channel the main channel, and post the message (sans-@channel) to additional channels

    • copy will post the message to all channels listed.

  • notes are notes appended to the end of the message if they exist

  • link link to the meeting

  • agendaItems agenda items for the event
    * denotes required item