# Send Morning Email Rollup to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "morning-email-rollup",
    "name": "Morning Email Rollup",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/am-will/morning-email-rollup",
    "canonicalUrl": "https://clawhub.ai/am-will/morning-email-rollup",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/morning-email-rollup",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=morning-email-rollup",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "rollup.sh"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/morning-email-rollup"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/morning-email-rollup",
    "downloadUrl": "https://openagent3.xyz/downloads/morning-email-rollup",
    "agentUrl": "https://openagent3.xyz/skills/morning-email-rollup/agent",
    "manifestUrl": "https://openagent3.xyz/skills/morning-email-rollup/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/morning-email-rollup/agent.md"
  }
}
```
## Documentation

### Morning Email Rollup

Automatically generates a daily summary of important emails and delivers it to Telegram at 8am Denver time.

### Setup

Required: Set your Gmail account email:

export GOG_ACCOUNT="your-email@gmail.com"

Or edit the script directly to set the default.

### What It Does

Runs every day at 8:00 AM (configurable timezone)
Shows today's calendar events from Google Calendar
Searches for emails marked as important or starred from the last 24 hours
Uses AI (Gemini CLI) to generate natural language summaries of each email
Shows up to 20 most important emails with:

🔴 Unread indicator (red)
🟢 Read indicator (green)
Sender name/email
Subject line
AI-generated 1-sentence summary (natural language, not scraped content)


Delivers formatted summary to Telegram

### Manual Run

# 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

### View Log

cat $HOME/clawd/morning-email-rollup-log.md

### How It Works

Checks calendar - Lists today's events from Google Calendar via gog
Searches Gmail - Query: is:important OR is:starred newer_than:1d
Fetches details - Gets sender, subject, date, and body for each email
AI Summarization - Uses Gemini CLI to generate natural language summaries
Formats output - Creates readable summary with read/unread markers
Sends to Telegram - Delivers via Clawdbot's messaging system

### Calendar Integration

The script automatically includes today's calendar events from your Google Calendar using the same gog CLI that queries Gmail.

Graceful Fallback:

If gog is not installed → Calendar section is silently skipped (no errors)
If no events today → Calendar section is silently skipped
If events exist → Shows formatted list with 12-hour times and titles

Requirements:

gog must be installed and authenticated
Uses the same Google account configured for Gmail (set via GOG_ACCOUNT environment variable)

### Email Criteria

Emails are included if they match any of:

Marked as Important by Gmail (lightning bolt icon)
Manually Starred by you
Received in the last 24 hours

### AI Summarization

Each email is summarized using the Gemini CLI (gemini):

Extracts the email body (cleans HTML/CSS)
Sends to gemini --model gemini-2.0-flash with a prompt to summarize in 1 sentence
The summary is medium-to-long length natural language (not scraped content)
Falls back to cleaned body text if Gemini is unavailable

Important: 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.

### Read/Unread Indicators

🔴 Red dot = Unread email
🟢 Green dot = Read email

All emails show one of these markers for visual consistency.

### Formatting Notes

Subject and Summary Cleanup:

Extra quotes are automatically stripped from subject lines (e.g., ""Agent Skills"" → Agent Skills)
Summaries from Gemini are also cleaned of leading/trailing quotes
This ensures clean, readable output in Telegram/other channels

### Cron Schedule

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.

### Change Number of Emails

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

### Change Search Criteria

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 ...)

### Change Time

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"

### Change Summary Style

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:"

### Change AI Model

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..."

### Not receiving rollups

# 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

### Missing emails

Gmail's importance markers may filter out expected emails
Check if emails are actually marked important/starred in Gmail
Try running manual search: gog gmail search 'is:important newer_than:1d'

### Summaries not appearing

Check if gemini CLI is installed: which gemini
Test manually: echo "test" | gemini "Summarize this:"
Verify Gemini is authenticated (it should prompt on first run)

### Wrong timezone

Cron uses America/Denver (MST/MDT)
Update with: cron update <job-id> --tz "Your/Timezone"

### Log History

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
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: am-will
- Version: 2.1.0
## Source health
- Status: healthy
- Source download looks usable.
- Yavira can redirect you to the upstream package for this source.
- Health scope: source
- Reason: direct_download_ok
- Checked at: 2026-04-23T16:43:11.935Z
- Expires at: 2026-04-30T16:43:11.935Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/morning-email-rollup)
- [Send to Agent page](https://openagent3.xyz/skills/morning-email-rollup/agent)
- [JSON manifest](https://openagent3.xyz/skills/morning-email-rollup/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/morning-email-rollup/agent.md)
- [Download page](https://openagent3.xyz/downloads/morning-email-rollup)