This integration uses Rocket.Chat incoming webhook. With this integration, you'll get your event notifications right into Rocket.Chat.
- A Google Cloud Platform project with the Google Calendar API enabled. To create a project and enable an API, refer to Create a project and enable the API.
- Prepare authorization credentials for a desktop application. To learn how to create credentials for a desktop application, refer to Create credentials (make sure you download the JSON file).
- Create a dedicated channel for the event messages to be posted. You can use an existing channel as well.
- Go to
Administration
thenIntegration
. - Click the "New" button on the top right corner, then select "incoming" for the webhook type.
- Check "Enabled". Give it an optional name. Enter the channel name where the messages are going to be posted. For the "post as" box, enter a bot username like
rocket.cat
. You can use other usernames as well, you're free to experiment. - Enable the incoming webhook script. For the script, copy the contents of this file - https://github.com/debdutdeb/rocketchat-google-calendar/blob/main/script.js
- Go to the bottom of the page and click "save".
As soon as the webhook is saved, you'll notice a webhook URL -
We'll need this in the next step.
The integration program runs on a server, periodically grabs the event data from your calendar and sends that data to your Rocket.Chat server to be processed and sent to the channel you set up in the previous section.
To install the integration program, the easiest way is to first install the go binary and the run the following command -
go get github.com/debdutdeb/rocketchat-google-calendar
Edit your bashrc
, zshrc
or fish
config and add $(go env GOPATH)/bin
to your PATH
. This way you won't have to specify the whole path to the command every time.
Use the help option to learn all the command line options and modify its execution process - rocketchat-google-calendar -h
Usage of ./rocketchat-google-calendar:
-calendars string
List of calendar IDs, separated by commas. (default "primary")
-credentials string
Enter path to the credentials file. (default "credentials.json")
-eventin string
The upper limit of upcoming event start time. Lower bound is the moment of API access. (default "30m")
-waitfor string
Time to wait before attempting a POST to Rocket.Chat webhook. (default "5m")
-webhook string
Enter the webhook url you got from Rocket.Chat.
Enter the appropriate values for the respective options.
You'll then be asked to open a link. Click on it and use your Google account to authorize the app.
Once you get the token, copy and paste it on the terminal and hit enter.
Your integration should now be running.
In the example command above, the event data is fetched from the Google servers every 5 minutes. You can change that behaviour however you like.
One very common usecase is to be notified about all the meetings/events for each day, in the morning. You can achieve this by combining the two flags -eventin
and -waitfor
.
Use 24h
for both of those options. This way the integration program will fetch data every 24 hours, list the events that's going to occur in those 24 hours and send them to your Rocket.Chat server.