find_events from yesterday reads the calendar. Today you write to it. The safety rule for all write actions applies: test with your own calendar, confirm the event was created, then automate.
Pass calendar ID, title, start time, and end time. Get back the created event dict with the new event ID.
Exactly. GOOGLECALENDAR_CREATE_EVENT takes calendar_id, summary (the title), start_datetime, and end_datetime — all ISO 8601 strings. The response is the created event dict. Check your Google Calendar and the event will be there:
result = toolset.execute_action(
Action.GOOGLECALENDAR_CREATE_EVENT,
{
"calendar_id": "primary",
"summary": "Kickoff — Acme Redesign",
"start_datetime": "2026-04-21T10:00:00Z",
"end_datetime": "2026-04-21T11:00:00Z"
}
)
print(f"Created: {result.get('id')}")What happens if I create the same event twice? Does Calendar deduplicate?
No deduplication. Two calls with the same title and time create two identical events — both will appear in your calendar. In production, call find_events first to check for an existing event with the same summary before creating. The check-before-write pattern applies to every create action.
So the full flow is: client confirms project via email → parse email → create Calendar event → create Task. All automated.
That is the capstone workflow forming. Four weeks of building blocks, one function chain:
def create_event(cal_id: str, title: str, start: str, end: str) -> dict:
result = toolset.execute_action(
Action.GOOGLECALENDAR_CREATE_EVENT,
{"calendar_id": cal_id, "summary": title, "start_datetime": start, "end_datetime": end}
)
print(f"Created event: {result.get('id', 'ok')}")
return resultMy ten-minute kickoff setup ritual just became a function call. I could wire my whole Monday morning in this.
What would you automate first — the kickoff event or the invoice reminder that fires two weeks before project end?
GOOGLECALENDAR_CREATE_EVENT takes a calendar ID, title, and ISO start/end timestamps:
result = toolset.execute_action(
action=Action.GOOGLECALENDAR_CREATE_EVENT,
params={
'calendarId': cal_id,
'summary': title,
'start': start,
'end': end
}
)Start and end must be ISO 8601 strings: '2026-05-01T10:00:00Z' for UTC. Generate them with datetime.isoformat() + 'Z'.
Check for conflicts first: call find_events(cal_id, start) to see what already exists in that time window before creating. Creating a duplicate kickoff event is harder to undo than checking first.
find_events from yesterday reads the calendar. Today you write to it. The safety rule for all write actions applies: test with your own calendar, confirm the event was created, then automate.
Pass calendar ID, title, start time, and end time. Get back the created event dict with the new event ID.
Exactly. GOOGLECALENDAR_CREATE_EVENT takes calendar_id, summary (the title), start_datetime, and end_datetime — all ISO 8601 strings. The response is the created event dict. Check your Google Calendar and the event will be there:
result = toolset.execute_action(
Action.GOOGLECALENDAR_CREATE_EVENT,
{
"calendar_id": "primary",
"summary": "Kickoff — Acme Redesign",
"start_datetime": "2026-04-21T10:00:00Z",
"end_datetime": "2026-04-21T11:00:00Z"
}
)
print(f"Created: {result.get('id')}")What happens if I create the same event twice? Does Calendar deduplicate?
No deduplication. Two calls with the same title and time create two identical events — both will appear in your calendar. In production, call find_events first to check for an existing event with the same summary before creating. The check-before-write pattern applies to every create action.
So the full flow is: client confirms project via email → parse email → create Calendar event → create Task. All automated.
That is the capstone workflow forming. Four weeks of building blocks, one function chain:
def create_event(cal_id: str, title: str, start: str, end: str) -> dict:
result = toolset.execute_action(
Action.GOOGLECALENDAR_CREATE_EVENT,
{"calendar_id": cal_id, "summary": title, "start_datetime": start, "end_datetime": end}
)
print(f"Created event: {result.get('id', 'ok')}")
return resultMy ten-minute kickoff setup ritual just became a function call. I could wire my whole Monday morning in this.
What would you automate first — the kickoff event or the invoice reminder that fires two weeks before project end?
GOOGLECALENDAR_CREATE_EVENT takes a calendar ID, title, and ISO start/end timestamps:
result = toolset.execute_action(
action=Action.GOOGLECALENDAR_CREATE_EVENT,
params={
'calendarId': cal_id,
'summary': title,
'start': start,
'end': end
}
)Start and end must be ISO 8601 strings: '2026-05-01T10:00:00Z' for UTC. Generate them with datetime.isoformat() + 'Z'.
Check for conflicts first: call find_events(cal_id, start) to see what already exists in that time window before creating. Creating a duplicate kickoff event is harder to undo than checking first.
Create a free account to get started. Paid plans unlock all tracks.