Setu Recipes: reusable workflows across every app.Browse templates

Integrations / Google Calendar

Google Calendar

See and manage events in a connected Google Calendar.

3 actions OAuth 2 1 read1 write1 destructive Calls www.googleapis.com

Connect

TypeScript
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "googlecalendar" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();

Permissions requested

ScopeWhy it is requested
https://www.googleapis.com/auth/userinfo.emailSee which Google account you connected
https://www.googleapis.com/auth/calendar.eventsView and edit events on your calendars

Actions

Create eventwritegooglecalendar.create_eventAdd an event to a calendar. Attendees get an invitation when send_updates is all.

Needs scope: https://www.googleapis.com/auth/calendar.events

InputTypeDescription
calendar_idstringRequiredUse primary for the main calendar
summarystringRequiredEvent title
descriptionstringOptionalDetails
locationstringOptionalWhere
startstringRequiredStart, RFC 3339
endstringRequiredEnd, RFC 3339
attendeesarray of objectOptionalPeople to invite, as [{email}]
send_updatesstringOptional
TypeScript
await setu.execute({
  userId: "user_1",
  action: "googlecalendar.create_event",
  input: {
    "calendar_id": "<calendar_id>",
    "summary": "<summary>",
    "start": "<start>",
    "end": "<end>"
  },
});
Delete eventdestructivegooglecalendar.delete_eventDelete an event from a calendar.

Needs scope: https://www.googleapis.com/auth/calendar.events

InputTypeDescription
calendar_idstringRequiredUse primary for the main calendar
event_idstringRequiredEvent ID
TypeScript
await setu.execute({
  userId: "user_1",
  action: "googlecalendar.delete_event",
  input: {
    "calendar_id": "<calendar_id>",
    "event_id": "<event_id>"
  },
  confirm: true,
});
List eventsreadgooglecalendar.list_eventsList events in a time range, soonest first. Times are RFC 3339, for example 2026-10-20T09:00:00+01:00.

Needs scope: https://www.googleapis.com/auth/calendar.events

InputTypeDescription
calendar_idstringRequiredUse primary for the main calendar
time_minstringOptionalStart of range
time_maxstringOptionalEnd of range
qstringOptionalFree text search
max_resultsintegerOptional
TypeScript
await setu.execute({
  userId: "user_1",
  action: "googlecalendar.list_events",
  input: {
    "calendar_id": "<calendar_id>"
  },
});