Skip to content

Commit

Permalink
Docs for Google Calendar integration (#6585)
Browse files Browse the repository at this point in the history
* Docs for Google Calendar integration

* Initial draft of Google Calendar plugin docs

* Update source/about/setup-mattermost-google-calendar-plugin.rst

Co-authored-by: Felipe Martin <[email protected]>

* Incorporated reviewer feedback

* Update source/about/mattermost-google-calendar-integration.rst

* Update source/channels/use-mattermost-google-calendar-plugin.rst

---------

Co-authored-by: Felipe Martin <[email protected]>
  • Loading branch information
cwarnermm and fmartingr authored Aug 18, 2023
1 parent 27c9ca9 commit 139573e
Show file tree
Hide file tree
Showing 18 changed files with 345 additions and 6 deletions.
4 changes: 1 addition & 3 deletions source/about/mattermost-for-microsoft-teams.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,4 @@ See the following product documentation to install and use Mattermost for Micros

- `Install the Mattermost for Microsoft Teams plugin </about/install-mattermost-for-microsoft-teams-plugin.html>`__
- `Install the Mattermost app in Microsoft Teams </about/install-mattermost-app-in-microsoft-teams.html>`__
- `Collaborate using Mattermost for Microsoft Teams </channels/collaborate-using-mattermost-for-microsoft-teams.html>`__


- `Collaborate using Mattermost for Microsoft Teams </channels/collaborate-using-mattermost-for-microsoft-teams.html>`__
17 changes: 17 additions & 0 deletions source/about/mattermost-google-calendar-integration.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Mattermost Google Calendar integration
======================================

.. include:: ../_static/badges/allplans-cloud-selfhosted.rst
:start-after: :nosearch:

The Mattermost Google Calendar integration enables a two-way integration between Mattermost and Google Calendar. With this integration, you can:

- Create and schedule events, invite guests, and post reminders in channels.
- Schedule a daily summary of your events, or review your events today, tomorrow, or this week.
- Receive an event reminder 5 minutes before a meeting via direct message and linked channel message.
- Automatically set your user status as Away or Do Not Disturb during scheduled events.

See the following product documentation to install and use Mattermost Google Calendar integration:

- `Set up the Mattermost Google Calendar plugin </about/setup-mattermost-google-calendar-plugin.html>`__
- `Use the Mattermost Calendar plugin </channels/use-mattermost-google-calendar-plugin.html>`__
121 changes: 121 additions & 0 deletions source/about/setup-mattermost-google-calendar-plugin.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
Set up the Mattermost Google Calendar plugin
=============================================

.. include:: ../_static/badges/allplans-cloud-selfhosted.rst
:start-after: :nosearch:

Setting up the Mattermost Google Calendar integration requires the following 3 steps:

1. (Mattermost admin) `Install the Google Calendar plugin <#install-the-mattermost-google-calendar-plugin>`__ on your Mattermost instance.
2. (Google admin) `Create a Google Calendar service <#create-a-google-calendar-service>`__ by creating a Google Cloud project.
3. (Mattermost admin) `Configure the Mattermost Google Calendar plugin <#configure-the-matermost-google-calendar-plugin>`__.

Once setup is complete, see the `get started <#get-started-with-the-plugin>`__ section below to learn how to use the plugin.

Install the Mattermost Google Calendar plugin
---------------------------------------------

To install the `Mattermost Google Calendar </plugins/mattermost-google-calendar>`__ plugin on your Mattermost server:

1. Log in to your Mattermost workspace as a system administrator.
2. Download the latest version of `the plugin binary release <https://github.com/mattermost/xxx>`__, compatible with Mattermost v8.x and later.

.. tip::

If you are using an earlier version of Mattermost, `follow our documentation </upgrade/upgrading-mattermost-server.html>`__ to upgrade to Mattermost v8.x or later.

Create a Google Calendar service
--------------------------------

1. In a browser, as a Google admin, create a project in the Google Cloud Console by going to ``https://console.cloud.google.com/``, selecting the project option in the top left corner of the screen, then selecting **New Project** option in the top right corner of the popup window.

.. image:: ../images/google-cloud-console-create-project.png
:alt: In Google Cloud Console, select New Project to create up a new project.

.. image:: ../images/google-cloud-console-new-project.png
:alt: Use Google Cloud Console to set up a new project.

2. When your project is created, go to **APIs & Services** to search for and enable the following 2 services:

- **Google Calendar API**: Used for anything related to the calendar and events.
- **Google People API**: Used to link your Mattermost account to your Google account.

.. image:: ../images/google-cloud-console-apis.png
:alt: In Google Cloud Console, select APIs & Services to search for services to enable.

.. image:: ../images/enable-google-cloud-console-google-calendar-api.png
:alt: In Google Cloud Console, search for and enable the Google Calendar API.

.. image:: ../images/enable-google-cloud-console-google-people-api.png
:alt: In Google Cloud Console, search for and enable the Google People API.

3. Choose how to configure and register the application by selecting the user type as **Internal** or **External**, then select **Create**.

.. image:: ../images/google-cloud-console-OAuth-consent-screen.png
:alt: On the OAuth consent screen, configure and register the application as internal or external.

4. When prompted, set the following app information:

- **App name**: `Google Calendar Mattermost Plugin`
- **User support email**
- **Developer contact information**
- Populate the remaining fields as needed.

.. image:: ../images/google-cloud-console-app-information.png
:alt: Configure the consent screen app name and user support email.

.. image:: ../images/google-cloud-console-developer-contact-information.png
:alt: Configure the consent screen developer contact information.

5. Under Credentials, create new OAuth 2.0 credentials by selecting **Create Credentials > OAuth client ID**.

- Under **Application type**, select **Web Application**.
- Under **Authorized redirect URIs** add ``https://(MM_SITE_URL)/plugins/com.mattermost.gcal/oauth2/complete`` and replace ``MM_SITE_URL`` with your Mattermost Server Site URL.

.. image:: ../images/google-cloud-console-web-application.png
:alt: Under Credentials, select Web application.

.. image:: ../images/google-cloud-console-authorized-redirect-uris.png
:alt: Configure the authorized redirect URI for Mattermost.

6. Once the OAuth client is created, make a copy of the **Client ID** and **Client Secret** values for the next and final setup step below.

.. image:: ../images/google-cloud-console-OAuth-client-created.png
:alt: Copy the Client ID and Client secret values. You'll need these values in the next step.

Configure the Mattermost Google Calendar plugin
-----------------------------------------------

In Mattermost, configure the plugin by going to **System Console > Plugin Management > Google Calendar**, enter the following values, and select **Save**.

- **Enable Plugin**: Select **true** to enable the plugin for your Mattermost instance.
- **Admin User IDs**: Specify the user IDs who are authorized to manage the plugin in addition to Mattermost system admins. Separate multiple user IDs with commas. Go to **System Console > User Management > Users** to obtain a user's ID.
- **Encryption key**: Generate an encryption key used to store data in the database. Regenerating this value forces users to re-link their Google Calendars in Mattermost.
- **Google Application Client ID**: Paste the Client ID value from the Google Cloud Console.
- **Google Client Secret**: Paste the Client Secret value from the Google Cloud Console.

.. note::

Additional Mattermost Google Calendar configuration options are available for troubleshooting, including the admin log level of plugin logs, and displaying full or partial context for admin log messages. See the `plugin configuration settings </configure/plugins-configuration-settings.html#mattermost-google-calendar-plugin>`__ documentation for details.

Get started with the plugin
---------------------------

See the `use Mattermost Google Calendar plugin </channels/use-mattermost-google-calendar-plugin>`__ documentation for details on how users can `link their Google Calendar to Mattermost </channels/use-mattermost-google-calendar-plugin.html#connect-your-google-calendar-account-to-mattermost>`__, `customize plugin preferences </channels/use-mattermost-google-calendar-plugin.html#customize-your-google-calendar-plugin>`__, and `create calendar events in Mattermost <channels/use-mattermost-google-calendar-plugin.html#create-a-calendar-event>`__ that are added to their Google Calendar automatically.

Troubleshooting
---------------

If you encounter issues when connecting calendars, creating events, inviting guests to events, or linking channels, we recommend restarting the plugin as a Mattermost system admin.

1. Go to **System Console > Plugins > Plugin Management**.
2. Under **Installed Plugins**, scroll to the **Google Calendar** section, select **Disable** then wait for the State to change to **Not running**.
3. Select **Enable** and wait for the State to change to **Running**.

Get help
---------

If you face any issues while installing the Mattermost Google Calendar plugin, you can either:

- Open a new issue in the `Mattermost Google Calendar repository <https://github.com/mattermost/mattermost-plugin-mscalendar/issues/new>`__.
- Or, create a new topic in our `peer-to-peer troubleshooting forum <https://forum.mattermost.com/c/trouble-shoot/16>`__.
5 changes: 4 additions & 1 deletion source/about/unified-collaboration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,12 @@ Unified communication
/about/mattermost-for-microsoft-teams.rst
/about/install-mattermost-for-microsoft-teams-plugin.rst
/about/install-mattermost-app-in-microsoft-teams.rst
/about/mattermost-google-calendar-integration.rst
/about/setup-mattermost-google-calendar-plugin.rst

Mattermost's Unified Communication solution is designed to provide an extended collaboration experience for technical and operational teams to teams on other collaboration systems.

* :doc:`Mattermost for Microsoft Teams </about/mattermost-for-microsoft-teams>` - Learn how organizations can easily connect operational workflows through the Mattermost app while staying connected to the all-employee platform, all in one place.
* :doc:`Mattermost Google Calendar integration </about/mattermost-google-calendar-integration>` - Learn how to enable a two-way integration between Mattermost and Google Calendar.

`Contact us <https://mattermost.com/contact-sales/>`_ to learn more about this solution and to discuss whether it’s the right one for you.
`Contact us <https://mattermost.com/contact-sales/>`_ to learn more about this solution and to discuss whether it’s the right one for you.
69 changes: 69 additions & 0 deletions source/channels/use-mattermost-google-calendar-plugin.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
Use the Mattermost Google Calendar plugin
=========================================

.. include:: ../_static/badges/allplans-cloud-selfhosted.rst
:start-after: :nosearch:

`The Mattermost Google Calendar plugin </about/mattermost-google-calendar-plugin.html>`__ enables you to manage events using a two-way integration between Mattermost and Google Calendar without leaving Mattermost.

.. note..
Your system admin needs to `set up this plugin </about/setup-mattermost-google-calendar-plugin.html>`__ before you can use it to manage your Google Calendar in Mattermost.
Connect your Google Calendar account to Mattermost
---------------------------------------------------

To use the Mattermost Google Calendar plugin, you must connect your Google Calendar account to Mattermost. You only need to complete this step once.

1. Log into Mattermost using your credentials.
2. Enter the Mattermost slash command ``/gcal connect`` in the message text field, and select **Send**.
3. When prompted, select the link to open a new browser window and connect your Google Calendar account to Mattermost.
4. Choose your Google account and enter your Google credentials if you're not already logged in.
5. Select **Allow**.

Mattermost will tell you when you’ve successfully connected your account. You can close the browser window and return to Mattermost.

Customize your Google Calendar plugin
---------------------------------------

Mattermost prompts you to configure the plugin based on your personal preferences with the following options. You only need to complete this step once.

- **Update status**: The plugin can update `your Mattermost availability </welcome/set-your-status-availability.html#set-your-availability>`__ when you have an event scheduled.
- **Get Confirmation**: You can manually confirm every availability change, or the plugin can update your availability automatically.

- If you select **Yes**, Mattermost confirms your availability update 5 minutes before each event starts. You'll also be prompted to change your availability back to **Online** once an event ends.
- Select **No** to enable the plugin to update your availability automatically.

- **Receive notifications during meetings**: During an event, your availability can be set to **Away** or **No Not Disturb** when you’re in a meeting.

- Set your availability to **Away** to clearly communicate to others in Mattermost that you're unavailable. You'll continue to receive desktop, email, and push notifications based on your Mattermost notification preferences.
- Set your availability to `Do Not Disturb </welcome/set-your-status-availability.html#set-your-availability-as-do-not-disturb>`__ to disable all desktop, email, and push notifications.

- **Receive reminders**: You can choose to receive an event reminder 5 minutes before a meeting in a direct message.

- **Daily summary**: You can get a daily summary of your events delivered in a direct message.

Create a calendar event
-----------------------

1. Using a web browser or the desktop app, select a channel name to access additional channel options.
2. Select **Create calendar event**.
3. Specify a subject, date, start time, and end time for the event. You can optionally specify additional event details, including location, guest invitations, description, and a channel where event reminders will be posted.

4. Select **Create**.

.. note::

- You can invite guests to the event by username if they’ve already connected their Google Calendar account to the Mattermost server, or alternatively by their email address.
- Once you’ve invited guests to an event, guests must accept the event invitation to receive event reminders based on how they’ve customized their Google Calendar plugin preferences.
- When you create an event, it's based on your timezone. Guests see event details based on their timezone in direct message reminders, but channel reminders display using the event creator's timezone.

Review your upcoming events
---------------------------

You can use the following Mattermost slash commands to review your upcoming Google Calendar events without leaving Mattermost.

- See a summary of today's events by entering the slash command ``/gcal today`` in the message text field.
- See a summary of tomorrow's events by entering the slash command ``/gcal tomorrow`` in the message text field.
- See a summary of the week's events by entering the slash command ``/gcal viewcal`` in the message text field.
- Update your plugin preferences any time by entering the Mattermost slash command ``/gcal settings`` in the message text field.
Loading

0 comments on commit 139573e

Please sign in to comment.