Criando eventos em python: https://developers.google.com/calendar/api/guides/create-events?hl=pt-br#python

Para rodar o código abaixo, é preciso criar uma conta de serviço nas credenciais de um projeto no Google e em seguida adicionar o e-mail dessa conta de serviço no calendário desejado (no caso, o nosso próprio e-mail pessoal).

Código de exemplo:

import datetime
import logging
import pprint
 
from google.oauth2 import service_account
from googleapiclient.discovery import build
 
from timetailor import consolecolor as ccolor, data
 
 
logger = logging.getLogger(__name__)
 
 
def handler_list_and_create(verbose, dryrun):
    # Path to the service account credentials JSON file
    SERVICE_ACCOUNT_FILE = './service-account.json'
 
    # Define the required scope for the Google Calendar API
    SCOPES = ['https://www.googleapis.com/auth/calendar']
 
    # Create a credentials object from the service account file
    credentials = service_account.Credentials.from_service_account_file(
            SERVICE_ACCOUNT_FILE, scopes=SCOPES)
 
    # Build the service object for the calendar API
    service = build('calendar', 'v3', credentials=credentials)
 
    # Call the Calendar API to list the next 10 events
    now = datetime.datetime.utcnow().isoformat() + 'Z'  # 'Z' indicates UTC time
    print('Getting the upcoming 10 events')
    events_result = service.events().list(calendarId='my-personal-email@email.com', timeMin=now,
                                          maxResults=10, singleEvents=True,
                                          orderBy='startTime').execute()
    events = events_result.get('items', [])
 
    if not events:
        print('No upcoming events found.')
    else:
        for event in events:
            start = event['start'].get('dateTime', event['start'].get('date'))
            pprint.pprint(event)
            print(start, event.get('summary', 'No summary'))
 
    print('Creating an event')
 
    # Specify the event detail
    event = {
        'summary': 'Google I/O 2023',
        'location': '800 Howard St., San Francisco, CA 94103',
        'description': 'A chance to hear more about Google\'s developer products.',
        'start': {
            'dateTime': '2023-12-22T12:00:00-03:00',
            'timeZone': 'America/Sao_Paulo',
        },
        'end': {
            'dateTime': '2023-12-22T13:00:00-03:00',
            'timeZone': 'America/Sao_Paulo',
        },
    }
 
    # Call the Calendar API to create the event on the primary calendar
    event = service.events().insert(calendarId='my-personal-email@mail.com', body=event).execute()
    print(f'Event created: {event.get("htmlLink")}')