This lesson connects Claude Code to your real email and calendar, then builds one skill that reads both and hands you a single, structured briefing: today's schedule, what to know before each meeting, and anything urgent sitting in your inbox. Where Lesson 4.3 built a three-skill plugin, this one shows the other end of the range — sometimes one well-built skill is the whole job.
Most mornings start with opening two apps and piecing together the same picture by hand: what's on the calendar, what needs a reply, what's actually urgent versus just unread. That's a pattern this course has already covered — checking something repetitive and turning it into a summary — applied to a data source everyone already has.
1Connect an Email and Calendar MCP Server
Claude Code has no built-in access to your email or calendar. It needs an MCP connection — the mechanism from Lesson 4.4 — before it can read a single message or event.
- Identify your provider: Google Workspace (Gmail + Google Calendar) or Microsoft 365 (Outlook Mail + Outlook Calendar) are the two most common.
- Check code.claude.com/docs, claude.ai's Connectors settings, or type /mcp inside Claude Code to see whether a ready-made connector exists for your provider today — Lesson 4.4, Step 4 covers what to do if it doesn't yet.
- Add the connector using the claude mcp add --scope user --transport <type> <name> <address> pattern from Lesson 4.4, Step 3, filling in the real name and address you found.
- Approve the sign-in prompt that opens in your browser.
- Run /mcp to confirm it connected and see the tools it provides.
| Provider | What You're Connecting | Where to Check the Current Setup |
|---|---|---|
| Google Workspace | Gmail + Google Calendar | /mcp inside Claude Code, claude.ai Connectors, or code.claude.com/docs |
| Microsoft 365 | Outlook Mail + Outlook Calendar | /mcp inside Claude Code, claude.ai Connectors, or code.claude.com/docs |
Connecting an AI tool to a work email or calendar account may need IT or security approval, depending on your employer's policy. Confirm before connecting a work account — a personal account is a safer place to practice this lesson first.
2Dictate What "Day Ahead" Means to You
With the connector in place, describe the briefing you actually want — in one long message, the same dictate-to-setup approach from Lesson 4.3.
- Create a new folder, for example daily-briefing, and open it in Claude Code.
- Adapt and send the example dictation below.
- Answer any clarifying questions Claude Code asks.
- Review the proposed CLAUDE.md before approving it.
I want a daily briefing that pulls together my calendar and my email so I don't have to check two apps every morning. For today's calendar, I want every meeting listed with the time, the attendees, and one line on what I need to know or prepare before it. For email, I only care about messages from the last 24 hours that are unread or flagged — summarize what's actually urgent and skip routine notifications and anything already read. If an email is from someone who's also on today's calendar, connect the two — mention it next to that meeting instead of as a separate item. Keep the whole briefing short enough to read in two minutes. Set this up as a project with a README and a CLAUDE.md capturing these rules, and ask me anything you need first.
What Claude Code should produce:
daily-briefing/
├── README.md Explains the briefing and how to run it
├── CLAUDE.md Standing rules: what counts as urgent, how
│ long the briefing should be, how to cross-
│ reference meetings and email
└── output/
└── todays-briefing.md Where each day's briefing lands
Not every workflow needs a three-skill plugin. This lesson builds toward exactly one skill — the shape should match the job, not the other way around.
3Build the Daily-Briefing Skill
One skill, using both the calendar and email tools your connector provides.
- Ask Claude Code to build the skill, describing its job precisely (the description below is ready to use).
- Review the SKILL.md it produces.
- Run /daily-briefing and check the output against what you actually needed to know this morning.
What to tell Claude Code to build:
Build a skill called daily-briefing. Its job: pull today's calendar events using the calendar tool, and pull unread or flagged email from the last 24 hours using the email tool. Cross-reference the two — if an email sender is also an attendee on a meeting today, mention that email next to that meeting instead of as a separate item. Produce one short briefing: a schedule block listing each meeting with attendees and a one-line prep note, followed by a short list of anything urgent left in email that doesn't tie to a meeting. Save it to output/todays-briefing.md and show it to me.
What this produces (skills/daily-briefing/SKILL.md, abbreviated):
--- name: daily-briefing description: Pull today's calendar and recent email into one morning briefing, cross-referencing meeting attendees with email senders. Use when the user says "give me my briefing," "what's today look like," or "/daily-briefing." --- # daily-briefing 1. Fetch today's calendar events using the connected calendar tool. 2. Fetch email from the last 24 hours that is unread or flagged, using the connected email tool. 3. For each meeting, check whether any attendee also sent a fetched email. If so, fold a one-line summary of that email into that meeting's entry instead of listing it separately. 4. Write the schedule block: time, attendees, and one prep line per meeting. 5. Write a short "Flagged in Email" section for anything urgent that didn't tie to a meeting. 6. Save the result to output/todays-briefing.md and display it.
Sample output:
Today's Briefing — Tuesday 09:00 — Budget Review (with Marcus Chen, Priya Nair) Marcus emailed last night asking to move the Q3 numbers earlier in the agenda — worth confirming before the meeting starts. 11:30 — Vendor Call (with external: Aria Logistics) No related email. First call with this vendor — no history yet. Flagged in Email - IT: password reset required by end of week (not tied to a meeting)
The cross-reference step — connecting Marcus's email to the 9:00 meeting — is the entire value of asking one skill to look at two sources together instead of checking each app separately.
4Optional — Run It Automatically Every Morning
Everything above still requires opening Claude Code and typing /daily-briefing. This step is optional: it runs the briefing before you sit down.
Windows
- Before proceeding, revisit Lesson 4.1, Step 4 — confirm you trust /daily-briefing's output from several manual runs first.
- Open Windows Task Scheduler.
- Create a basic task set to run daily, for example at 7:00 AM.
- Point the action at the command below.
claude -p "/daily-briefing" --cwd "C:\path\to\daily-briefing"
Mac
- Before proceeding, revisit Lesson 4.1, Step 4 — confirm you trust /daily-briefing's output from several manual runs first.
- Open Terminal and run crontab -e (opens in the nano editor by default).
- Add the line below for a daily 7:00 AM run, then save (Ctrl+O, Enter, Ctrl+X in nano).
0 7 * * * claude -p "/daily-briefing" --cwd "$HOME/daily-briefing"
cron jobs on macOS often fail silently unless the terminal app running them has Full Disk Access. Go to System Settings → Privacy & Security → Full Disk Access and enable it for Terminal (or your terminal app).
Typing /daily-briefing yourself each morning already works. Only automate this if you specifically want the file waiting for you before you sit down.
On Windows: open Windows Task Scheduler, find the task by name, and Disable or Delete it — the same two options as Lesson 4.3, Step 6. On Mac: run crontab -e and delete or comment out the line. Your connected MCP server and your CLAUDE.md rules are untouched either way.
Verification
If the calendar or email tool isn't found, confirm the connector shows as connected in /mcp and that you restarted Claude Code after adding it. Lesson 4.4 covers this connection in full if you skipped it.
Related Resources
- claude.ai — The Claude AI platform
- code.claude.com/docs — Official documentation
- support.claude.com — Help center and troubleshooting
Lesson complete
You connected Claude Code to real, live data outside your files for the first time, and built one skill that reads two sources together. Before building a multi-skill plugin next time, ask whether the job is really one step done well — this lesson's single skill replaced two apps and a mental cross-reference, and that was the whole win.