{"product_id":"google-sheets-to-live-ical-feed-for-google-apple-outlook","title":"Google Sheets to Live iCal Feed for Google, Apple \u0026 Outlook","description":"\u003ch3\u003eTurn a Google Sheet into a live iCal calendar feed—instantly\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow generates a token-protected \u003cstrong\u003eiCalendar (.ics)\u003c\/strong\u003e feed from a Google Sheets \u003cstrong\u003eevents\u003c\/strong\u003e tab, so users can subscribe in \u003cstrong\u003eGoogle Calendar\u003c\/strong\u003e, \u003cstrong\u003eApple Calendar\u003c\/strong\u003e, and \u003cstrong\u003eOutlook\u003c\/strong\u003e using a live calendar URL.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eReceives webhook requests\u003c\/strong\u003e for \u003ccode\u003ecalendar.ics\u003c\/code\u003e and checks the \u003ccode\u003e?token=\u003c\/code\u003e query parameter against a configured \u003cstrong\u003efeed_token\u003c\/strong\u003e secret.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eServes fast responses\u003c\/strong\u003e by using short-lived cached .ics output from workflow static data when the cache is still fresh.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eReads events from Google Sheets\u003c\/strong\u003e (sheet tab name: \u003ccode\u003eevents\u003c\/code\u003e) when the cache is stale—while continuing gracefully even if the sheet read errors.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eValidates and normalizes events\u003c\/strong\u003e per row (e.g., all-day vs timed events, supported status values, and a past\/future time window). Malformed or out-of-window entries are dropped.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRenders an RFC 5545-compliant iCalendar\u003c\/strong\u003e response with correct escaping, \u003cstrong\u003eCRLF\u003c\/strong\u003e line endings, and \u003cstrong\u003eUTC timestamps\u003c\/strong\u003e. It can also add an optional “feed health” event.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eFail-safe behavior\u003c\/strong\u003e: returns the last known good calendar if sheet read\/render fails, and responds with \u003cstrong\u003e404\/503\u003c\/strong\u003e for unauthorized or unavailable requests.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003ePublish recurring and scheduled events from a team-maintained \u003cstrong\u003eGoogle Sheet\u003c\/strong\u003e as a live calendar everyone can subscribe to.\u003c\/li\u003e\n  \u003cli\u003eKeep calendar updates automated for \u003cstrong\u003eOutlook\u003c\/strong\u003e and \u003cstrong\u003eApple Calendar\u003c\/strong\u003e without manually exporting .ics files.\u003c\/li\u003e\n  \u003cli\u003eRun an internal event calendar for SaaS operations, support, or onboarding that stays synced via iCal.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eNodes \/ building blocks:\u003c\/strong\u003e \u003cem\u003ewebhook\u003c\/em\u003e, \u003cem\u003eif\u003c\/em\u003e, \u003cem\u003eset\u003c\/em\u003e, \u003cem\u003ecode\u003c\/em\u003e, \u003cem\u003esticky note\u003c\/em\u003e, and \u003cstrong\u003eGoogle Sheets\u003c\/strong\u003e read.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRequired sheet:\u003c\/strong\u003e a tab named \u003ccode\u003eevents\u003c\/code\u003e with headers such as \u003ccode\u003euid\u003c\/code\u003e, \u003ccode\u003etitle\u003c\/code\u003e, \u003ccode\u003estart_date\u003c\/code\u003e, \u003ccode\u003estart_time\u003c\/code\u003e, \u003ccode\u003eend_date\u003c\/code\u003e, \u003ccode\u003eend_time\u003c\/code\u003e, \u003ccode\u003elocation\u003c\/code\u003e, \u003ccode\u003edescription\u003c\/code\u003e, \u003ccode\u003estatus\u003c\/code\u003e, \u003ccode\u003eupdated_at\u003c\/code\u003e, and \u003ccode\u003errule\u003c\/code\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eSecurity:\u003c\/strong\u003e configure a long random \u003ccode\u003efeed_token\u003c\/code\u003e for \u003ccode\u003e?token=\u003c\/code\u003e access.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":45738513236147,"sku":"N8N-17548","price":73.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/fQCKSzHfgfZrQ7lybc6oz_A6kltaj0.png?v=1785229670","url":"https:\/\/buyflowscripts.com\/products\/google-sheets-to-live-ical-feed-for-google-apple-outlook","provider":"N8N Commerce","version":"1.0","type":"link"}