You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Morning briefing that summarizes Slack DMs and key channels, unread emails with summaries, today's meetings, and today's reminders into one prioritized view.
Morning briefing that summarizes Slack DMs and key channels, unread emails with summaries, today's meetings, and today's reminders into one prioritized view. Triggers on: daily brief, morning brief, start my day, what's on today, brief me, good morning, what did I miss.
Daily Brief: Morning Prioritized Summary
You generate a single prioritized morning summary so the user can start their day knowing exactly what needs attention. Read from Slack, email, calendar, and reminders — then present it triaged by priority.
Phase 1: Gather Sources
Read all sources before producing any output.
1a. Slack — DMs and monitored channels
Read references/channels.md for the list of channels to monitor.
DMs: Read recent direct messages (last 24 hours). Flag any that are waiting for a reply.
Channels: For each channel in the monitored list, check for messages since yesterday. Skip channels with no new activity — don't report "nothing happened."
Use the Slack MCP tools:
get_messages with since set to yesterday's date for each channel
For DMs, check recent conversations
1b. Email — unread inbox only
Read unread emails from the inbox folder only. Ignore trash, deleted items, sent items, and archive.
For each unread email:
Sender name
Subject
1-2 sentence summary of the content
Whether it requires a reply or is informational
Use the Outlook MCP:
email_folders with folder "inbox" and filter for unread, or email_inbox with unreadOnly: true
1c. Calendar — today's committed meetings
Read today's calendar events. Only include events where:
Status is "Busy" (skip "Free" and "Tentative")
The event is not cancelled
For each meeting:
Time
Title
Attendees (if relevant)
Location or link
Whether it's a customer meeting, internal sync, or training
Use the Outlook MCP:
calendar_view with today's date
1d. Apple Reminders — today's tasks
Read reminders due today (or overdue). Use osascript:
osascript -e 'tell application "Reminders" set today to current date set output to "" repeat with aList in every list set rems to every reminder in aList whose completed is false and due date is less than or equal to (today + 1 * days) repeat with r in rems set rName to name of r set rList to name of aList try set rDue to due date of r as string on error set rDue to "today" end try set output to output & rList & " | " & rName & " | " & rDue & linefeed end repeat end repeat return outputend tell'
Also include overdue reminders (due date < today, not completed).
Phase 2: Prioritize
Sort everything into three priority tiers:
🔴 Needs attention now
DMs waiting for your reply (someone is blocked on you)
Emails from your manager or skip-level requiring action
Meetings in the next 2-3 hours that need prep
Overdue reminders
🟡 Important today
Unread emails requiring a reply (but not urgent)
Today's meetings (informational)
Reminders due today
Slack channel activity that mentions you or is decision-relevant
Slack channel activity that's interesting but doesn't need you
All-day events or optional meetings
Phase 3: Generate the Brief
Output as chat (the user reads it before opening email/Slack):
## ☀️ Daily Brief — [DAY, DATE]### 🔴 Needs Attention-[Item with context — who, what, why it's urgent]-[Item]### 🟡 Important Today-[Item with brief context]-[Item]### 📅 Today's Schedule| Time | Meeting | Type ||------|---------|------|| 09:00 |[Meeting title]| Customer || 11:00 |[Meeting title]| Internal || 14:00 |[Meeting title]| Training |### ✅ Today's Tasks-[ ][Reminder — from list name]-[ ][Reminder — overdue ⚠️]### 📬 Unread Emails ([count])-**[Sender]**: [Subject] — [1-2 sentence summary]. [Needs reply / FYI]-**[Sender]**: [Subject] — [Summary]. [Needs reply / FYI]### 💬 Slack Activity**DMs waiting for reply:**-[Person]: [Brief context of what they asked]**Channel highlights:**- #[channel]: [Key message or decision — who said what]### 🟢 Awareness-[Low-priority items grouped here]
Output Rules
Concise. Each item is 1-2 lines max. This is a brief, not a report.
Actionable. Don't just say "email from X" — say "email from X asking for Y, needs reply."
Honest about volume. If it's a quiet morning, say so. Don't pad.
Skip empty sections. If there are no DMs waiting, don't show that section.
Email summaries before opening email. The user wants to know what's in their inbox without opening it. Make summaries good enough to decide what to tackle first.
Exclusions
Do NOT include:
Calendar events marked "Free" or "Tentative"
Cancelled events
Emails in trash, deleted items, sent items, or archive