Turn a Google Sheets row into a Google Calendar event with a Gmail confirmation

Every new row in your Scheduled Events sheet creates a Google Calendar invite and sends a plain-text Gmail confirmation to every attendee.

Deterministic Code
Google SheetsGoogle CalendarGmailOperationsPersonal ProductivityMeeting WorkflowsEmail AutomationData Sync

Build me a deterministic code workflow that turns each new row in a Google Sheets spreadsheet into a real Google Calendar event and a Gmail confirmation to every attendee. This is a fixed pipeline with one trigger and two actions, no agent reasoning.

Trigger: Google Sheets new_row poll on the configured spreadsheet and tab (call the tab Scheduled Events). The row has these fixed columns in this order: Title, Description, Start (ISO 8601), End (ISO 8601), Attendees (comma-separated emails), and Location.

Step 1, Google Calendar Create Event on the primary calendar. Map the columns directly into the event payload: Title to summary, Description to description, Start to start.dateTime, End to end.dateTime, Location to location, and split the Attendees column on commas into the attendees array of email objects. Set sendUpdates to all so Google Calendar sends its standard invitations to every attendee. Capture the created event's htmlLink and id for the next step.

Step 2, Gmail Send a Message. Send one plain-text confirmation email to the same comma-separated attendee list (To header). Subject should be: Confirmed: {Title} on {Start}. Body should restate the title, the start and end times, the location, and include the htmlLink from the calendar event so recipients can jump straight to it. Use the connected Gmail account as the From address.

Keep the graph simple: trigger to Create Event to Send a Message, with the event id and htmlLink threaded from step 1 into step 2. No branching, no LLM calls, no retries beyond the platform default. Run it as code, not an agent.

Additional information

What does this prompt do?
  • Watches a Google Sheets tab named Scheduled Events and triggers on every new row.
  • Creates a Google Calendar event on your primary calendar using the row's Title, Description, Start, End, Attendees, and Location columns.
  • Sends Google Calendar invitations to all attendees via the standard sendUpdates flag.
  • Fans out a plain-text Gmail confirmation to the same attendee list with the time, location, and a link to the calendar event.
What do I need to use this?
  • A connected Google Sheets account with access to the spreadsheet that holds your Scheduled Events tab.
  • A connected Google Calendar account with write access to the primary calendar that should hold the events.
  • A connected Gmail account that will be the From address on the confirmation emails.
  • A Google Sheet with columns Title, Description, Start (ISO 8601), End (ISO 8601), Attendees (comma-separated emails), and Location.
How can I customize it?
  • Point the trigger at a different spreadsheet, tab, or column layout if your operations team already maintains one.
  • Swap the primary calendar for a shared team calendar, or branch by row to write to different calendars per program.
  • Edit the Gmail body template to match your brand voice, add a join link column, or attach an .ics file.
  • Toggle the Calendar sendUpdates flag between all, externalOnly, or none if you do not want Google to send its own invites.

Frequently asked questions

What columns does the Google Sheet need?
Six columns in this order: Title, Description, Start (ISO 8601), End (ISO 8601), Attendees (comma-separated emails), and Location. The workflow maps each column directly to the Google Calendar event payload.
Does this send the Google Calendar invite and a separate Gmail email?
Yes. Google Calendar sends the native invite via sendUpdates so attendees can RSVP, and the workflow then sends a separate plain-text Gmail confirmation with the time, location, and a link to the created event.
Why is this a code workflow instead of an agent?
Every step is deterministic. One trigger, two actions, and a fixed column-to-field mapping with no judgment calls. Code mode runs the same node graph every time, which is cheaper and more predictable than an agent.
Can I use a calendar other than my primary one?
Yes. Change the calendar id in the Google Calendar Create Event step to any calendar the connected account can write to, including a shared team calendar.
What happens if a row has a malformed date or missing attendees?
The Google Calendar API will reject events with invalid Start or End values. Validate your sheet's date format before populating rows, or add a guard step to skip rows that fail validation.

Stop hand-creating calendar invites from your event spreadsheet.

Connect Google Sheets, Google Calendar, and Gmail once, and every new row turns into a real invite and a confirmation email.