Daily morning rollup of important emails and calendar events at 8am with AI-generated summaries
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install morning-email-rollup或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install morning-email-rollup⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/morning-email-rollup/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: morning-email-rollup description: Daily morning rollup of important emails and calendar events at 8am with AI-generated summaries metadata: {"clawdbot":{"emoji":"📧","requires":{"bins":["gog","gemini","jq","date"]}}} ---
Automatically generates a daily summary of important emails and delivers it to Telegram at 8am Denver time.
Required: Set your Gmail account email:
export GOG_ACCOUNT="[email protected]"
Or edit the script directly to set the default.
- 🔴 Unread indicator (red) - 🟢 Read indicator (green) - Sender name/email - Subject line - AI-generated 1-sentence summary (natural language, not scraped content)
# Default (10 emails)
bash skills/morning-email-rollup/rollup.sh
# Custom number of emails
MAX_EMAILS=20 bash skills/morning-email-rollup/rollup.sh
MAX_EMAILS=5 bash skills/morning-email-rollup/rollup.sh
cat $HOME/clawd/morning-email-rollup-log.md
gogis:important OR is:starred newer_than:1dThe script automatically includes today's calendar events from your Google Calendar using the same gog CLI that queries Gmail.
Graceful Fallback:
gog is not installed → Calendar section is silently skipped (no errors)Requirements:
gog must be installed and authenticatedGOG_ACCOUNT environment variable)Emails are included if they match any of:
Each email is summarized using the Gemini CLI (gemini):
gemini --model gemini-2.0-flash with a prompt to summarize in 1 sentenceImportant: The email body is passed as part of the prompt (not via stdin) because the gemini CLI doesn't handle piped input with prompts correctly.
Example output:
🔴 **William Ryan: Invitation to team meeting**
The email invites you to a team meeting tomorrow at 2pm to discuss the Q1 roadmap and assign tasks for the upcoming sprint.
All emails show one of these markers for visual consistency.
Subject and Summary Cleanup:
""Agent Skills"" → Agent Skills)Set up a daily cron job at your preferred time:
cron add --name "Morning Email Rollup" \
--schedule "0 8 * * *" \
--tz "America/Denver" \
--session isolated \
--message "[email protected] bash /path/to/skills/morning-email-rollup/rollup.sh"
Adjust the time (8:00 AM) and timezone to your preference.
By default, the rollup shows 10 emails. To change this:
Temporary (one-time):
MAX_EMAILS=20 bash skills/morning-email-rollup/rollup.sh
Permanent: Edit skills/morning-email-rollup/rollup.sh:
MAX_EMAILS="${MAX_EMAILS:-20}" # Change 10 to your preferred number
Edit skills/morning-email-rollup/rollup.sh:
# Current: important or starred from last 24h
IMPORTANT_EMAILS=$(gog gmail search 'is:important OR is:starred newer_than:1d' --max 20 ...)
# Examples of other searches:
# Unread important emails only
IMPORTANT_EMAILS=$(gog gmail search 'is:important is:unread newer_than:1d' --max 20 ...)
# Specific senders
IMPORTANT_EMAILS=$(gog gmail search 'from:[email protected] OR from:[email protected] newer_than:1d' --max 20 ...)
# By label/category
IMPORTANT_EMAILS=$(gog gmail search 'label:work is:important newer_than:1d' --max 20 ...)
Update the cron schedule:
# List cron jobs to get the ID
cron list
# Update schedule (example: 7am instead of 8am)
cron update <job-id> --schedule "0 7 * * *" --tz "America/Denver"
Edit the prompt in the summarize_email() function in rollup.sh:
# Current: medium-to-long 1 sentence
"Summarize this email in exactly 1 sentence of natural language. Make it medium to long length. Don't use quotes:"
# Shorter summaries
"Summarize in 1 short sentence:"
# More detail
"Summarize in 2-3 sentences with key details:"
Edit the gemini command in summarize_email():
# Current: gemini-2.0-flash (fast)
gemini --model gemini-2.0-flash "Summarize..."
# Use a different model
gemini --model gemini-pro "Summarize..."
# Check if cron job is enabled
cron list
# Check last run status
cron runs <job-id>
# Test manually
bash skills/morning-email-rollup/rollup.sh
gog gmail search 'is:important newer_than:1d'gemini CLI is installed: which geminiecho "test" | gemini "Summarize this:"America/Denver (MST/MDT)cron update --tz "Your/Timezone" All rollup runs are logged to:
$HOME/clawd/morning-email-rollup-log.md
Format:
- [2026-01-15 08:00:00] 🔄 Starting morning email rollup
- [2026-01-15 08:00:02] ✅ Rollup complete: 15 emails安装 Morning Email Rollup 后,可以对 AI 说这些话来触发它
Send a Slack message to the #engineering channel about the deployment
Formats and sends the message with relevant context, tagging the right people
Summarize all unread messages in my inbox from today
Reads messages across connected channels and returns a prioritized summary
Draft a reply to this customer complaint and send it for review
Writes an empathetic, professional response and routes it to the approval queue
将技能文件夹放到 ~/.claude/skills/morning-email-rollup/ 目录(个人级,所有项目可用),或 .claude/skills/morning-email-rollup/(项目级)。重启 AI 客户端后,用 /morning-email-rollup 主动调用,或让 AI 根据上下文自动发现并使用。
Morning Email Rollup 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
Morning Email Rollup 可免费安装使用。请查阅仓库了解许可证信息。
Daily morning rollup of important emails and calendar events at 8am with AI-generated summaries
Morning Email Rollup 属于「Communication」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。