Enrich Google Calendar events with Granola notes and open Linear issues

By General Input

When a Granola note lands, append the recap to the original Google Calendar event and file Linear issues for every action item with an owner.

Integrations

  • Granola
  • Google Calendar
  • Linear

Type

Agentic Task

Categories

  • Operations
  • Engineering

Build me an agent workflow that runs every time a new Granola meeting note is created, enriches the original Google Calendar event with the recap, and opens Linear issues for the action items.

Trigger: poll Granola for the new_note event.

When a note arrives, do the following:

1. Call Granola Get Note with the note id to fetch the full payload: summary, decisions, action items (with assignee email when present), attendees, and meeting start and end time. If the note is empty (no decisions and no action items), stop. This skips informal or internal-only meetings so we do not spam Linear.

2. Find the original Google Calendar event. Prefer the calendar event reference returned by Granola when it is present. Otherwise call Google Calendar List Events on my primary calendar, filtered by a time window around the note's meeting start (a few minutes on either side), and pick the event whose attendee emails best match the note's attendees. If nothing matches, log it and skip the calendar update step but still continue to Linear.

3. Append a Meeting Notes section to the event description using Google Calendar Patch Event (partial update). Do not replace the description. Take whatever description already exists and append a clearly labelled section that contains the summary, the list of decisions, and the list of action items with their owners. Leave a divider above the section so it is easy to scan when someone reopens the calendar entry.

4. For each action item that has an assignee email, create a Linear issue. Use Linear List Users to map the email to a Linear user id; if there is no match, create the issue unassigned and include the email in the description so a human can reassign. Use Linear List Teams to resolve the team to file into: default to my main engineering team, but allow me to override per meeting (for example, route product-flavored meetings to the Product team). Set the issue title to the action item text, and the description to a short block that includes the meeting title, the meeting date, the assignee email, and a link back to the Google Calendar event. Use Linear Create Issue to file it.

5. Skip any action item without an assignee. Do not create catch-all tickets.

Notes on behavior: be idempotent. If the same Granola note fires twice, do not double-append to the calendar description and do not create duplicate Linear issues. Use the Granola note id as a dedupe key. If a Linear API call fails, retry once and then surface the error in the run log without blocking the rest of the action items.

Related prompts

Explore more prompts
Front desk appointment confirmation board for the next 3 daysCatch feature flags that never got switched on in productionWeekly alert noise review board for incident.io on-callMorning triage board for your Kernel browser agent runsTrack every half finished LaunchDarkly rollout in one boardAppointment confirmation board built on WhatsApp repliesFind the customers stuck contacting support again and againTurn shipped Linear work into Intercom product announcementsPlan a field sales day around drive time and neglected accountsVoice agent QA review board for your Hume EVI calls