Email × Scheduling
GmailGoogle CalendarAGNT

Automate Gmail + Google Calendar

The inbox most operations still start in. The shared clock your workflows can read and write. Put an agent between them and the hand-off stops being manual: it reads, decides, acts, and shows its work.

Install Inbox Triage → Get AGNT free

Inbox Triage is a ready-made agent built around Gmail; point its last step at Google Calendar to finish this hand-off.

Automations teams run

These are not field mappings. An agent reads the Gmail side, works out what it means, and only then decides what — if anything — should happen in Google Calendar.

When a new email arrives in Gmail…

…an agent can create or move events in Google Calendar — after reading the context and deciding it should.

When a label is applied in Gmail…

…an agent can add agendas to invites in Google Calendar — after reading the context and deciding it should.

When a thread goes unanswered in Gmail…

…an agent can block focus time in Google Calendar — after reading the context and deciding it should.

When an event starts or ends in Google Calendar…

…an agent can send or draft a reply in Gmail — with the reasoning recorded in the run’s receipt.

When a meeting is created in Google Calendar…

…an agent can apply labels and archive in Gmail — with the reasoning recorded in the run’s receipt.

When a day begins in Google Calendar…

…an agent can extract attachments and fields in Gmail — with the reasoning recorded in the run’s receipt.

Gmail to Google Calendar, setup template

Start with the gmail-api node and the google-calendar-api node. Configure the Gmail source payload, the agent input, and the Google Calendar operation. The sequential template does not implement conditional writes or approval by itself.

Gmail to Google Calendar: run on a schedule → read gmail → review source and draft → configure destination in google calendar TRIGGER trigger-timer Run on a schedule Configure activation ACTION gmail-api Read Gmail Configure inputs ACTION agnt-agent Review source and draft Configure inputs ACTION google-calendar-api Configure destination in Google Calendar Configure inputs
Setup template for Gmail and Google Calendar; verify data mapping and authorization using test accounts.
Gmail → Google CalendarSetup template · configure before activation

This is a schema-checked starting point, not an end-to-end tested automation. Replace every CONFIGURE_ value, choose the operations you intend, connect credentials and map source outputs into later inputs. An edge orders steps; it does not supply a condition, an approval gate or a field mapping. Add and test those controls explicitly before any write. Cloud APIs and model providers may receive data. Keep the workflow inactive until tested with fixtures.

{
  "id": "318dd66b-3753-422f-aece-5bccd6d29d22",
  "name": "Gmail → Google Calendar",
  "nodes": [
    {
      "id": "871ef09e-18bd-4c42-af16-9a1cbeb772a0",
      "text": "Run on a schedule",
      "x": 512,
      "y": 144,
      "isEditing": false,
      "type": "trigger-timer",
      "icon": "connect",
      "category": "trigger",
      "isSelected": false,
      "parameters": {
        "fireOnStart": "No",
        "scheduleType": "Interval",
        "schedule": "Every 15 Minutes"
      },
      "description": "Setup template for Timer Trigger. This trigger node fires the workflow at specified intervals or at a specific time. Configure credentials, inputs and output mapping before use.",
      "error": null,
      "isActive": false,
      "output": null,
      "outputs": {}
    },
    {
      "id": "e6390e90-fdc7-4271-afc6-9149e214b56e",
      "text": "Read Gmail",
      "x": 512,
      "y": 336,
      "isEditing": false,
      "type": "gmail-api",
      "icon": "connect",
      "category": "action",
      "isSelected": false,
      "parameters": {
        "operation": "Search and Read Emails",
        "searchQuery": "CONFIGURE_SEARCHQUERY",
        "maxResults": 1
      },
      "description": "Setup template for Gmail API. A powerful tool to send, reply, read, organize, and manage attachments in Gmail. Configure credentials, inputs and output mapping before use.",
      "error": null,
      "isActive": false,
      "output": null,
      "outputs": {}
    },
    {
      "id": "5b16967d-38f0-4ad6-ab3e-da193a94aaf8",
      "text": "Review source and draft",
      "x": 512,
      "y": 528,
      "isEditing": false,
      "type": "agnt-agent",
      "icon": "connect",
      "category": "action",
      "isSelected": false,
      "parameters": {
        "agentId": "CONFIGURE_AGENTID",
        "message": "Read the Gmail item. Decide whether it warrants action in Google Calendar, and explain why.\nSource input: CONFIGURE_SOURCE_INPUT. Produce a reviewable draft only; do not take external actions."
      },
      "description": "Setup template for Agent Chat. Chat with an AI agent from your agent library. Select an agent and send messages to interact with it within your workflow. Configure credentials, inputs and output mapping before use.",
      "error": null,
      "isActive": false,
      "output": null,
      "outputs": {}
    },
    {
      "id": "cdb464f7-e23e-4403-ae47-d5e0d967ef9a",
      "text": "Configure destination in Google Calendar",
      "x": 512,
      "y": 720,
      "isEditing": false,
      "type": "google-calendar-api",
      "icon": "connect",
      "category": "action",
      "isSelected": false,
      "parameters": {
        "action": "LIST_EVENTS",
        "calendarId": "CONFIGURE_CALENDARID",
        "timeMin": "CONFIGURE_TIMEMIN",
        "timeMax": "CONFIGURE_TIMEMAX",
        "searchQuery": "CONFIGURE_SEARCHQUERY",
        "maxResults": "CONFIGURE_MAXRESULTS"
      },
      "description": "Setup template for Google Calendar API. Interact with Google Calendar to manage events, check availability, and create Google Meet meetings. Configure credentials, inputs and output mapping before use.",
      "error": null,
      "isActive": false,
      "output": null,
      "outputs": {}
    }
  ],
  "edges": [
    {
      "id": "ae05dd72-687d-422b-a952-ea6fd5683d7a",
      "start": {
        "id": "871ef09e-18bd-4c42-af16-9a1cbeb772a0",
        "type": "output"
      },
      "end": {
        "id": "e6390e90-fdc7-4271-afc6-9149e214b56e",
        "type": "input"
      },
      "startX": 800,
      "startY": 168,
      "endX": 512,
      "endY": 360
    },
    {
      "id": "3c7b2700-75f4-4524-a4d1-e3645f90298c",
      "start": {
        "id": "e6390e90-fdc7-4271-afc6-9149e214b56e",
        "type": "output"
      },
      "end": {
        "id": "5b16967d-38f0-4ad6-ab3e-da193a94aaf8",
        "type": "input"
      },
      "startX": 800,
      "startY": 360,
      "endX": 512,
      "endY": 552
    },
    {
      "id": "7feb1698-a884-4985-a67e-852d179364de",
      "start": {
        "id": "5b16967d-38f0-4ad6-ab3e-da193a94aaf8",
        "type": "output"
      },
      "end": {
        "id": "cdb464f7-e23e-4403-ae47-d5e0d967ef9a",
        "type": "input"
      },
      "startX": 800,
      "startY": 552,
      "endX": 512,
      "endY": 744
    }
  ],
  "zoomLevel": 1,
  "canvasOffsetX": 0,
  "canvasOffsetY": 0,
  "isTinyNodeMode": false
}

Configure Gmail API

A powerful tool to send, reply, read, organize, and manage attachments in Gmail.

  • operation — The Gmail operation to perform. Current example: Search and Read Emails.
  • searchQuery — Optional. Gmail search query (e.g., 'from:user is:unread'). If blank, fetches latest emails. Current example: CONFIGURE_SEARCHQUERY.
  • maxResults — Maximum number of emails to return. Current example: 1.

Configure Google Calendar API

Interact with Google Calendar to manage events, check availability, and create Google Meet meetings.

  • action — The action to perform on Google Calendar Current example: LIST_EVENTS.
  • calendarId — Calendar ID (defaults to 'primary') Current example: CONFIGURE_CALENDARID.
  • timeMin — Lower bound (ISO 8601). Defaults to now. Current example: CONFIGURE_TIMEMIN.
  • timeMax — Upper bound (ISO 8601). Defaults to 7 days from now. Current example: CONFIGURE_TIMEMAX.
  • searchQuery — Free-text search across event fields Current example: CONFIGURE_SEARCHQUERY.
  • maxResults — Max events to return (default 25) Current example: CONFIGURE_MAXRESULTS.

Install Inbox Triage

Inbox Triage is a working agent built around Gmail. Install it, point its last step at Google Calendar, and you have this hand-off without building it from an empty canvas.

Runs on your own machine · See what it does

What building this looks like

  1. Download AGNT Community Core — free and local-first.
  2. Connect Gmail with one OAuth sign-in and Google Calendar with one OAuth sign-in; both land in the local vault.
  3. Start from a marketplace workflow, or drop gmail-api and google-calendar-api onto the canvas with an agent between them.
  4. Put an approval gate on anything consequential, then run it — the receipt shows what was read in Gmail and what was written to Google Calendar.

Gmail and Google Calendar — common questions

Can I connect Gmail to Google Calendar without writing code?

Yes. Gmail connects with one OAuth sign-in and Google Calendar with one OAuth sign-in, both from the local credential vault. You then describe the job in plain language — “when a new email arrives, create or move events” — and the agent handles the rest.

How is this different from a field-mapping Gmail to Google Calendar automation?

A field mapping copies values and breaks on the first record nobody anticipated. The middle step here reads the Gmail item in full and decides — whether it matters, how to summarise it, and what belongs in Google Calendar. Deciding to do nothing is a valid outcome, which no mapping can express.

Does my Gmail and Google Calendar data leave my machine?

Your credentials stay in a vault on your own disk rather than in someone else’s cloud. The only calls made are the ones the workflow needs: Gmail, Google Calendar, and your chosen model provider — which can be a local one.

What does a Gmail and Google Calendar run leave behind?

A receipt: what was read in Gmail, which tools ran with which arguments, what the agent concluded, and what it wrote to Google Calendar. Anything consequential can sit behind an approval gate so a person signs off before it happens.

Give AI a job. Get the proof.