Automate GitHub + Google Calendar
Where the code — and half the process — lives. 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.
First-Pass Reviewer is a ready-made agent built around GitHub; point its last step at Google Calendar to finish this hand-off.
Automations teams run
Each of these runs with a reasoning step between the two tools, so what reaches Google Calendar is a decision about the GitHub event rather than a transcription of it.
When a PR opens or merges in GitHub…
…an agent can create or move events in Google Calendar — after reading the context and deciding it should.
When an issue is filed in GitHub…
…an agent can add agendas to invites in Google Calendar — after reading the context and deciding it should.
When a release is cut in GitHub…
…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 comment on PRs and issues in GitHub — with the reasoning recorded in the run’s receipt.
When a meeting is created in Google Calendar…
…an agent can open issues with structured detail in GitHub — with the reasoning recorded in the run’s receipt.
When a day begins in Google Calendar…
…an agent can draft release notes in GitHub — with the reasoning recorded in the run’s receipt.
The GitHub and Google Calendar hand-off, setup template
Start with the github-api node and the google-calendar-api node. Configure the GitHub source payload, the agent input, and the Google Calendar 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": "0867cf94-dda2-492c-a803-ed1e75eecd20",
"name": "GitHub → Google Calendar",
"nodes": [
{
"id": "958b069d-97a6-4457-a24a-0d569a0bf53e",
"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": "292923d6-2511-422a-a55d-7d2edf23c4dc",
"text": "Read GitHub",
"x": 512,
"y": 336,
"isEditing": false,
"type": "github-api",
"icon": "connect",
"category": "action",
"isSelected": false,
"parameters": {
"action": "GET_AUTHENTICATED_USER",
"owner": "CONFIGURE_OWNER",
"repo": "CONFIGURE_REPO"
},
"description": "Setup template for GitHub API. Interact with GitHub: repos, branches, files, issues, comments, pull requests, reviews, releases, Actions/CI, and search. Configure credentials, inputs and output mapping before use.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
},
{
"id": "b0fcadce-434f-4872-a420-191e7fd35464",
"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 GitHub 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": "446aa280-7be2-4428-a692-3ef823567c58",
"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": "b2dd44df-5cf6-4055-ab34-25d4f11d91da",
"start": {
"id": "958b069d-97a6-4457-a24a-0d569a0bf53e",
"type": "output"
},
"end": {
"id": "292923d6-2511-422a-a55d-7d2edf23c4dc",
"type": "input"
},
"startX": 800,
"startY": 168,
"endX": 512,
"endY": 360
},
{
"id": "2d75b75a-7bab-437b-a276-f0b332e61eba",
"start": {
"id": "292923d6-2511-422a-a55d-7d2edf23c4dc",
"type": "output"
},
"end": {
"id": "b0fcadce-434f-4872-a420-191e7fd35464",
"type": "input"
},
"startX": 800,
"startY": 360,
"endX": 512,
"endY": 552
},
{
"id": "d6853459-9197-4456-a635-6e63ef6fe4e4",
"start": {
"id": "b0fcadce-434f-4872-a420-191e7fd35464",
"type": "output"
},
"end": {
"id": "446aa280-7be2-4428-a692-3ef823567c58",
"type": "input"
},
"startX": 800,
"startY": 552,
"endX": 512,
"endY": 744
}
],
"zoomLevel": 1,
"canvasOffsetX": 0,
"canvasOffsetY": 0,
"isTinyNodeMode": false
}
Configure GitHub API
Interact with GitHub: repos, branches, files, issues, comments, pull requests, reviews, releases, Actions/CI, and search.
- action — The action to perform on GitHub Current example:
GET_AUTHENTICATED_USER. - owner — The owner of the repository (not needed for account-level or search actions) Current example:
CONFIGURE_OWNER. - repo — The name of the repository (for CREATE_REPO: the name of the new repository) Current example:
CONFIGURE_REPO.
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 First-Pass Reviewer
First-Pass Reviewer is a working agent built around GitHub. 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
- Get AGNT Community Core. Free, local, no sign-up needed to run a workflow.
- Add both connections to the vault — GitHub takes one OAuth sign-in, Google Calendar takes one OAuth sign-in.
- Configure the nodes above, or start from a marketplace workflow and edit it. The agent in the middle is the part worth spending time on.
- Run it once with an approval gate in place. The receipt tells you what it read, what it concluded, and what it changed in Google Calendar.
GitHub and Google Calendar — common questions
Can I connect GitHub to Google Calendar without writing code?
No code is required. Add both connections in the vault (GitHub uses one OAuth sign-in, Google Calendar uses one OAuth sign-in), then either install a marketplace workflow for this pair or drag the two nodes onto the canvas and put an agent between them.
How is this different from a field-mapping GitHub to Google Calendar automation?
Mapping tools move data; this reasons about it. Rather than copying a field into Google Calendar, the agent can weigh what arrived from GitHub, classify it against criteria you wrote in prose, draft something new, and act only when it is warranted.
Does my GitHub 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: GitHub, Google Calendar, and your chosen model provider — which can be a local one.
What does a GitHub and Google Calendar run leave behind?
Every run is recorded end to end — the GitHub items examined, the decision and its reasoning, the resulting Google Calendar write. That record is what makes it reasonable to let this run unattended, and what lets you widen its remit on evidence.