Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs for Google Calendar integration #6585

Merged
merged 10 commits into from
Aug 18, 2023
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 public channels.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we have any restriction on private channels. cc: @mickmister

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I couldn't get a private channel to show up in the drop-down. Only public channels were visible/available.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fmartingr This is the last outstanding updated needed for this docs update. Are private channels expected to work the same as public ones?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AFAIK the only limitation we set is that the event organizer (creator) can write to the channel, but we didn't add any filters for private channels. @mickmister maybe is related to the changes to the channel autocomplete using the Mattermost Client now?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For this docs release, I'll remove the clarification that only public channels operate this way. We can iterate on this content any time as needed. Thanks!

cwarnermm marked this conversation as resolved.
Show resolved Hide resolved
- 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>`__
122 changes: 122 additions & 0 deletions source/about/setup-mattermost-google-calendar-plugin.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
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.
- **Google Domain verify key**: TBD
fmartingr marked this conversation as resolved.
Show resolved Hide resolved

.. 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/xxx/issues/new>`__.
cwarnermm marked this conversation as resolved.
Show resolved Hide resolved
- 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.
71 changes: 71 additions & 0 deletions source/channels/use-mattermost-google-calendar-plugin.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
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.
- **Confirm status changes**: 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.

- **Status 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 messages, and optionally a channel message reminder if specified a channel when you created the event.
fmartingr marked this conversation as resolved.
Show resolved Hide resolved

.. tip::

Update your plugin preferences any time by entering the Mattermost slash command ``/gcal settings`` in the message text field, and selecting **Send**.

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 public channel where event reminders will be posted.
cwarnermm marked this conversation as resolved.
Show resolved Hide resolved

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, its based on your timezone. Guests see event details based on their timeszone.
fmartingr marked this conversation as resolved.
Show resolved Hide resolved

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.
- Schedule a daily summary of your Google Calendar to be sent to you in a direct message by entering the slash command ``/gcal summary time 8:00AM`` in the message text field. Replace the time based on your preference. Every day at the scheduled time, you'll receive a list of your events in a direct message.
fmartingr marked this conversation as resolved.
Show resolved Hide resolved
Loading