Opening Problem Statement
Meet Lisa, an event coordinator managing dozens of meetings and appointments weekly. She records every event detail in a Google Sheet but often forgets to manually add these events to Google Calendar, leading to double bookings and missed meetings. This manual process wastes hours each week, creates scheduling errors, and stresses her team. Lisa needs a streamlined way to automatically transfer her detailed event data from Google Sheets directly into her Google Calendar with zero manual effort.
What This Automation Does
This n8n workflow automates the entire event creation process from Google Sheets to Google Calendar. When it runs, it:
- Detects new rows added to a specified Google Sheet containing event information.
- Extracts the latest event data, including event name, description, location, and the start date.
- Formats the event start date into the correct ISO format required by Google Calendar using a Function (Code) node.
- Creates an all-day event in Google Calendar with the extracted details.
- Sets the event’s background color and marks it as “Available” (transparent) for attendees.
- Allows guests permission to invite others to the event.
By automating this, Lisa eliminates manual entry errors, saves hours weekly, and ensures her calendar is always up to date.
Prerequisites ⚙️
- n8n account (cloud or self-hosted) 🔑
- Google Sheets account with the event data sheet 📊
- Google Calendar account connected to n8n 📅
- Google Sheets Trigger node configured to monitor the target Sheet ⏱️
- Basic knowledge of separating date formats (optional but helpful) 💬
Step-by-Step Guide
Step 1: Connect Google Sheets Trigger to Monitor New Events
In n8n, click “+ New Workflow”. Add the Google Sheets Trigger node named New Event Entry Listener.
Configure it as follows:
– Select your Google account under credentials.
– Set the trigger event to rowAdded to detect when a new event row is added.
– Choose your Spreadsheet and Sheet (Sheet1) to monitor.
– Set polling frequency to every minute.
You should now have real-time every-minute monitoring of new event entries.
Common mistake: Forgetting to select the correct Sheet or document will prevent new entries from being detected.
Step 2: Use Function Node to Format Event Dates
Add a Function node called Event Date Formatter right after the trigger.
Paste the following JavaScript code to parse and format the start date received from Google Sheets into ISO format:
// Get the last item from the input data
const lastEvent = items[items.length - 1].json;
// Extract event information
const eventName = lastEvent["Event Name"];
const eventDescription = lastEvent["Event Description"];
const currentYear = new Date().getFullYear();
const location = lastEvent["Location"];
// Ensure the date includes the current year
const formatDateWithYear = (dateStr) => {
return dateStr.includes(currentYear) ? dateStr : `${dateStr} ${currentYear}`;
};
// Format start date
const startDateString = formatDateWithYear(lastEvent["Event Start Date"]);
// Convert to Date object
const startDate = new Date(startDateString);
// Format to ISO (YYYY-MM-DD)
const formattedStartDate = startDate.toISOString().split("T")[0];
// Return formatted data
return [{
json: {
eventName,
eventDescription,
startDate: formattedStartDate,
location
}
}];
>You should see the event date correctly formatted for Google Calendar’s requirements.
Common mistake: Not including the current year in event dates can cause events to default to wrong dates.
Step 3: Create Event in Google Calendar
Add the Google Calendar node called Google Calendar Event Creator connected after the Function node.
Configure:
- Start date and end date set to
{{ $json.startDate }}from the previous node. - Set the calendar to your target calendar.
- Enable all-day event by setting allday to true.
- Fill in summary (event name), description, and location from attributes passed in.
- Set “Show me as” to transparent to mark availability.
- Assign color code “3” for event color.
- Allow guests to invite others.
After activation, newly added rows in Google Sheets automatically generate events in your Google Calendar.
Common mistake: Selecting incorrect calendar or missing required fields can cause event creation to fail.
Customizations ✏️
- Change Event Status: In the Google Calendar node, adjust “showMeAs” from “transparent” to “busy” to reflect your real availability.
- Set Different Event Colors: Change the “color” field to match different event types, e.g., “1” for red, “2” for blue.
- Add End Time: Modify the Function node to parse and add an end date/time to create timed events rather than all-day.
- Automate Reminders: In the Google Calendar node, add a reminder notification under “additionalFields”.
Troubleshooting 🔧
Problem: “No new rows detected by Google Sheets Trigger.”
Cause: Incorrect sheet or document ID selected or polling frequency too long.
Solution: Verify Sheet and document IDs in the Google Sheets Trigger node. Set polling to every minute for near real-time detection.
Problem: “Date format incorrect causing event creation failure.”
Cause: Input dates missing year or in wrong format.
Solution: Use the Function node code exactly as provided to append the current year and convert to ISO format.
Pre-Production Checklist ✅
- Verify Google Sheets Trigger connects to the correct spreadsheet and sheet.
- Test adding a dummy event row in Google Sheets to trigger the workflow.
- Confirm that the Function node formats dates correctly (date appears as YYYY-MM-DD).
- Ensure Google Calendar node creates the event with all intended fields visible.
- Backup your Google Sheet data before active use.
Deployment Guide
Activate the workflow toggle in n8n and let the Google Sheets Trigger monitor for new rows every minute. Review n8n’s execution logs to ensure smooth operations. This workflow does not need complex infrastructure, so you can run it easily on the n8n cloud or your self-hosted instance (consider self-hosting with Hostinger for affordability).
Conclusion
By implementing this workflow, Lisa fully automates event creation between Google Sheets and Google Calendar, saving her hours per week and greatly reducing scheduling errors. This hands-off integration improves her team’s efficiency and calendar accuracy instantly.
Next, you might explore automating calendar invites via Gmail for event notifications or adding Slack notifications for new events in Google Sheets. Enjoy your new streamlined event management!