Google Calendar Events

OBS Python Google Calendar Events 0.3.1

UPDATE: This script now can trigger recording and streaming. The script will begin streaming if there is an event currently occuring with the title "Stream". Likewise, it will begin recording if there is an event with the title "Record". The script will stop streaming or recording if it no longer detects that the "Stream" or "Record" event is currently happening. Note that this depends on the refresh rate, so if the refresh rate is 30 seconds the recording may not start until 30 seconds after the event starts. To make sure you start at an exact time make sure to lower the refresh rate, or to start the event slightly earlier to account for the refresh rate you have set.

This script is based off of the url-text example script in OBS. The script gets events currently happening from a specified Google calendar and updates at the user-specified interval. It allows you to specify a maximum number of events to retrieve and then once you reload the script you can select the OBS text and/or image sources for each of these events. Note that changing the number of events and pressing refresh does change the max number of events returned, but I have not yet figured out how to update the UI inside the OBS script when refresh is pressed, for now you have to change the number and then reload the script in order for the UI to reflect the sources for the max number of events you specify.

This script uses the Google Calendar API. The python quickstart can be found at the following link:

Only the first 2 steps of the quickstart; setting up a OAuth project to create a client_id.json file (or client_secret.json, not sure why but the quickstart has you rename it) and using pip to install the API, need to be followed. The filepath to the client_secret.json file can be located and specified from within the OBS script. The Calendar ID (found in the Google Calendar settings for the calendar you wish to get events from) can also be specified and changed. Authorization should only need to happen the first time you set up the API for the script, as the script uses the API to store the credentials after setting it up for the first time.


  • Like
Reactions: Hammiah90
First release
Last update
0.00 star(s) 0 ratings

Latest updates

  1. Fixed typo

    Didn't catch until after posting...
  2. Updated script description

    Updated script description/image to reflect update
  3. Trigger recording and streaming through Google Calendar events

    Added in functionality so that if there is a "Stream" or "Record" event in the Google Calendar...