Your find_events shows upcoming meetings. Now the other side — creating one. What's the last event you booked manually that could have been automated?
After find_events I can see what's already scheduled. But every time a customer books a demo through our website, I manually create the calendar event and add my co-founder. That's 3 minutes per booking, maybe 10 bookings a week.
GOOGLECALENDAR_CREATE_EVENT creates the event for you. You need the calendar ID, title, and ISO8601 start and end datetimes. The event appears in Google Calendar exactly as if you'd booked it manually:
result = toolset.execute_action(
Action.GOOGLECALENDAR_CREATE_EVENT,
{"calendar_id": cal_id, "summary": title, "start": {"dateTime": start}, "end": {"dateTime": end}}
)
print(result.get("id", "no event id"))Does start take a string or an object? The nested {"dateTime": start} shape is different from what I've seen before.
The Calendar API wraps datetimes in an object: {"dateTime": "2026-04-22T09:00:00Z"}. Some events also include a "timeZone" field. Keep a note about timezone: always confirm the time zone in your workflow — a UTC start time renders in your local calendar's timezone. Here's the full function:
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', 'no id')}")
return resultSo every demo booking webhook can call create_event automatically. 30 seconds instead of 3 minutes, 10 times a week. That's 25 minutes back.
25 minutes a week is 21 hours a year. That's a real ops hire you're not making.
Find-then-create is the pattern. Check the calendar first with find_events, then create the event. No duplicates.
Always confirm the time zone — add "timeZone": "America/New_York" or your local zone inside the start and end objects. UTC works, but a board member in a different timezone will see a confusing time if you rely on calendar display conversion.
GOOGLECALENDAR_CREATE_EVENT creates an event on your calendar. Automating demo booking events eliminates 3 minutes of manual entry per booking — at 10 bookings a week that's 25 minutes reclaimed every week.
toolset.execute_action(
Action.GOOGLECALENDAR_CREATE_EVENT,
{
"calendar_id": "primary",
"summary": "Board Meeting",
"start": {"dateTime": "2026-04-22T09:00:00Z"},
"end": {"dateTime": "2026-04-22T10:00:00Z"}
}
)Always confirm the time zone. UTC datetimes display in the viewer's local timezone — add "timeZone": "America/New_York" inside the start/end objects to be explicit.
Your find_events shows upcoming meetings. Now the other side — creating one. What's the last event you booked manually that could have been automated?
After find_events I can see what's already scheduled. But every time a customer books a demo through our website, I manually create the calendar event and add my co-founder. That's 3 minutes per booking, maybe 10 bookings a week.
GOOGLECALENDAR_CREATE_EVENT creates the event for you. You need the calendar ID, title, and ISO8601 start and end datetimes. The event appears in Google Calendar exactly as if you'd booked it manually:
result = toolset.execute_action(
Action.GOOGLECALENDAR_CREATE_EVENT,
{"calendar_id": cal_id, "summary": title, "start": {"dateTime": start}, "end": {"dateTime": end}}
)
print(result.get("id", "no event id"))Does start take a string or an object? The nested {"dateTime": start} shape is different from what I've seen before.
The Calendar API wraps datetimes in an object: {"dateTime": "2026-04-22T09:00:00Z"}. Some events also include a "timeZone" field. Keep a note about timezone: always confirm the time zone in your workflow — a UTC start time renders in your local calendar's timezone. Here's the full function:
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', 'no id')}")
return resultSo every demo booking webhook can call create_event automatically. 30 seconds instead of 3 minutes, 10 times a week. That's 25 minutes back.
25 minutes a week is 21 hours a year. That's a real ops hire you're not making.
Find-then-create is the pattern. Check the calendar first with find_events, then create the event. No duplicates.
Always confirm the time zone — add "timeZone": "America/New_York" or your local zone inside the start and end objects. UTC works, but a board member in a different timezone will see a confusing time if you rely on calendar display conversion.
GOOGLECALENDAR_CREATE_EVENT creates an event on your calendar. Automating demo booking events eliminates 3 minutes of manual entry per booking — at 10 bookings a week that's 25 minutes reclaimed every week.
toolset.execute_action(
Action.GOOGLECALENDAR_CREATE_EVENT,
{
"calendar_id": "primary",
"summary": "Board Meeting",
"start": {"dateTime": "2026-04-22T09:00:00Z"},
"end": {"dateTime": "2026-04-22T10:00:00Z"}
}
)Always confirm the time zone. UTC datetimes display in the viewer's local timezone — add "timeZone": "America/New_York" inside the start/end objects to be explicit.
Create a free account to get started. Paid plans unlock all tracks.