morning-email-rollupDaily morning rollup of important emails and calendar events at 8am with AI-generated summaries
Install via ClawdBot CLI:
clawdbot install am-will/morning-email-rollupRequires:
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="your-email@gmail.com"
Or edit the script directly to set the default.
# 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 "GOG_ACCOUNT=your-email@gmail.com 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:boss@company.com OR from:client@example.com 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
Generated Mar 1, 2026
Executives and managers use the rollup to quickly catch up on important emails and calendar events at the start of their day, saving time by avoiding manual inbox scanning. It provides AI-summarized insights from starred or important emails, helping prioritize tasks and meetings efficiently.
Distributed teams rely on the rollup to stay aligned on key communications and schedules without being overwhelmed by email noise. It aggregates important messages and events into a single Telegram notification, ensuring all members are informed of critical updates and deadlines.
Sales and support professionals use the skill to monitor important client emails and appointments, ensuring timely responses and follow-ups. The AI summaries highlight client needs or issues, enabling proactive engagement and improved service delivery.
Individuals employ the rollup as a personal assistant to manage daily email overload and schedule reminders, focusing only on prioritized content. It helps reduce distraction by delivering concise summaries, allowing users to start their day with clarity and organization.
Event planners and project managers utilize the skill to track important emails related to logistics, deadlines, and stakeholder communications alongside calendar events. It ensures nothing is missed by consolidating updates into a morning digest, aiding in smooth execution.
Offer the rollup as a premium subscription service with enhanced features like custom AI models, advanced filtering, and integration with multiple email providers. Revenue is generated through monthly or annual fees from individual users and small teams seeking productivity tools.
License the skill to large organizations for internal use, with customization options for security, compliance, and integration with existing systems like Slack or Microsoft Teams. Revenue comes from one-time licensing fees or tiered enterprise plans based on user count.
Provide a free basic version with limited emails and summaries, then upsell to paid tiers offering more emails, faster AI processing, and additional integrations like calendar analytics. Revenue is driven by upgrades from free users to premium features.
š¬ Integration Tip
Ensure proper authentication for Gmail and Google Calendar via gog CLI, and test the cron job in a sandbox environment to avoid disruptions in production use.
Interact with Google Calendar via the Google Calendar API ā list upcoming events, create new events, update or delete them. Use this skill when you need programmatic access to your calendar from OpenClaw.
Read, search, and manage Outlook emails and calendar via Microsoft Graph API. Use when the user asks about emails, inbox, Outlook, Microsoft mail, calendar events, or scheduling.
Google Calendar via gcalcli: today-only agenda by default, bounded meaning-first lookup via agenda scans, and fast create/delete with verification--optimized for low tool calls and minimal output.
This skill should be used when interacting with Apple Calendar on macOS. Use it for listing calendars, viewing events, creating/updating/deleting calendar events, and checking availability/free-busy times. Triggers on requests like "check my calendar", "schedule a meeting", "what's on my schedule", "am I free tomorrow", or any calendar-related operations.
Access and manage Google Calendar events with gogcli for cross-calendar agendas, keyword search, and filtered outputs avoiding unwanted calendars like holidays.
Create, list, and manage macOS Calendar events via AppleScript. Use when the user asks to add a reminder, schedule an event, create a calendar entry, set a d...