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

First download and install our Python Bindings and example scripts. 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 that's 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 doesn't open a browser, follow the instructions in the terminal window.

Now, all that's left to do is to run the gcal-bot script, in the same directory as the get-google-credentials script, with the necessary paramaters:

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:

  1. --calendar: This flag specifies the calendar to watch from the user's Google Account. By default, this flag is set to a user's 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 calendar's 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.

  2. --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.

Don't close the terminal window with the bot running. You will only get reminders if the bot is still running.

Congratulations! You're done!
You will get a Zulip private message, whenever you have a calendar event scheduled, that looks like this: