zulip/templates/zerver/integrations/google-calendar.md

2.8 KiB
Raw Blame History

Get Google Calendar reminders in Zulip! This is a great way to see your reminders directly in your Zulip feed.

{!download-python-bindings.md!}

This bot should be set up on a trusted machine, because your API key is visible to local users through the command line or config file.

Next, follow the instructions for Step 1 at this link to get a client_secret file. Save this file as client_secret.json to your ~/ directory.

Next, install the latest Google API Client for Python by following the instructions on the Google Website.

Then go to your Zulip Settings by clicking on the cog in the top right corner, and then clicking on Settings.

Click on the tab thats labeled Your bots and click on Show/change your API key. Enter your password if prompted, and download the zuliprc file. Save this file as .zuliprc to your ~/ directory.

Run the get-google-credentials with this command:

python /usr/local/share/zulip/integrations/google/get-google-credentials

It should open up a browser and ask you for certain permissions. Give Zulip access, and move on to the next step. If it doesnt open a browser, follow the instructions in the terminal window.

Now, all thats left to do is to run the gcal-bot script, in the same directory as the get-google-credentials script, with the necessary parameters:

python /usr/local/share/zulip/integrations/google/gcal-bot --user foo@zulip.com

The --user flag specifies the user to send the reminder to.

There are two optional flags that you can specify when running this script:

  • --calendar: This flag specifies the calendar to watch from the users Google Account. By default, this flag is set to a users primary or default calendar. To specify a calendar, you need the calendar ID which can be obtained by going to Google Calendar and clicking on the wedge next to the calendars name. Click on settings in Calendar settings in the drop down, and look for the Calendar Address section. Copy the Calendar ID from the right side of the page and use that as the value for this flag.

  • --interval: This flag specifies the interval of time - in minutes - between receiving the reminder, and the actual event. For example, an interval of 30 minutes would mean that you would receive a reminder for an event 30 minutes before it is scheduled to occur.

Dont close the terminal window with the bot running (you can use screen if needed). You will only get reminders if the bot is still running.

{!congrats.md!}