Install
$ agentstack add skill-zocomputer-skills-morning-briefing ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
About
Setup
- Install this skill to
Skills/morning-briefing/ - Create a scheduled agent to run it at your preferred morning time
- Optional dependencies (the skill adapts to what's available):
Data/tasks.db(DuckDB) with ataskstable for task tracking. If you use thetask-managerskill, this exists already. If not, the tasks section is skipped.- Gmail integration (connected via [Settings > Integrations](/?t=settings&s=integrations))
- Google Calendar integration
- Supermemory for meeting prep context
How to Run
This is an orchestration skill. Follow these steps in order, then compose and deliver the briefing.
Step 1: Gather Today's Tasks
If Data/tasks.db exists, run the helper script:
python3 /home/workspace/Skills/morning-briefing/scripts/tasks_query.py
Returns JSON with overdue and due_today arrays, sorted by priority.
If the database doesn't exist, skip this section.
Step 2: Gather Today's Calendar
Use the Google Calendar tool:
use_app_google_calendar(
tool_name="google_calendar-list-events",
configured_props={
"calendarId": "primary",
"timeMin": "T00:00:00",
"timeMax": "T23:59:59",
"timeZone": "",
"singleEvents": true,
"orderBy": "startTime"
}
)
Replace ` with current date, with the user's UTC offset, and ` with their timezone.
Step 3: Gather Inbox Highlights
Use Gmail to find important unread emails:
use_app_gmail(
tool_name="gmail-find-email",
configured_props={
"q": "is:unread is:important newer_than:1d",
"withTextPayload": true,
"maxResults": 5
}
)
If fewer than 3 results, also try:
use_app_gmail(
tool_name="gmail-find-email",
configured_props={
"q": "is:unread newer_than:1d -category:promotions -category:social",
"withTextPayload": true,
"maxResults": 5
}
)
Step 4: Gather News Digest
Customize these searches for the user's interests. Examples:
Tech/AI news:
web_search(
query="AI technology news highlights",
time_range="day",
topic="news"
)
Industry-specific news (customize for user's industry):
web_search(
query=" news",
time_range="day",
topic="news"
)
Step 5: Compose the Briefing
Write the briefing in this format:
# Morning Briefing -- ,
## Today's Schedule
## Tasks
### Overdue
### Due Today
## Inbox Highlights
## News Digest
###
###
Add a one-liner observation at the top if something stands out (overdue count, big meeting, breaking news).
Step 6: Deliver
Email:
send_email_to_user(
subject="Morning Briefing -- ",
markdown_body=""
)
SMS (condensed version, max 3-4 lines):
send_sms_to_user(
message="Morning: tasks due, overdue. . "
)
Step 7: Archive
Save the full briefing to:
/home/workspace/Records/Briefings/-morning.md
Customization
- News categories: Edit step 4 to match the user's interests and industry
- Delivery timing: Adjust the scheduled agent time
- Delivery channels: Email only, SMS only, or both
- Meeting prep: If Supermemory is available, search for context about upcoming meeting attendees
- Tone: Match the user's AI persona voice
Notes
- If any section fails to load (API error, no results), include it with a "Could not load" note rather than skipping entirely.
- News items should be deduplicated across sources.
- The SMS should be ruthlessly brief. Only the most critical info.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: zocomputer
- Source: zocomputer/skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.