Airbrake

Monitoring

Airbyte

Monitoring

Prometheus Alertmanager

Monitoring

Ansible Tower

Deployment

AppFollow

Customer support

AppVeyor

Continuous integration

Asana

Project management

Assembla

(Hubot script)

Version control

AzureDevOps

Version control

Basecamp

Project management

Beanstalk

Version control

Beeminder

Miscellaneous

BigBlueButton

Communication

Bitbucket

(Enterprise)

Version control

Bitbucket

Version control

Bitbucket Server

Version control

Bonusly

(Hubot script)

Human resources

Buildbot

Continuous integration

Thinkst Canarytokens

Monitoring

Capistrano

Deployment

Chartbeat

(Hubot script)

Marketing

CircleCI

Continuous integration

Clubhouse

Project management

Codebase

Version control

Codeship

Continuous integration

Crashlytics

Monitoring

Dark Sky

(Hubot script)

Miscellaneous

Delighted

Customer support

Dialogflow

Customer support

Discourse

Communication

Dropbox

Productivity

Email

Communication

Errbit

Monitoring

Errbot

Integration frameworks

Flock

Customer support

Freshdesk

Customer support

Freshping

Monitoring

Freshstatus

Monitoring

Front

Customer support

GIPHY

Miscellaneous

Git

Version control

Gitea

Version control

GitHub

Version control

GitHub Actions

Continuous integration

GitHub Detail Bot

Version control

GitHub Sponsors

Financial

GitLab

Version control

GoCD

Continuous integration

Gogs

Version control

Google Calendar

Productivity

Google Translate

(Hubot script)

Miscellaneous

GoSquared

Marketing

Grafana

Monitoring

Greenhouse

Human resources

Groove

Customer support

Harbor

Deployment

HelloSign

Productivity

Hello World

Miscellaneous

Heroku

Deployment

Home Assistant

Miscellaneous

Hubot

Integration frameworks

IFTTT

Integration frameworks

Insping

Monitoring

Instagram

(Hubot script)

Miscellaneous

Intercom

Customer support

IRC

Communication

Jenkins

Continuous integration

Jira

Project management

Jira

(locally installed)

Project management

Jitsi Meet

Communication

Jotform

Miscellaneous

JSON formatter

Miscellaneous

Librato

Monitoring

Lidarr

Entertainment

Linear

Project management

Mailchimp

(Hubot script)

Communication

Mastodon

Communication

Matrix

Communication

Mention

Marketing

Mercurial (hg)

Version control

Nagios

Monitoring

Netlify

Continuous integration

New Relic

Monitoring

Notion

Productivity

Onyx

Productivity

Open Collective

Financial

OpenShift

Deployment

Opsgenie

Integration frameworks

PagerDuty

Monitoring

Papertrail

Monitoring

Patreon

Financial

Perforce

Version control

Phabricator

Version control

Pingdom

Monitoring

Pivotal Tracker

Project management

Puppet

Deployment

Radarr

Entertainment

Raygun

Monitoring

Redmine

Project management

Review Board

Version control

RhodeCode

Version control

RSS

Communication

Rundeck

Deployment

Semaphore

Continuous integration

Sentry

Monitoring

Slack

Communication

Slack-compatible webhook

Communication

SonarQube

Continuous integration

Sonarr

Entertainment

Splunk

Monitoring

Statuspage

Customer support

Stripe

Financial

Subversion

Version control

Taiga

Project management

Teamcity

Continuous integration

Thinkst

Monitoring

Trac

Project management

Transifex

Miscellaneous

Travis CI

Continuous integration

Trello

Project management

Twitter

Customer support

Updown

Monitoring

UptimeRobot

Monitoring

Wekan

Productivity

WordPress

Marketing

xkcd Bot

Interactive bots

YouTube

(Hubot script)

Miscellaneous

Zabbix

Monitoring

Zapier

Integration frameworks

Zendesk

Customer support

Zoom

Communication


Don't see an integration you need? We'd love to help.

Create your own or Request an integration
Back to list

Google Calendar

Productivity

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

  1. Download and install our Python bindings and example scripts on the server where the Google Calendar bot will live.

    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.

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

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

  4. In Zulip, go to your click on the cog in the top right corner, and then clicking on Personal settings.

  5. Click on the tab that’s labeled Account & privacy and click on Manage your API key. Enter your password if prompted, and download the zuliprc file. Save this file as .zuliprc to your ~/ directory.

    Download zuliprc file

  6. Run the get-google-credentials with this command:

    python /usr/local/share/zulip/integrations/google/get-google-credentials
    
  7. 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.

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

  9. Don’t 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.

You're done! Your Google Calendar notifications may look like this:

Calendar demo

Supported parameters

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

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

Specify a calendar

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

Logos are trademarks of their respective owners. None of the integrations on this page are created by, affiliated with, or supported by the companies represented by the logos.