How to Create Google Calendar Events from a Jinba Workflow

How to Create Google Calendar Events from a Jinba Workflow

Summary

  • Jinba’s Google Calendar connector supports two tools — GOOGLE_CALENDAR_FIND_EVENT and GOOGLE_CALENDAR_CREATE_EVENT — with no update or delete operations.
  • Authenticate once through OAuth in the Jinba secrets dashboard, then reference the token as {{secrets.YOUR_GOOGLE_OAUTH_TOKEN}} in each calendar tool call.
  • Use the find-then-create pattern: query the target time window first, and create an event only if that window is empty to reduce double-booking risk.
  • All date/time values must be ISO 8601 UTC format; add timeZone for clarity, and specify calendar_id as primary or the calendar’s specific ID.
  • For no-code calendar automation from forms, tickets, or internal requests, Jinba Flow lets you build and deploy this workflow in days.

To create a Google Calendar event from a Jinba workflow, use GOOGLE_CALENDAR_CREATE_EVENT with a Google OAuth token passed via config: token, and provide calendar_id, summary, start, and end as inputs. Before creating, run GOOGLE_CALENDAR_FIND_EVENT against the target time window. The workflow is complete when the event exists and is retrievable.

Manual calendar entry is a known bottleneck for teams that handle recurring scheduling tasks. Connecting form submissions, support tickets, or internal requests to a calendar requires stepping outside the source system, translating the data, and entering it by hand. Each step adds latency and introduces error.

Jinba's Google Calendar connector closes that gap. Two tools handle the core workflow: one finds events, one creates them. The sections below walk through each step.

Step 1: Connect Jinba to Google Calendar

Authentication uses OAuth. The credential is stored once in the Jinba secrets dashboard at flow.jinba.io/workspace/secrets, then referenced by every Google Calendar tool call in the workflow.

To set this up:

  1. Open flow.jinba.io/workspace/secrets.
  2. Authenticate with the Google account that owns the calendar.
  3. Jinba generates and stores the OAuth token.
  4. Reference it in any Google Calendar tool call using {{secrets.YOUR_GOOGLE_OAUTH_TOKEN}}.

Every tool call in the workflow that touches Google Calendar passes the token in the config block:

- tool: GOOGLE_CALENDAR_CREATE_EVENT
config:
token: "{{secrets.YOUR_GOOGLE_OAUTH_TOKEN}}"

The same secrets pattern applies to other connectors in the Jinba catalog, including Slack and LINE, so multi-tool workflows use a consistent credential model across every integration.

Step 2: Check the Time Window with GOOGLE_CALENDAR_FIND_EVENT

Before writing an event, query the target window. GOOGLE_CALENDAR_FIND_EVENT returns a list of events that fall within a specified range. A conditional step then routes the workflow based on whether that list is empty.

The tool accepts these inputs:

  • calendar_id: The calendar to search. Use primary for the account's default calendar.
  • time_min: Start of the search window, in ISO 8601 UTC format (e.g., 2025-02-15T14:00:00Z).
  • time_max: End of the search window, in ISO 8601 UTC format (e.g., 2025-02-15T15:00:00Z).
  • query (optional): A text filter, such as an attendee email or a keyword from the event summary.

- name: CheckForConflicts
tool: GOOGLE_CALENDAR_FIND_EVENT
config:
token: "{{secrets.YOUR_GOOGLE_OAUTH_TOKEN}}"
input:
calendar_id: primary
time_min: "2025-02-15T14:00:00Z"
time_max: "2025-02-15T15:00:00Z"

If the returned list is empty, the workflow proceeds to create the event. If it is not empty, the workflow routes to a conflict notification instead.

One constraint to state clearly: because GOOGLE_CALENDAR_FIND_EVENT and GOOGLE_CALENDAR_CREATE_EVENT are two independent tool calls with no documented reservation or lock between them, this is a find-then-create pattern. It significantly reduces the chance of a double-booking, but it does not provide an atomic guarantee against one.

Step 3: Create the Event with GOOGLE_CALENDAR_CREATE_EVENT

When the time window is clear, GOOGLE_CALENDAR_CREATE_EVENT writes the event to the calendar. All date-time values must be in ISO 8601 format.

Required inputs:

  • calendar_id: The target calendar. primary refers to the authenticated account's default calendar.
  • summary: The event title.
  • start: An object with a dateTime field in ISO 8601 format.
  • end: An object with a dateTime field in ISO 8601 format.

Optional but recommended:

  • description: A longer event description.
  • timeZone: Specified per start and end to avoid ambiguity across regions.

A complete tool call looks like this:

- name: CreateCalendarEvent
tool: GOOGLE_CALENDAR_CREATE_EVENT
config:
token: "{{secrets.YOUR_GOOGLE_OAUTH_TOKEN}}"
input:
calendar_id: primary
summary: "Client Onboarding Call"
description: "Discuss project goals and next steps with the client."
start:
dateTime: "2025-02-15T14:00:00Z"
timeZone: "America/Los_Angeles"
end:
dateTime: "2025-02-15T15:00:00Z"
timeZone: "America/Los_Angeles"

The connector supports GOOGLE_CALENDAR_CREATE_EVENT and GOOGLE_CALENDAR_FIND_EVENT. There are no tools for updating or deleting events. Workflows that need to modify or remove an existing event currently require a different approach.

Step 4: Send a Confirmation Notification

Once the event is created, routing a confirmation closes the loop. Jinba's connector catalog includes tools for Slack, LINE, Microsoft Teams, Gmail, and Twilio, all following the same secrets-based authentication pattern.

Slack is the most common choice for team-facing notifications. SLACK_POST_MESSAGE requires a Bot User OAuth Access Token, stored as {{secrets.SLACK_BOT_TOKEN}}, and takes channel and text as inputs:

- name: NotifySlack
tool: SLACK_POST_MESSAGE
config:
token: "{{secrets.SLACK_BOT_TOKEN}}"
input:
channel: "#scheduling-alerts"
text: "Event created: 'Client Onboarding Call' at 2025-02-15T14:00:00Z"

LINE works for direct user-facing confirmations. LINE_SEND_MESSAGE requires a LINE Channel Access Token and takes to (the recipient's LINE user ID) and message as inputs:

- name: NotifyLINE
tool: LINE_SEND_MESSAGE
config:
token: "{{secrets.LINE_CHANNEL_ACCESS_TOKEN}}"
input:
to: "U1234567890abcdef"
message: "Your appointment 'Client Onboarding Call' has been scheduled for Feb 15 at 2 PM."

The choice of notification channel depends on the audience. Use Slack for internal operations teams, LINE for customer-facing confirmations in markets where LINE is the primary messaging platform.

Putting It Together: A Full Workflow Example

A common use case for this google calendar automation pattern is processing Google Form submissions. Form responses land in a linked Google Sheet, which a Jinba trigger monitors. Each new row is treated as a scheduling request.

The full workflow runs in four steps:

  1. Trigger: A new row appears in the Google Sheet linked to the form. The row contains the event summary, date, and time window.
  2. Find: GOOGLE_CALENDAR_FIND_EVENT queries the target window using time_min and time_max derived from the form data.
  3. Create: If the result list is empty, GOOGLE_CALENDAR_CREATE_EVENT writes the event using the summary, description, and time values from the same row. If the result list is not empty, the workflow routes to a Slack or LINE message flagging the conflict instead.
  4. Notify: SLACK_POST_MESSAGE posts a confirmation to the relevant channel, referencing the event summary and start time from the created event's output.

This sequence replaces the manual step of opening Google Calendar, entering the event details, and posting in a team channel. The same data that arrives in the form drives every downstream action.

Comparing This Approach to Google Apps Script

Google Apps Script is the native scripting environment for Google Workspace. It offers full CRUD access to Google Calendar, meaning it can create, read, update, and delete events. Sharing and maintaining scripts across a team introduces ownership complexity, and the approach requires programming knowledge to set up and modify.

Jinba handles the same create-and-find operations without code. Credentials are managed centrally, connectors are pre-built, and the workflow is visible as a structured configuration rather than a script file. For teams that need full update and delete capabilities, Apps Script remains the appropriate tool. For teams that need to create events from external triggers and route confirmations across Slack, LINE, or other platforms, the Jinba connector approach is faster to deploy and easier to maintain.

What to Know Before Building

A few constraints to confirm before building the workflow:

  • The Jinba Google Calendar connector supports GOOGLE_CALENDAR_CREATE_EVENT and GOOGLE_CALENDAR_FIND_EVENT only. Update and delete operations are not available.
  • All start and end values must be in ISO 8601 UTC format. Omitting the timezone offset is a common source of scheduling errors across regions.
  • The calendar_id value primary refers to the default calendar of the authenticated Google account. To write to a shared or secondary calendar, use that calendar's specific ID.
  • The find-then-create pattern reduces but does not eliminate double-booking risk. For high-volume scheduling where conflicts carry significant cost, consider additional logic to handle the edge case.

The four-step structure, authenticate, find, create, notify, is the core of any Google Calendar integration built on Jinba. From that base, teams can extend the workflow with any connector in the catalog, route notifications to different channels based on event type, or connect multiple calendar checks in sequence. Start with the secrets dashboard, confirm the OAuth token is in place, and the rest of the workflow follows from there.

Frequently Asked Questions

What Google Calendar tools are available in Jinba?

Jinba currently supports two Google Calendar tools: GOOGLE_CALENDAR_FIND_EVENT and GOOGLE_CALENDAR_CREATE_EVENT. The find tool searches a specified time window and returns matching events, while the create tool writes a new event to the target calendar. Update and delete operations are not available in the current connector.

How do I connect Jinba to Google Calendar?

Connect Jinba to Google Calendar by authenticating with the Google account in the Jinba secrets dashboard at flow.jinba.io/workspace/secrets. Jinba generates and stores an OAuth token, which you reference in each Google Calendar tool call as {{secrets.YOUR_GOOGLE_OAUTH_TOKEN}} within the tool's config block.

What date and time format does the Google Calendar connector require?

All start and end values must use ISO 8601 UTC format, such as 2025-02-15T14:00:00Z. For regional clarity, you can also include a timeZone field for each start and end object, which helps prevent scheduling errors across time zones.

Can Jinba create events on a shared Google Calendar?

Yes, Jinba can create events on a shared or secondary Google Calendar as long as the authenticated Google account has access to that calendar. Instead of using calendar_id: primary, pass the specific calendar ID for the shared calendar in the GOOGLE_CALENDAR_CREATE_EVENT or GOOGLE_CALENDAR_FIND_EVENT input.

How do I prevent double bookings when creating Google Calendar events in Jinba?

Use the find-then-create pattern: first run GOOGLE_CALENDAR_FIND_EVENT against the target time window, then configure the workflow to create an event only if the result list is empty. This significantly reduces the chance of a double booking, but it is not an atomic lock, so high-volume scheduling may require additional conflict-handling logic.

Does Jinba support updating or deleting Google Calendar events?

No, Jinba's Google Calendar connector currently supports only finding and creating events. If your workflow needs to update or delete an existing event, use Google Apps Script or make those changes directly in Google Calendar until those operations are added to the connector.

How do I send a confirmation after creating a Google Calendar event?

Add a notification step after the create step using one of Jinba's messaging connector tools, such as SLACK_POST_MESSAGE, LINE_SEND_MESSAGE, Microsoft Teams, Gmail, or Twilio. For example, SLACK_POST_MESSAGE can post a confirmation to a team channel, while LINE_SEND_MESSAGE can send a direct message to a customer or recipient.

How do I automate Google Calendar event creation from Google Forms?

Connect your Google Form to a Google Sheet, then use the Jinba trigger for new spreadsheet rows to start the workflow. Each new form response supplies the summary, date, and time window, which the workflow passes to GOOGLE_CALENDAR_FIND_EVENT for a conflict check and then to GOOGLE_CALENDAR_CREATE_EVENT to create the event if the window is clear.

When should I use Jinba instead of Google Apps Script for Google Calendar automation?

Choose Jinba when you need a no-code, maintainable workflow that creates Google Calendar events from external triggers and sends notifications across Slack, LINE, or similar platforms. Google Apps Script remains better when you require full create, read, update, and delete control and are comfortable writing and maintaining scripts.

Build your way.

The AI layer for your entire organization.

Get Started