Automate Google Calendar + HubSpot
The shared clock your workflows can read and write. The CRM your pipeline reporting depends on. Put an agent between them and the hand-off stops being manual: it reads, decides, acts, and shows its work.
Meeting Follow-Through is a ready-made agent built around Google Calendar; point its last step at HubSpot to finish this hand-off.
Automations teams run
These are not field mappings. An agent reads the Google Calendar side, works out what it means, and only then decides what — if anything — should happen in HubSpot.
When an event starts or ends in Google Calendar…
…an agent can create and enrich contacts in HubSpot — after reading the context and deciding it should.
When a meeting is created in Google Calendar…
…an agent can update deals and notes in HubSpot — after reading the context and deciding it should.
When a day begins in Google Calendar…
…an agent can log activity in HubSpot — after reading the context and deciding it should.
When a contact or deal is created in HubSpot…
…an agent can create or move events in Google Calendar — with the reasoning recorded in the run’s receipt.
When a stage changes in HubSpot…
…an agent can add agendas to invites in Google Calendar — with the reasoning recorded in the run’s receipt.
When a form submits in HubSpot…
…an agent can block focus time in Google Calendar — with the reasoning recorded in the run’s receipt.
The Google Calendar and HubSpot hand-off, setup template
Start with the google-calendar-api node and a custom-api call to api.hubapi.com. Configure the Google Calendar source payload, the agent input, and the HubSpot operation. The sequential template does not implement conditional writes or approval by itself.
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": "fbf46d36-8271-4439-a2d9-62916bb8effa",
"name": "Google Calendar → HubSpot",
"nodes": [
{
"id": "4b922492-8534-4139-ae01-35c75c2f8e26",
"text": "Watch Google Calendar",
"x": 512,
"y": 144,
"isEditing": false,
"type": "google-calendar-new-event",
"icon": "connect",
"category": "trigger",
"isSelected": false,
"parameters": {
"calendarId": "CONFIGURE_CALENDARID"
},
"description": "Setup template for Google Calendar New Event. Listen for events created or updated on a Google Calendar and trigger the workflow. Configure credentials, inputs and output mapping before use.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
},
{
"id": "db36227e-24ed-4f6c-ad5e-40786e45ada8",
"text": "Review source and draft",
"x": 512,
"y": 336,
"isEditing": false,
"type": "agnt-agent",
"icon": "connect",
"category": "action",
"isSelected": false,
"parameters": {
"agentId": "CONFIGURE_AGENTID",
"message": "Read the Google Calendar item. Decide whether it warrants action in HubSpot, 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": "7cb3138b-723b-477d-afee-22d005a2b642",
"text": "Call HubSpot",
"x": 512,
"y": 528,
"isEditing": false,
"type": "custom-api",
"icon": "connect",
"category": "action",
"isSelected": false,
"parameters": {
"url": "https://api.hubapi.com/crm/v3/objects/contacts",
"method": "GET",
"authType": "None",
"query": "",
"headers": "{}"
},
"description": "Setup template for Custom API Request. This action node makes a custom API request to any endpoint with configurable method, headers, and authentication. Configure credentials, inputs and output mapping before use.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
}
],
"edges": [
{
"id": "fac525db-535a-47a6-a6e9-2dbfbdd82be0",
"start": {
"id": "4b922492-8534-4139-ae01-35c75c2f8e26",
"type": "output"
},
"end": {
"id": "db36227e-24ed-4f6c-ad5e-40786e45ada8",
"type": "input"
},
"startX": 800,
"startY": 168,
"endX": 512,
"endY": 360
},
{
"id": "60b74a40-1bc2-4d77-a562-153bc8b52826",
"start": {
"id": "db36227e-24ed-4f6c-ad5e-40786e45ada8",
"type": "output"
},
"end": {
"id": "7cb3138b-723b-477d-afee-22d005a2b642",
"type": "input"
},
"startX": 800,
"startY": 360,
"endX": 512,
"endY": 552
}
],
"zoomLevel": 1,
"canvasOffsetX": 0,
"canvasOffsetY": 0,
"isTinyNodeMode": false
}
Configure Google Calendar New Event
Listen for events created or updated on a Google Calendar and trigger the workflow.
- calendarId — Calendar ID to monitor (defaults to 'primary') Current example:
CONFIGURE_CALENDARID.
Configure Custom API Request
This action node makes a custom API request to any endpoint with configurable method, headers, and authentication.
- url — The URL of the API endpoint Current example:
https://api.hubapi.com/crm/v3/objects/contacts. - method — The HTTP method for the request Current example:
GET. - authType — The type of authentication Current example:
None. - query — Query parameters for the request (e.g., 'key1=value1&key2=value2') Current example:
. - headers — Optional headers for the request. e.g., {"Content-Type": "application/json"} Current example:
{}.
Install Meeting Follow-Through
Meeting Follow-Through is a working agent built around Google Calendar. Install it, point its last step at HubSpot, and you have this hand-off without building it from an empty canvas.
Runs on your own machine · See what it does
Build it in AGNT
- Install AGNT — it runs on your own machine and needs no account to start.
- Authorise HubSpot (one OAuth sign-in) and Google Calendar (one OAuth sign-in). Nothing is stored anywhere but your disk.
- Describe the job in plain language, or paste the definition above; google-calendar-api does the reading and custom-api the writing.
- Gate anything you would not want done unattended, then let it run and read the first receipt end to end.
Google Calendar and HubSpot — common questions
Can I connect Google Calendar to HubSpot without writing code?
You can build it entirely from the canvas. Authorise Google Calendar with one OAuth sign-in, HubSpot with one OAuth sign-in, then tell the agent what prep briefings before every meeting should look like once HubSpot is involved. Code is an option for the unusual cases, never a requirement for the common ones.
How is this different from a field-mapping Google Calendar to HubSpot automation?
A field mapping copies values and breaks on the first record nobody anticipated. The middle step here reads the Google Calendar item in full and decides — whether it matters, how to summarise it, and what belongs in HubSpot. Deciding to do nothing is a valid outcome, which no mapping can express.
Does my Google Calendar and HubSpot data leave my machine?
AGNT Community Core is local-first, so there is no vendor middleman holding your Google Calendar or HubSpot tokens. The runtime talks directly to both services. Choose a local model and the content of what it reads never leaves the machine at all.
What does a Google Calendar and HubSpot run leave behind?
You get an auditable trail rather than a success flag. It shows the Google Calendar context the agent worked from, the judgment it made about every inbound lead researched and scored, and the exact change applied in HubSpot, with approvals attached where you required them.