daily-rhythm

Automated daily planning and reflection system with morning briefs, wind-down prompts, sleep nudges, and weekly reviews. Use when the user wants to set up a structured daily routine, morning briefings, evening reflection prompts, or weekly planning sessions. Triggers include requests for daily schedules, morning briefs, wind-down routines, sleep reminders, weekly reviews, productivity systems, or daily planning automation.

3,891 stars

Best use case

daily-rhythm is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Automated daily planning and reflection system with morning briefs, wind-down prompts, sleep nudges, and weekly reviews. Use when the user wants to set up a structured daily routine, morning briefings, evening reflection prompts, or weekly planning sessions. Triggers include requests for daily schedules, morning briefs, wind-down routines, sleep reminders, weekly reviews, productivity systems, or daily planning automation.

Teams using daily-rhythm should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/daily-rhythm/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/anthonyfrancis/daily-rhythm/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/daily-rhythm/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How daily-rhythm Compares

Feature / Agentdaily-rhythmStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Automated daily planning and reflection system with morning briefs, wind-down prompts, sleep nudges, and weekly reviews. Use when the user wants to set up a structured daily routine, morning briefings, evening reflection prompts, or weekly planning sessions. Triggers include requests for daily schedules, morning briefs, wind-down routines, sleep reminders, weekly reviews, productivity systems, or daily planning automation.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Daily Rhythm

A comprehensive daily planning and reflection system that automates morning briefs, evening wind-downs, sleep nudges, and weekly reviews to help users stay focused, track progress, and maintain work-life balance.

## Quick Start

1. **Install the skill** and ensure scripts are executable
2. **Configure data sources** (Google Tasks, optional Stripe, Calendar)
3. **Set up cron jobs** for automation
4. **Customize** your focus area and Daily Intention (prayer, affirmation, quote, or centering thought)
5. **Enjoy** automated daily briefings and prompts

## Features

### Daily Automation
- **7:00am**: Background data sync (tasks, ARR)
- **8:30am**: Morning Brief with priority, calendar, weather, tasks
- **10:30pm**: Wind-down prompt to plan tomorrow's priority
- **11:00pm**: Sleep nudge with encouraging words

### Weekly Automation
- **Sunday 8:00pm**: Weekly review for reflection and task planning

### Rich Morning Briefs Include
- 🙏 **Daily Intention** — Prayer, affirmation, quote, or centering thought
- Calendar events
- Focus area
- ARR progress tracking (optional Stripe integration)
- Today's priority (from wind-down or top task)
- Actionable suggestions
- Step-by-step plan
- Helpful resources
- Task list from Google Tasks
- Weather (if configured)
- Open loops from yesterday

## Setup Instructions

### Step 1: Install Dependencies

Ensure Python 3 and required packages:
```bash
pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client stripe
```

### Step 2: Configure Google Tasks

1. Go to [Google Cloud Console](https://console.cloud.google.com/)
2. Create project → Enable **Tasks API**
3. Create OAuth 2.0 credentials (Desktop app)
4. Download `credentials.json` to `~/.openclaw/google-tasks/`
5. Run once to authenticate: `python3 scripts/sync-google-tasks.py`

See [CONFIGURATION.md](references/CONFIGURATION.md) for detailed steps.

### Step 3: Configure Stripe (Optional)

For ARR tracking in morning briefs:

1. Create `.env.stripe` in workspace root:
   ```
   STRIPE_API_KEY=sk_live_...
   ```
2. Set ARR target in state file

### Step 4: Configure Calendar

Add ICS URL to `TOOLS.md`:
```markdown
### Calendar
- **ICS URL:** `https://calendar.google.com/calendar/ical/...`
```

### Step 5: Set Up Cron Jobs

Option A: System Cron (Traditional)
```bash
crontab -e

# Add these lines:
0 7 * * * cd /path/to/workspace && python3 skills/daily-rhythm/scripts/sync-stripe-arr.py
30 8 * * * cd /path/to/workspace && python3 skills/daily-rhythm/scripts/morning-brief.sh
0 20 * * 0 cd /path/to/workspace && echo "Weekly review time"
30 22 * * * cd /path/to/workspace && echo "Wind-down time"
0 23 * * * cd /path/to/workspace && echo "Sleep nudge"
```

Option B: OpenClaw Cron (If Available)
Use the `cron` tool to create jobs with `agentTurn` payloads that generate and send briefs.

### Step 6: Create HEARTBEAT.md

Copy the template from `assets/HEARTBEAT_TEMPLATE.md` to workspace root and customize:
- Daily Intention text (prayer, affirmation, quote, or centering thought)
- Focus area
- ARR target (if using Stripe)

## Workflow Details

### Morning Brief Generation

The brief is generated by:
1. Syncing latest data (tasks, ARR)
2. Reading wind-down priority from `memory/YYYY-MM-DD.md`
3. Fetching calendar from ICS URL
4. Fetching weather (if configured)
5. Compiling all sections into formatted message

### Wind-Down Response Flow

When user replies to 10:30pm prompt:
1. Parse their tomorrow priority
2. Generate actionable suggestions
3. Break into steps
4. Identify resources
5. Ask confirmation
6. Save to `memory/YYYY-MM-DD.md`
7. Include in next morning's brief

### Weekly Review Flow

Sunday 8pm prompt asks reflection questions. When user replies:
1. Summarize their week
2. Identify key priorities
3. Create tasks in Google Tasks
4. Preview Monday's brief

## Customization

### Change Daily Intention

The morning brief opens with a centering section you can customize:

**Examples:**
- **Faith-based**: Prayer, scripture verse, devotional thought
- **Secular**: Affirmation, intention-setting, gratitude practice  
- **Quotes**: Inspirational quotes, stoic philosophy, poetry
- **Goals**: Daily mission statement, values reminder

Edit in HEARTBEAT.md or modify the morning brief generation.

### Change Focus Area

Update default focus in HEARTBEAT.md:
```markdown
### Focus
Your primary focus (e.g., "Product growth and customer acquisition")
```

### Adjust Timing

Modify cron expressions:
- `30 8 * * *` = 8:30am daily
- `30 22 * * *` = 10:30pm daily
- `0 23 * * *` = 11:00pm daily
- `0 20 * * 0` = 8:00pm Sundays

### Add Custom Sections

Modify `scripts/morning-brief.sh` to include additional data sources.

## File Structure

```
workspace/
├── memory/
│   ├── YYYY-MM-DD.md          # Wind-down responses
│   ├── google-tasks.json      # Synced tasks
│   ├── stripe-data.json       # ARR data
│   └── heartbeat-state.json   # State tracking
├── skills/daily-rhythm/
│   ├── scripts/
│   │   ├── sync-google-tasks.py
│   │   ├── sync-stripe-arr.py
│   │   └── morning-brief.sh
│   ├── references/
│   │   └── CONFIGURATION.md
│   └── assets/
│       └── HEARTBEAT_TEMPLATE.md
└── HEARTBEAT.md               # Your custom schedule
```

## Scripts Reference

### sync-google-tasks.py
Syncs Google Tasks to local JSON. Requires `credentials.json`.

### sync-stripe-arr.py
Calculates ARR from active Stripe subscriptions. Requires `.env.stripe`.

### morning-brief.sh
Orchestrates data sync and brief generation.

## Troubleshooting

**Google Tasks not syncing?**
- Verify `credentials.json` exists
- Check Tasks API is enabled
- Run script manually to see errors

**Stripe ARR not showing?**
- Verify `.env.stripe` with valid API key
- Check for active subscriptions
- Run sync script manually

**Cron jobs not firing?**
- Verify cron is installed: `crontab -l`
- Check script paths are absolute
- Review system logs

See [CONFIGURATION.md](references/CONFIGURATION.md) for detailed troubleshooting.

## Best Practices

1. **Reply to wind-down prompts** for best morning brief experience
2. **Keep tasks updated** in Google Tasks
3. **Do weekly reviews** to stay aligned with goals
4. **Customize focus** as priorities change
5. **Adjust timing** to match your rhythms

## Requirements

- Python 3.7+
- Google Tasks API credentials (for task sync)
- Stripe API key (optional, for ARR tracking)
- Calendar ICS URL (optional, for events)
- Cron or OpenClaw cron system

Related Skills

daily-report-generator

3891
from openclaw/skills

Automatically generate daily/weekly work reports from git commits, calendar events, and task lists. Use when you need to quickly create professional work reports without manual effort.

Workflow & Productivity

email-daily-summary

3891
from openclaw/skills

Automatically logs into email accounts (Gmail, Outlook, QQ Mail, etc.) and generates daily email summaries. Use when the user wants to get a summary of their emails, check important messages, or create daily email digests.

Workflow & Productivity

daily-every

3891
from openclaw/skills

每天早上生成简报:上海天气 + V2EX 热帖前 5 条。 Use when: 用户说"生成今日简报",或 cron 在早上 8 点触发。 NOT for: 详细的天气预报或深度新闻分析。

web3-daily-mcp

3891
from openclaw/skills

MCP Server for Web3 Daily - Real-time Web3 research digest with macro news, KOL sentiment, market data, and personalized wallet analysis. This is an MCP server that provides tools for AI agents to fetch real data from the J4Y backend.

daily-fun-content

3891
from openclaw/skills

每日趣味内容生成器 - 每天早上搜索网络,预缓存一天的笑话、热梗、聊天技巧。包括搞笑段子、网络热梗解释、高情商对话示例。用 cron 触发,内容缓存到文件,心跳时随机取用。

obsidian-daily

3891
from openclaw/skills

Manage Obsidian Daily Notes via obsidian-cli. Create and open daily notes, append entries (journals, logs, tasks, links), read past notes by date, and search vault content. Handles relative dates like "yesterday", "last Friday", "3 days ago". Requires obsidian-cli installed via Homebrew (Mac/Linux) or Scoop (Windows).

daily-brief

3891
from openclaw/skills

Send a daily operational brief from your self-hosted OpenClaw to Telegram — agent health, unresolved issues, and weekly evolution highlights, every morning.

dailybit-tech-digest

3891
from openclaw/skills

Curated daily digest from 92 top tech blogs (Andrej Karpathy's list) with AI-generated Chinese summaries, hierarchical tags, and personalized recommendations. Triggers: "今日技术博客", "高质量技术文章", "tech blog digest", "优质博客推荐", "技术发展趋势", "AI行业动态", "每日技术简报", "中文科技摘要", "top tech blogs today", "curated tech reading", "what's trending in tech", "developer daily briefing", "有什么值得看的技术文章", "最近有什么技术趋势", "帮我看看今天的博客", "优质英文博客中文速览".

daily-wisdom

3891
from openclaw/skills

Daily wisdom, anecdotes & historical stories delivered via cron. Use when: "daily anecdote", "daily wisdom", "wisdom cron", "daily story", "morning wisdom", setting up recurring cultural/historical content delivery. Don't use when: one-off trivia (just answer directly), news digests, social media posts. Outputs: A rich daily message with original-language quote, story, and modern connection. Writes to history file to prevent repeats.

CPMO Daily Report - 终端虾每日汇报技能

3891
from openclaw/skills

_最后更新:2026-03-15(合并 cpmo.md 内容)_

daily-log

3891
from openclaw/skills

每日工作日志生成技能。触发时机:每次会话结束前或完成重要任务后。输出位置:memory/daily/YYYY-MM-DD.md。使用方法:加载 skill 后读取 references/spec.md 获取详细规范。

daily-backup

3891
from openclaw/skills

每日 Git 备份。提交工作区所有变更,记录变更摘要。触发时机:cron 定时任务或手动调用。