Google Sheets and Google Calendar Integrations

Krom Automation Pro connects to both Google Sheets and Google Calendar using a single Google service account.

Once the service account is configured, both integrations are available — Google Sheets gives you four actions for reading and writing spreadsheet data, and Google Calendar gives you one action for creating calendar events.

Requirements #

  • Krom Automation Pro installed and activated
  • A Google Cloud project with the Google Sheets API and Google Calendar API enabled
  • A service account JSON key file

Both integrations share the same credentials. You only need to set this up once.

Configuration #

Setting up a Google service account takes around 10 minutes. You only do this once.

Step 1: Create a Google Cloud project

  1. Go to console.cloud.google.com.
  2. Click the project dropdown at the top and select New Project.
  3. Give it a name like Krom Automation Integration and click Create.

Screenshot: Google Cloud Console new project creation screen.

Step 2: Enable the APIs

  1. With your project selected, go to APIs and Services > Library.
  2. Search for Google Sheets API and click Enable.
  3. Search for Google Calendar API and click Enable.

Screenshot: Google Cloud API Library with Google Sheets API selected and the Enable button highlighted.

Step 3: Create a service account

  1. Go to APIs and Services > Credentials.
  2. Click Create Credentials > Service Account.
  3. Give it a name like krom-automation-service-account and click Create and Continue.
  4. Skip the optional role and user access steps and click Done.

Screenshot: Service account creation form with name filled in.

Step 4: Generate a JSON key

  1. On the Credentials page, click on your newly created service account.
  2. Go to the Keys tab.
  3. Click Add Key > Create New Key.
  4. Select JSON and click Create. A JSON file downloads automatically.

Screenshot: Service account Keys tab showing the Add Key button.

Step 5: Add the key to Krom Automation

  1. Open the downloaded JSON file in a text editor and copy the entire contents.
  2. In your WordPress admin, go to Krom Automation > Settings.
  3. Find the Google settings section and paste the full JSON content into the Service Account JSON field.
  4. Click Save.

Screenshot: Krom Automation Settings page with the Service Account JSON field filled in.

Step 6: Share your Google Sheet or Calendar with the service account

The service account has its own email address (visible in the JSON file as client_email). You need to give it access to any Sheet or Calendar you want Krom Automation to interact with.

For Google Sheets: Open your Google Sheet, click Share, and add the service account email with Editor access.

For Google Calendar: Open Google Calendar, click the three dots next to your calendar, go to Settings and sharing, and add the service account email under Share with specific people with Make changes to events permission.

Screenshot: Google Sheets Share dialog with the service account email added as an Editor.

Google Sheets #

Available actions

Append Row Adds a new row at the bottom of a specified sheet with the values you provide.

FieldRequiredDescription
spreadsheet_idYesThe Google Sheet ID. Find this in the spreadsheet URL between /d/ and /edit.
sheet_nameYesThe name of the tab within the spreadsheet (e.g. Sheet1 or Orders).
row_valuesYesComma-separated values to write as a new row. Merge tags are supported. Each comma-separated value becomes a separate column.

Find Row Searches a column for a specific value and returns the data from the matched row.

FieldRequiredDescription
spreadsheet_idYesThe Google Sheet ID.
sheet_nameYesThe sheet tab name.
search_columnYesThe column letter to search in (e.g. A, B, C).
search_valueYesThe value to search for. Merge tags are supported.

The found row’s data is stored as a step output and available in subsequent actions using the configured output key.

Update Cell Updates the value of a specific cell or range in a Google Sheet.

FieldRequiredDescription
spreadsheet_idYesThe Google Sheet ID.
sheet_nameYesThe sheet tab name.
cell_rangeYesThe cell reference to update (e.g. A1, B5, or a range like A1:C1).
valueYesThe value to write. Merge tags are supported.

Clear Range Deletes all values from a specified cell range without deleting the cells themselves.

FieldRequiredDescription
spreadsheet_idYesThe Google Sheet ID.
sheet_nameYesThe sheet tab name.
rangeYesThe range to clear (e.g. A2:Z100).

Finding your spreadsheet ID

The spreadsheet ID is in the URL of your Google Sheet. Open the sheet in your browser and look at the URL:

https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms/

The bold section is your spreadsheet ID.

Google Sheets automation examples

Log every WooCommerce order Trigger: WooCommerce Order Completed Action: Google Sheets Append Row to your orders sheet with {{order_id}}, {{customer.email}}, {{customer.first_name}}, {{order.total}}, {{order.currency}}, {{order.date_created}} as comma-separated values.

Log form submissions for the sales team Trigger: Gravity Forms Form Submitted (filtered by form_id) Action: Google Sheets Append Row with the submitter’s name, email, message, and {{source_url}}.

Track new user registrations Trigger: User Registered Action: Google Sheets Append Row with {{user_id}}, {{user_email}}, {{first_name}}, {{last_name}}, {{user_registered}}.

Clear a reporting range on a schedule Trigger: Schedule (weekly, Monday 6:00 AM) Action: Google Sheets Clear Range to reset a weekly data range before new data is appended.

Pre-built Google Sheets templates

TemplateWhat it does
sheets-log-new-orderLogs new WooCommerce orders to a Google Sheet
sheets-log-form-submissionLogs form submissions to a Google Sheet
sheets-new-user-signupLogs new user registrations to a Google Sheet

Google Calendar #

Available action

Create Event Creates a new event on a specified Google Calendar.

FieldRequiredDescription
calendar_idYesThe Google Calendar ID. For your primary calendar, this is your Gmail address. For other calendars, find the ID in Calendar Settings > Integrate calendar > Calendar ID.
titleYesEvent title. Merge tags are supported.
descriptionNoEvent description. Merge tags are supported.
start_datetimeYesEvent start date and time in ISO 8601 format (e.g. 2025-06-15T14:00:00).
end_datetimeYesEvent end date and time in ISO 8601 format.
locationNoEvent location text.
attendeesNoComma-separated email addresses of attendees to invite.

Formatting datetimes: Use the {{current_date}} merge tag as a base and add time offsets in your action field, or pass a formatted datetime from a previous HTTP Request step that fetches a specific date.

Google Calendar automation examples

Create a calendar event for every new WooCommerce order Trigger: WooCommerce Order Created Action: Google Calendar Create Event with title Order #{{order_id}} — {{customer.first_name}} {{customer.last_name}}, the order date as start time, and a 1-hour duration.

Schedule a consultation from a form submission Trigger: Gravity Forms Form Submitted (filtered to your consultation booking form) Action: Google Calendar Create Event using the form’s date and time fields as start and end times, with the submitter’s email as an attendee.

Log course enrollment as a calendar event Trigger: LearnDash User Enrolled Action: Google Calendar Create Event with title {{user_display_name}} enrolled in {{course_title}} on the enrollment date.

Pre-built Google Calendar templates

TemplateWhat it does
gc-woo-order-eventCreates a Google Calendar event for each new WooCommerce order
gc-form-submission-eventCreates a calendar event on form submission

Troubleshooting on Google Sheets integration #

Google Sheets Append Row is failing

The most common cause is that the service account hasn’t been given Editor access to the spreadsheet. Open the sheet, click Share, and confirm the service account email (from the JSON file’s client_email field) is listed with Editor permission.

The spreadsheet ID looks wrong

Copy only the ID portion from the URL — the long alphanumeric string between /d/ and /edit. Don’t include any slashes, the d, or anything after /edit.

Google Calendar Create Event is failing

Confirm the service account has been shared with the calendar and has Make Changes to Events permission. Also confirm the start_datetime and end_datetime values are correctly formatted in ISO 8601 format — a common issue is passing a human-readable date string instead of an ISO-formatted one.

I get a permission error even though I shared the sheet

Confirm the APIs are enabled in your Google Cloud project. Both the Sheets API and Calendar API must be explicitly enabled — creating a service account alone doesn’t enable API access.

What are your feelings

Updated on August 18, 2026