Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Daily morning rollup of important emails and calendar events at 8am with AI-generated summaries
.claude/skills/sundial-org-morning-email-rollup/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 23% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 222% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 173% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 113% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 48% | 0% |
Automatically generates a daily summary of important emails and delivers it to Telegram at 8am Denver time.
Required: Set your Gmail account email:
bashexport GOG_ACCOUNT="your-email@gmail.com"
Or edit the script directly to set the default.
bash# 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
bashcat $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:
bashcron 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):
bashMAX_EMAILS=20 bash skills/morning-email-rollup/rollup.sh
Permanent: Edit skills/morning-email-rollup/rollup.sh:
bashMAX_EMAILS="${MAX_EMAILS:-20}" # Change 10 to your preferred number
Edit skills/morning-email-rollup/rollup.sh:
bash# 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:
bash# 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:
bash# 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():
bash# Current: gemini-2.0-flash (fast) gemini --model gemini-2.0-flash "Summarize..." # Use a different model gemini --model gemini-pro "Summarize..."
bash# 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 <job-id> --tz "Your/Timezone"All rollup runs are logged to:
$HOME/clawd/morning-email-rollup-log.mdFormat:
markdown- [2026-01-15 08:00:00] 🔄 Starting morning email rollup - [2026-01-15 08:00:02] ✅ Rollup complete: 15 emails
Other measured skills in the registry, with their headline benchmark lift.