{"product_id":"n8n-workflow-replay-safe-kickoff-bookings-w-google-calendar-gmail","title":"n8n Workflow: Replay-Safe Kickoff Bookings w\/ Google Calendar \u0026 Gmail","description":"\u003ch3\u003eReplay-safe kickoff bookings that confirm with Google Calendar readback and prepare Gmail drafts\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow turns kickoff booking requests into \u003cstrong\u003econfirmed Google Calendar events\u003c\/strong\u003e—only after durable intent is recorded and \u003cstrong\u003ereplays are handled safely\u003c\/strong\u003e. It also prepares customer communication as a \u003cstrong\u003eGmail draft (no send)\u003c\/strong\u003e, so you can review and control every outgoing message.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eAuthenticates inbound requests\u003c\/strong\u003e by validating a POST webhook using the server-side \u003ccode\u003eBOOKING_INTAKE_TOKEN\u003c\/code\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eValidates the seven-field booking contract\u003c\/strong\u003e, including real civil dates and agreement on \u003cstrong\u003eoffset\/timezone\u003c\/strong\u003e, plus workflow 08 booking-UID derivation.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eDerives deterministic identity evidence\u003c\/strong\u003e for the request (request, parent-scope, intent, and provider identity) to support consistent outcomes.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eReads stable owner\/tag history\u003c\/strong\u003e and checks for replays. If it detects a changed request, it \u003cstrong\u003eholds it for review\u003c\/strong\u003e before any Calendar operation.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003ePersists and acknowledges \u003ccode\u003eintent_written\u003c\/code\u003e\u003c\/strong\u003e, then checks native \u003cstrong\u003eGoogle Calendar availability\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eCreates the event\u003c\/strong\u003e, validates the create result, fetches it by ID, and validates the provider readback.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003ePersists and acknowledges \u003ccode\u003econfirmed\u003c\/code\u003e\u003c\/strong\u003e, then creates a \u003cstrong\u003eGmail draft\u003c\/strong\u003e (attempted without sending) for the customer.\u003c\/li\u003e\n  \u003cli\u003eIf reconciliation requires it, the workflow uses a \u003cstrong\u003eget-only provider lookup\u003c\/strong\u003e—with \u003cstrong\u003eno create or retry path\u003c\/strong\u003e for unresolved intents.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eAutomation engineers need \u003cstrong\u003eidempotent scheduling\u003c\/strong\u003e for kickoff calls to prevent duplicate events.\u003c\/li\u003e\n  \u003cli\u003eSaaS operators want confirmed bookings with \u003cstrong\u003eCalendar readback validation\u003c\/strong\u003e and draft-only customer messaging.\u003c\/li\u003e\n  \u003cli\u003eTeams handling multi-step intake want changed requests \u003cstrong\u003eheld for review\u003c\/strong\u003e instead of blindly rescheduling.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003en8n nodes:\u003c\/strong\u003e \u003ccode\u003ewebhook\u003c\/code\u003e, \u003ccode\u003eif\u003c\/code\u003e, \u003ccode\u003eswitch\u003c\/code\u003e, \u003ccode\u003ecode\u003c\/code\u003e, \u003ccode\u003edata table\u003c\/code\u003e, \u003ccode\u003egmail\u003c\/code\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eData persistence:\u003c\/strong\u003e create a \u003cstrong\u003eBookings\u003c\/strong\u003e Data Table with mapped insert\/update columns, then \u003cstrong\u003ere-select it in every Data Table node\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eEnvironment variables:\u003c\/strong\u003e \u003ccode\u003eBOOKING_INTAKE_TOKEN\u003c\/code\u003e and \u003ccode\u003eBOOKING_CALENDAR_ID\u003c\/code\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eGoogle Calendar:\u003c\/strong\u003e availability, event create, created-event get by ID, and reconciliation get.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eGmail:\u003c\/strong\u003e \u003ccode\u003eCreate Confirmation Draft\u003c\/code\u003e (draft creation only; no sending).\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":45905432019123,"sku":"N8N-18741","price":16.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/8sZh5SEWF7HFTyVfMf-25_Uqm3SV3L.png?v=1787821745","url":"https:\/\/buyflowscripts.com\/products\/n8n-workflow-replay-safe-kickoff-bookings-w-google-calendar-gmail","provider":"N8N Commerce","version":"1.0","type":"link"}