Browser & AutomationDocumentedScanned

daily-rhythm

Automated daily planning and reflection system with morning briefs, wind-down prompts, sleep nudges.

Share:

Installation

npx clawhub@latest install daily-rhythm

View the full skill documentation and source below.

Documentation

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

  • Install the skill and ensure scripts are executable

  • Configure data sources (Google Tasks, optional Stripe, Calendar)

  • Set up cron jobs for automation

  • Customize your focus area and Daily Intention (prayer, affirmation, quote, or centering thought)

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

    pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client stripe

    Step 2: Configure Google Tasks

  • Go to [Google Cloud Console]()

  • Create project β†’ Enable Tasks API

  • Create OAuth 2.0 credentials (Desktop app)

  • Download credentials.json to ~/.openclaw/google-tasks/

  • Run once to authenticate: python3 scripts/sync-google-tasks.py
  • See CONFIGURATION.md for detailed steps.

    Step 3: Configure Stripe (Optional)

    For ARR tracking in morning briefs:

  • Create .env.stripe in workspace root:

  • STRIPE_API_KEY=sk_live_...

  • Set ARR target in state file
  • Step 4: Configure Calendar

    Add ICS URL to TOOLS.md:

    ### Calendar
    - **ICS URL:** `

    Step 5: Set Up Cron Jobs

    Option A: System Cron (Traditional)

    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:

  • Syncing latest data (tasks, ARR)

  • Reading wind-down priority from memory/YYYY-MM-DD.md

  • Fetching calendar from ICS URL

  • Fetching weather (if configured)

  • Compiling all sections into formatted message
  • Wind-Down Response Flow

    When user replies to 10:30pm prompt:

  • Parse their tomorrow priority

  • Generate actionable suggestions

  • Break into steps

  • Identify resources

  • Ask confirmation

  • Save to memory/YYYY-MM-DD.md

  • Include in next morning's brief
  • Weekly Review Flow

    Sunday 8pm prompt asks reflection questions. When user replies:

  • Summarize their week

  • Identify key priorities

  • Create tasks in Google Tasks

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

    ### 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 for detailed troubleshooting.

    Best Practices

  • Reply to wind-down prompts for best morning brief experience

  • Keep tasks updated in Google Tasks

  • Do weekly reviews to stay aligned with goals

  • Customize focus as priorities change

  • 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