Week 1 gave you Gmail. Your inbox is now a Python variable. What's the next manual bottleneck in your Monday ops?
After send_email the investor update writes and sends itself. But I still manually create calendar events — board calls, demo bookings, 48-hour check-ins. Each one is three clicks I shouldn't be making.
Calendar is the second app in your Monday stack. GOOGLECALENDAR_LIST_CALENDARS returns all your calendars — personal, work, shared — with their IDs. You need the calendar ID before you can create or search events:
result = toolset.execute_action(Action.GOOGLECALENDAR_LIST_CALENDARS, {})
calendars = result.get("calendars", [])
for cal in calendars:
print(cal.get("summary", "unnamed"), cal.get("id", ""))Why do I need to list calendars first? Can't I just hardcode my calendar ID?
You can hardcode once you know the ID — but listing first discovers all your calendars including shared ones your team created. list_calendars() is the setup step. Here's the full function:
def list_calendars() -> list:
result = toolset.execute_action(Action.GOOGLECALENDAR_LIST_CALENDARS, {})
calendars = result.get("calendars", [])
print(f"Found {len(calendars)} calendars")
return calendarsSo every board call I schedule manually could just be a Python function call? I'm already thinking of three workflows — board meeting, demo booking, investor check-in.
Keep that list. The capstone in Week 4 is going to be exactly those three chained together.
Gmail was one app. Calendar is the second. Two apps connected, and I haven't written a single line of OAuth.
The calendar ID in the response is the value you'll pass to every subsequent calendar action. Save it as a variable — don't copy-paste it inline everywhere. One variable, many uses.
GOOGLECALENDAR_LIST_CALENDARS returns all your Google Calendars.
{"calendars": [{"id": "primary", "summary": "My Calendar"}, ...]}| Field | Value |
|---|---|
id | Calendar ID (use in all subsequent calls) |
summary | Display name |
primary | Boolean — is this the primary calendar? |
The primary calendar's ID is often "primary" as a shorthand. But shared calendars have long IDs. Always list first to discover all IDs.
Week 1 gave you Gmail. Your inbox is now a Python variable. What's the next manual bottleneck in your Monday ops?
After send_email the investor update writes and sends itself. But I still manually create calendar events — board calls, demo bookings, 48-hour check-ins. Each one is three clicks I shouldn't be making.
Calendar is the second app in your Monday stack. GOOGLECALENDAR_LIST_CALENDARS returns all your calendars — personal, work, shared — with their IDs. You need the calendar ID before you can create or search events:
result = toolset.execute_action(Action.GOOGLECALENDAR_LIST_CALENDARS, {})
calendars = result.get("calendars", [])
for cal in calendars:
print(cal.get("summary", "unnamed"), cal.get("id", ""))Why do I need to list calendars first? Can't I just hardcode my calendar ID?
You can hardcode once you know the ID — but listing first discovers all your calendars including shared ones your team created. list_calendars() is the setup step. Here's the full function:
def list_calendars() -> list:
result = toolset.execute_action(Action.GOOGLECALENDAR_LIST_CALENDARS, {})
calendars = result.get("calendars", [])
print(f"Found {len(calendars)} calendars")
return calendarsSo every board call I schedule manually could just be a Python function call? I'm already thinking of three workflows — board meeting, demo booking, investor check-in.
Keep that list. The capstone in Week 4 is going to be exactly those three chained together.
Gmail was one app. Calendar is the second. Two apps connected, and I haven't written a single line of OAuth.
The calendar ID in the response is the value you'll pass to every subsequent calendar action. Save it as a variable — don't copy-paste it inline everywhere. One variable, many uses.
GOOGLECALENDAR_LIST_CALENDARS returns all your Google Calendars.
{"calendars": [{"id": "primary", "summary": "My Calendar"}, ...]}| Field | Value |
|---|---|
id | Calendar ID (use in all subsequent calls) |
summary | Display name |
primary | Boolean — is this the primary calendar? |
The primary calendar's ID is often "primary" as a shorthand. But shared calendars have long IDs. Always list first to discover all IDs.
Create a free account to get started. Paid plans unlock all tracks.