Morning plan: today's meetings, overdue follow-ups and emails waiting on you
Google Calendar + Gmail + HubSpot
Who it's for
AEs, SDRs and CSMs who want one page each morning with today's meetings, the follow-ups they've let slip, and the prospect emails still waiting for a reply. Nothing is changed anywhere. HubSpot can be swapped for Salesforce, Attio or Pipedrive. On Outlook, Microsoft 365 (Work IQ) can read mail and calendar in place of Gmail and Google Calendar, but it needs a Global Administrator and its documented clients are GitHub Copilot tools.
What you get
One morning's plan, read-only. Sample output: every company and person in it is fictional.
Morning plan for Fri Oct 16 (all times Eastern) MEETINGS TODAY (3 external, 2 internal skipped) | Time | Meeting | Who | HubSpot deal | |---|---|---|---| | 9:30 | Pricing review | Sam Whitlock, Quarry Lane Analytics (fictional) | Quarry Lane renewal + upsell, Negotiation, $48K, close Oct 30 | | 11:00 | Discovery call | Dana Okafor, Larkspur Freightworks (fictional) | No deal yet. Company exists, owner: you | | 3:00 | Check-in | Alex Rivera, Fernhill Software (fictional) | Fernhill expansion, Proposal, $22K. Next step says "send revised SOW" | OVERDUE FOLLOW-UPS (4) - Task: "Send security questionnaire to Quarry Lane", due Oct 13 (3 days late). Do this before the 9:30. - Task: "Call back Mossgate Labs (fictional) re: pilot scope", due Oct 9 (7 days late) - Deal: Fernhill expansion, close date Oct 15 has passed. Update before or after the 3:00 - Task: "Intro email to Tidewell Robotics (fictional)", due Aug 28 (49 days late). Old. Close it or reschedule? WAITING ON YOUR REPLY (2 prospect threads, 6 newsletters and notifications skipped) - Priya Raman, Mossgate Labs (fictional), [email protected]: "Can you confirm the pilot can start Nov 2?" Received Tue, 3 days ago - Dana Okafor, larkspur.example: "Agenda for Friday?" Received yesterday 4:12 pm. Answer before the 11:00 Nothing was created, changed or sent.
Time and cost
Estimate About 5 minutes to run, 5–10 minutes to read and act on.
Assumptions: One run on a day with about 5 meetings, 30 open tasks and deals, and a few days of inbox.
- Google Calendar: Reads only: one list of today's events, plus a detail read for each external meeting. Credit use not confirmed by Google Calendar.
- Gmail: Reads only: one or two thread searches, then a thread read for each likely prospect email. Credit use not confirmed by Gmail.
- HubSpot: Reads only: a company and deal search per external meeting, plus one search for your overdue tasks and open deals. Credit use not confirmed by HubSpot.
Exact credit costs depend on your plan with each vendor. Check the tool pages before a large run.
MCP servers
Every server is confirmed in: Claude
-
ClaudeRead + writeCredits not confirmedNeeds admin or IT
https://calendarmcp.googleapis.com/mcp/v1 -
ClaudeRead + writeCredits not confirmedNeeds admin or IT
https://gmailmcp.googleapis.com/mcp/v1 -
ClaudeChatGPTRead + writeCredits not confirmedNeeds admin or IT
https://mcp.hubspot.com
Set up in a chat app
Every server in this recipe is confirmed for Claude. Connect each one, then paste the prompts below into one conversation.
- Connect Google Calendar without code (Claude)
- Connect Gmail without code (Claude)
- Connect HubSpot without code (Claude, ChatGPT)
Developer setup
Auth setup and mcp.json for Claude Code and Cursor
- Google Calendar: Sign in with OAuth in your client (run
/mcpin Claude Code). Do it once interactively, and the client stores and refreshes the token. - Gmail: Sign in with OAuth in your client (run
/mcpin Claude Code). Do it once interactively, and the client stores and refreshes the token. - HubSpot: Sign in with OAuth in your client (run
/mcpin Claude Code). Do it once interactively, and the client stores and refreshes the token.
Put this in .mcp.json (Claude Code, project root) or ~/.cursor/mcp.json (Cursor). Swap the example keys for your own, and don't commit real ones. Remove the // comment lines if your client requires strict JSON.
{
"mcpServers": {
"google-calendar": {
"url": "https://calendarmcp.googleapis.com/mcp/v1"
},
"gmail": {
"url": "https://gmailmcp.googleapis.com/mcp/v1"
},
"hubspot": {
"url": "https://mcp.hubspot.com"
}
}
}
Step-by-step prompts
- My time zone is {time_zone} and my email domain is {my_domain}. List my Google Calendar events for today: time, title and attendees. Mark which meetings have attendees outside {my_domain}, and skip internal-only ones.
- For each external meeting, find the attendee's company and any open deal in HubSpot by email domain: deal name, stage, amount, close date and next step. If there's no match, say so. Don't change anything.
- In HubSpot, find my overdue follow-ups: open tasks assigned to me that were due before today, and open deals I own whose close date has passed. Sort by how late they are. Read only.
- Search my Gmail for threads from the last {days} days where the latest message is from someone outside {my_domain} and I haven't replied. Keep only senders who match a HubSpot contact or a company with an open deal. Show the sender, company, one-line ask and how long it has waited.
- Put it all on one page: meetings today, overdue follow-ups, and emails waiting on me. Flag anything that should be done before a meeting today. Don't create, change or send anything.
Run it on a schedule (optional)
- Run it first thing each workday, before your first meeting.
- It only reads, so it is safe to schedule. If your client can run scheduled tasks, have it save the page for you to read, not message anyone.
- Gmail and Google Calendar are Developer Preview servers that need your company's own Google Cloud project. Get them working in a manual run before you schedule anything.
Where this goes wrong
- Wrong day because of time zones. An early or late meeting can land on the wrong day if the time zone is off. Tell it your time zone in the first prompt, and compare the meeting count with what your calendar app shows.
- Newsletters and notifications counted as prospects. Marketing emails, calendar invites and tool alerts come from outside your domain too. Keep only threads where the sender matches a HubSpot contact or a company with an open deal, and list how many were skipped.
- Replies sent from another tool look unanswered. If you answered from a sequencing tool, a shared inbox or your phone's other account, Gmail may not show the reply in the thread. Before you act on a 'waiting' email, check the deal's last activity date in HubSpot.
- A meeting matched to the wrong company. Attendees on personal email addresses or a partner's domain get matched to the wrong record, or none. Show the email domain used for each match, and mark meetings with no match as 'no HubSpot match' instead of guessing.
Gotchas
- Gmail and Google Calendar are in Google's Developer Preview. They need Developer Preview Program membership and a Google Cloud project with the APIs enabled, plus your own OAuth client added as a custom connector. A rep usually can't set this up alone: ask your Google Workspace admin or IT.
- Google documents the Gmail and Google Calendar setup for Claude.ai and Claude Desktop on Enterprise, Pro, Max or Team plans. ChatGPT support isn't confirmed.
- Google Calendar's documented OAuth scopes are read-only and free/busy, which is all this recipe needs.
- HubSpot non-admin users need a Super Admin to approve the connector first.
- Using Salesforce instead? Its SOQL query tool can pull overdue Tasks and open Opportunities, and the read-only platform/sobject-reads server is enough here. It needs Enterprise Edition or above, an admin-created External Client App, and developer mode in ChatGPT. Every tool call counts against your org's daily API request quota.
- On Outlook and Microsoft 365? Work IQ's fetch tool reads mail and calendar. A Global Administrator must enable it and grant admin consent, use is billed in Copilot Credits, and Microsoft documents it for GitHub Copilot CLI and VS Code, not Claude or ChatGPT.
Download
Get the prompts, guardrails and expected output as one Markdown file. Paste it into a Claude Project or ChatGPT project's instructions, or save it as CLAUDE.md for Claude Code.
New recipe and breakage notes every week
Vendor sites: HubSpot. If we join an affiliate program, these links will be labeled as affiliate links.