# Morning plan: today's meetings, overdue follow-ups and emails waiting on you

Source: https://mcpforgtm.com/recipes/morning-plan (StackMCP, independent directory of official MCP servers)

## Goal

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.

## Connected tools

- Google Calendar: https://calendarmcp.googleapis.com/mcp/v1 (setup: https://mcpforgtm.com/tools/google-calendar)
- Gmail: https://gmailmcp.googleapis.com/mcp/v1 (setup: https://mcpforgtm.com/tools/gmail)
- HubSpot: https://mcp.hubspot.com (setup: https://mcpforgtm.com/tools/hubspot)

## Guardrails

- Read only. Don't create, change, label, draft or send anything in Google Calendar, Gmail or HubSpot.
- Use my time zone for every date and time.
- Only call an email a prospect email if the sender matches a HubSpot contact or company. Count what you skipped.
- Show the HubSpot record or email thread behind every item, so I can check it.

## Steps

1. 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.
2. 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.
3. 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.
4. 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.
5. 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.

## Expected output

One morning's plan, read-only. Example (all names 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), priya@mossgate.example: "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.
```

## Watch for

- 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.
