Google Calendar + Gmail: meeting briefs in your inbox
You know the feeling: it’s 6 minutes before a call, you’re flipping between Calendar, LinkedIn, the company site, and a half-written doc. Then you join with a weak opener because you didn’t find the one thing that mattered.
Sales reps deal with this daily. Consultants feel it when they’re juggling clients back-to-back. And founders get hit too, because context-switching is exhausting. This meeting brief automation gets you a clean, skimmable email each morning, built from the meetings you actually have today.
You’ll set up an n8n workflow that checks your Google Calendar, researches each external company, and sends a Gmail briefing so you show up prepared without opening ten tabs.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: Google Calendar + Gmail: meeting briefs in your inbox
flowchart LR
subgraph sg0["Every morning @ 7 Flow"]
direction LR
n0@{ icon: "mdi:swap-vertical", form: "rounded", label: "Setup", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract company name", pos: "b", h: 48 }
n2@{ icon: "mdi:play-circle", form: "rounded", label: "Every morning @ 7", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter meetings", pos: "b", h: 48 }
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Format for email"]
n5@{ icon: "mdi:message-outline", form: "rounded", label: "Send news", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "No meetings today", pos: "b", h: 48 }
n7@{ icon: "mdi:location-exit", form: "rounded", label: "Get meetings for today", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "Research Company/ Person", pos: "b", h: 48 }
n0 --> n7
n3 --> n1
n3 --> n6
n4 --> n5
n2 --> n0
n1 --> n8
n7 --> n3
n8 --> n4
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n2 trigger
class n3 decision
class n4 code
classDef customIcon fill:none,stroke:none
class n4 customIcon
Why This Matters: Pre-call research steals your best energy
Prepping for meetings is supposed to be quick. In reality, it turns into a mini scavenger hunt. You pull up the calendar invite, scan attendees, guess which company matters, search “Company + news,” then hope you find something recent enough to use as an opener. Do that three or four times in a morning and you’ve burned the mental energy you needed for the actual conversation. Worse, you start relying on stale talking points, or you walk in cold and let the other person drive.
It adds up fast. Here’s where it breaks down.
- Calendar events don’t come with usable context, so you spend about 15 minutes per meeting doing the same lookup ritual.
- Research quality is inconsistent because you’re rushed, which means your first question sounds generic instead of informed.
- Important meetings get the same prep time as low-stakes ones, because you don’t have a repeatable workflow.
- Notes end up scattered across browser tabs, docs, and your memory, and nothing is easy to reuse later.
What You’ll Build: Daily researched meeting briefs from your calendar
This workflow runs on a schedule every morning (the default is 9 AM, but you can change it). It pulls today’s meetings from Google Calendar, then filters for external meetings so you’re not getting briefings for internal check-ins. For each external meeting, it derives a “company label” from the attendee or event details, then sends that company into a research step powered by the Tavily Research API. After the research comes back, the workflow formats everything into a readable email layout and sends it through Gmail to your inbox. The end result is a briefing you can skim in a minute, with recent company context you can actually use when you open the call.
The workflow starts with a scheduled trigger and a quick variable setup. Next, Google Calendar provides the day’s events and the automation decides which ones are worth researching. Finally, Tavily gathers recent context and Gmail delivers the finished briefing email so it’s waiting for you.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say you have 4 external meetings today. Manually, you’ll usually spend about 15 minutes per meeting bouncing through tabs to find news, funding updates, or a recent launch, which is roughly an hour. With this workflow, you set it once, then your “time spent” is basically reading the email, maybe 5 minutes total, plus waiting for the research to run in the background. That’s close to an hour back on a busy morning, and it’s better prep too.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Calendar to read today’s meeting schedule.
- Gmail to send briefings to your inbox.
- Tavily API key (get it from your Tavily dashboard)
Skill level: Beginner. You’ll connect accounts, paste an API key, and adjust a few fields like schedule time and “send to” email.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
A morning schedule triggers the run. At your chosen time, n8n starts the workflow and initializes a few variables used to keep the email consistent.
Google Calendar provides the day’s meetings. The workflow pulls events for “today,” then checks if each event looks like an external meeting (so you don’t research your coworker for the weekly standup).
The workflow identifies who to research. It derives a company label from the meeting details, then sends that label into the Tavily research step to gather recent context that’s actually useful in conversation.
Gmail delivers a clean briefing email. The workflow composes a readable layout and sends it to the address you choose, so the brief is waiting when you open your inbox.
You can easily modify the briefing format to match your role (sales discovery vs. partnerships vs. recruiting) based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Scheduled Trigger
Set the workflow to run automatically every morning and kick off the meeting research sequence.
- Add the Scheduled Morning Trigger node as your trigger.
- Set the Rule to run at
9using triggerAtHour. - Connect Scheduled Morning Trigger to Initialize Variables.
Step 2: Connect Google Calendar
Pull today’s meetings from your calendar to identify external calls that need research.
- Open Initialize Variables and set the following fields in Fields: apiKey to
[CONFIGURE_YOUR_API_KEY], newsAge to20, maxArticles to20, and add emails if you plan to expand recipients. - Open Retrieve Today's Meetings and set Operation to
getAll. - Set Calendar to
[YOUR_EMAIL]and keep Single Events enabled. - Set Time Min to
{{ $today }}and Time Max to{{ $today.plus({ days: 1 }) }}. - Credential Required: Connect your Google Calendar credentials in Retrieve Today's Meetings.
Step 3: Set Up Meeting Filtering and Company Parsing
Filter calendar events to only external meetings and derive the company name used for research.
- Open Validate External Meetings and confirm the two Conditions check:
{{ $json.summary.toLowerCase() }}starts withcall withORmeeting with. - Connect the true output of Validate External Meetings to Derive Company Label.
- Connect the false output of Validate External Meetings to No External Meetings (this path is a safe exit for internal-only calendars).
- In Derive Company Label, set companyName to
{{ $json.summary.toLowerCase().replace('meeting with', '').replace('call with', '').trim() }}.
Step 4: Set Up Research and Email Composition
Use Tavily to research the company and format the results into an HTML email body.
- Open Research Company Profile and set Query to
{{ $json.companyName }}. - In Research Company Profile options, set time_range to
monthand enable include_raw_content. - Credential Required: Connect your Tavily API credentials in Research Company Profile.
- Open Compose Email Layout and keep the provided jsCode to build the HTML table output.
- Ensure Research Company Profile connects to Compose Email Layout.
inputData?.results or inputData?.articles.Step 5: Configure Email Delivery
Send the formatted news briefing to your inbox via Gmail.
- Open Dispatch News Email and set Send To to
[YOUR_EMAIL]. - Set Message to
{{ $json.html }}. - Set Subject to
Latest news for '{{ $('Derive Company Label').item.json.summary }}'. - Optional: Set Sender Name to
Meeting Prep Agentand disable Append Attribution. - Credential Required: Connect your Gmail OAuth2 credentials in Dispatch News Email.
Step 6: Test and Activate Your Workflow
Verify the workflow end-to-end and enable it for daily execution.
- Click Execute Workflow to run a manual test.
- Confirm that Retrieve Today's Meetings returns events and Validate External Meetings routes at least one event to Derive Company Label.
- Check that Dispatch News Email delivers an email with a populated HTML table from Compose Email Layout.
- Turn the workflow Active to allow Scheduled Morning Trigger to run it daily at 9 AM.
Troubleshooting Tips
- Google Calendar credentials can expire or need specific permissions. If things break, check the Google Calendar credential in n8n and re-authenticate first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Tavily API requests can fail due to rate limits or an invalid key. Confirm the key in the Tavily credential and review the execution logs for 401/429 errors.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
- Gmail can refuse sends if you’re hitting daily limits or using the wrong “From” settings. Check the Gmail node output and your Google account sending limits.
Quick Answers
About 30 minutes if you already have access to the accounts.
No. You’ll connect credentials and tweak a few fields like schedule time and the “Send To” email address.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Tavily API costs (depends on your plan and usage) and any OpenAI usage if you extend the workflow.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and you probably should. Most people start by changing the Scheduled Morning Trigger time, then adjusting how the email is structured in the Compose Email Layout step. You can also tweak the Validate External Meetings logic to match how your calendar is organized (for example, treat certain domains as “internal”). If you want deeper research, expand the Research Company Profile step to include specific queries like “pricing changes,” “security page,” or “recent partnerships.”
Usually it’s expired authorization or missing permissions on the Google account. Reconnect the Google Calendar credential in n8n, then re-run the workflow from the Schedule trigger to confirm events can be read. If it works for some events but not others, check which calendar the event lives on and whether your account has access to that calendar.
Plenty for most calendars: dozens of meetings in a morning is fine, but heavy usage depends on your Tavily plan and n8n execution limits.
Often, yes, because this kind of workflow benefits from branching logic (external vs. internal meetings), formatting control, and the ability to self-host when you don’t want to pay per task. n8n is also easier to inspect when something goes wrong, since you can look at each node’s input/output and fix the exact point of failure. Zapier or Make can still be a fine choice if you want the simplest possible setup and you’re only briefing one meeting per day. The bigger your calendar gets, the more you’ll appreciate n8n’s flexibility. Talk to an automation expert if you want help choosing.
Show up with context, not chaos. Set this up once, and your mornings get noticeably calmer.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.