class_docstr: A class for handling connections and interactions with the Google Calendar API.
docstr: constructor
  Args:
      name (str): the handler name
      credentials_file (str): The path to the credentials file.
      scopes (list): The list of scopes to use for authentication.
      is_connected (bool): Whether the API client is connected to Google Calendar.
      events (GoogleCalendarEventsTable): The `GoogleCalendarEventsTable` object for interacting with the events table.
docstr_tok: ["constructor","Args",":","name","(","str",")",":","the","handler","name","credentials_file","(","str",")",":","The","path","to","the","credentials","file",".","scopes","(","list",")",":","The","list","of","scopes","to","use","for","authentication",".","is_connected","(","bool",")",":","Whether","the","API","client","is","connected","to","Google","Calendar",".","events","(","GoogleCalendarEventsTable",")",":","The","`","GoogleCalendarEventsTable","`","object","for","interacting","with","the","events","table","."]
code: def __init__(self, name: str, **kwargs):
      """constructor
      Args:
          name (str): the handler name
          credentials_file (str): The path to the credentials file.
          scopes (list): The list of scopes to use for authentication.
          is_connected (bool): Whether the API client is connected to Google Calendar.
          events (GoogleCalendarEventsTable): The `GoogleCalendarEventsTable` object for interacting with the events table.
      """
      super().__init__(name)
  
      self.token = None
      self.service = None
      self.connection_data = kwargs.get("connection_data", {})
      self.credentials_file = self.connection_data["credentials"]
      self.scopes = [
          "https://www.googleapis.com/auth/calendar",
          "https://www.googleapis.com/auth/calendar.events",
          "https://www.googleapis.com/auth/calendar.readonly",
      ]
      self.is_connected = False
  
      self.handler_storage = kwargs["handler_storage"]
  
      events = GoogleCalendarEventsTable(self)
      self.events = events
      self._register_table("events", events)
  
imports: import os
  from collections import OrderedDict
  import pandas
  from google.auth.transport.requests import Request
  from google.oauth2.credentials import Credentials
  from googleapiclient.discovery import build
  from mindsdb.api.executor.data_types.response_type import RESPONSE_TYPE
  from mindsdb.integrations.libs.const import HANDLER_CONNECTION_ARG_TYPE
  from mindsdb.integrations.libs.api_handler import APIHandler, FuncParser
  from mindsdb.integrations.libs.response import HandlerStatusResponse, HandlerResponse
  from mindsdb.utilities import log
  from mindsdb.integrations.handlers.gmail_handler.utils import AuthException, google_auth_flow, save_creds_to_file
  from .google_calendar_tables import GoogleCalendarEventsTable
label_desc: Use image node_id 1 to create a new GoogleCalendarHandler object from inherited base classes: APIHandler with example: obj = GoogleCalendarHandler(name)