Turn Typeform event sign-ups into calendar invites, emails, and a roster

Every Typeform registration triggers a calendar invite, a confirmation email, and a new row on your attendee roster. No copy-paste, no missed sign-ups.

Deterministic Code
TypeformGoogle CalendarGmailGoogle SheetsOperationsMarketingOnboarding AutomationEmail AutomationData Sync

Build me a code workflow that turns every Typeform event registration into a calendar invite, a confirmation email, and a row on my attendee roster. The flow is fully deterministic — every step has known inputs straight from the form payload, no judgement needed.

Trigger: a Typeform webhook on a new form_response. The form is my event registration form. The payload includes the respondent's name and email, plus answers to any custom questions I've added (e.g. dietary requirements, company, what they want to learn).

Step 1 — Google Calendar: Create Event on my primary calendar (calendarId configurable) with the event title, start time, end time, location, description, and a conferencing link. Add the respondent's email as an attendee so Google sends them the native calendar invite. The event metadata (title, time, location, link) should be config inputs on the workflow, not hardcoded, so I can reuse this for any event.

Step 2 — Gmail: Send a Message to the respondent's email with a formatted HTML confirmation. The email should include: the event title, date and time in their stated timezone if available (otherwise mine), the location or video link, a short "what to prepare" section, and a cancellation link (configurable URL). Subject line should be something like "You're registered for {{event title}}". From-name should be configurable.

Step 3 — Google Sheets: Append Values to my event roster sheet (spreadsheetId and sheetName configurable) with one new row containing: registration timestamp (from the Typeform submission), full name, email, and the answers to any custom questions on the form, in column order. Assume the sheet already has a header row I've set up.

Run all three steps in parallel where possible, since they don't depend on each other's output. If any step fails, log the error but don't block the other two — I'd rather get two out of three than nothing. Surface failures in the run history so I can retry.

Expose these as workflow inputs/config so I can change them without editing the workflow: event title, start time, end time, location, conferencing link, calendar id, sender name, cancellation URL, spreadsheet id, sheet tab name.

Additional information

What does this prompt do?
  • Listens for every new Typeform submission and treats it as an event registration.
  • Sends the registrant a Google Calendar invite with the event title, time, location, and conferencing link, so it lands on their calendar automatically.
  • Emails the registrant a formatted confirmation from your Gmail with the event details, what to prepare, and a cancellation link.
  • Adds a new row to your Google Sheets roster with name, email, registration time, and answers to any custom questions on the form.
What do I need to use this?
  • A Typeform account with a registration form set up and webhooks enabled.
  • A Google account with access to Google Calendar, Gmail, and Google Sheets.
  • Your event details (title, start and end time, location or video link) and the roster spreadsheet ready to receive rows.
How can I customize it?
  • Swap the email copy to match your brand voice, or add a different attachment like an agenda PDF.
  • Point the roster row at a different spreadsheet or sheet tab, and reorder columns to match your existing layout.
  • Adjust the calendar invite to include co-hosts as attendees, set a custom reminder, or change the conferencing link template.

Frequently asked questions

Do I need a paid Typeform plan to use this?
You need a plan that supports webhooks. Typeform offers webhooks on its Basic plan and above. Free plans do not include outgoing webhooks, so the trigger will not fire.
Will the registrant actually get a calendar invite they can accept?
Yes. We add their email as an attendee on the Google Calendar event, so they receive a native invite they can accept, decline, or add to any calendar app that supports standard invites.
Can I use this for multiple events on the same form?
Yes. If your form asks which event the registrant wants, the workflow can branch on that answer and route them to the right calendar event, the right email template, and the right roster tab.
What happens if the same person registers twice?
By default each submission creates a new calendar invite, email, and roster row. If you want to dedupe, you can add a check against the roster sheet to skip rows where the email already appears.
Where does the cancellation link go?
You set it. Most teams point it at a second Typeform that captures cancellations, a Calendly link, or a simple page on their site. Whatever URL you provide gets dropped into the confirmation email.

Stop hand-stitching every event sign-up.

Connect Typeform, Google Calendar, Gmail, and Google Sheets once, and every registration becomes a calendar invite, a confirmation email, and a roster row in seconds.