Back to Skills
    🦞

    advanced-calendar

    Advanced calendar skill with natural language

    By @toughworm
    View on GitHub
    SKILL.md
    ---
    name: advanced-calendar
    description: Advanced calendar skill with natural language processing, automatic reminders, and multi-channel notifications
    author: 小机与老板
    version: 1.0.2
    license: MIT
    tags: [calendar, scheduling, reminders, productivity, natural-language, automation, multi-channel]
    repository: https://github.com/openclaw/advanced-calendar
    ---
    
    # Advanced Calendar Skill for OpenClaw
    
    A comprehensive calendar system with natural language processing, automatic reminders, and seamless WhatsApp notifications.
    
    ## Features
    
    - **Natural Language Processing**: Create events using everyday language like "Schedule a meeting tomorrow at 3pm for 1 hour, remind me 30 minutes before"
    - **Smart Parsing**: Automatically detects dates, times, durations, locations, and reminder preferences from your input
    - **Interactive Creation**: When information is incomplete, the system asks for what it needs
    - **Multi-Channel Notifications**: Sends notifications via WhatsApp and other configured channels (Discord, Telegram, Signal, etc.)
    - **Persistent Reminders**: If no acknowledgment ("OK", "Got it", "Received", etc.) is received, reminders repeat every 15 minutes like a snooze alarm
    - **Flexible Reminders**: Set reminders minutes, hours, or days in advance
    - **Daily Summary**: Built-in daily summary feature - get a complete overview of today's schedule every morning
    - **Complete CRUD Operations**: Create, read, update, delete calendar events
    - **Local Storage**: All data stored locally, no external dependencies
    - **Cron Integration**: Automatic reminder checking every 5 minutes and optional daily morning summary
    
    ## Installation
    
    ```bash
    clawhub install advanced-calendar
    ```
    
    ## Usage
    
    ### Natural Language Commands
    
    The skill understands natural language commands:
    
    ```
    "Create a meeting tomorrow at 2pm to discuss the project, lasting 1 hour, remind me 30 minutes before"
    "Schedule a call with John next Tuesday at 10am, remind me 1 hour ahead"
    "I have lunch with Sarah today at 12:30pm"
    "Show me my calendar for this week"
    "What meetings do I have tomorrow?"
    ```
    
    ### Manual Commands
    
    For more control, you can use structured commands:
    
    ```bash
    # Create an event
    calendar create --title "Event Title" --date YYYY-MM-DD --time HH:MM [--duration MINUTES] [--location LOCATION] [--description DESCRIPTION] [--reminder MINUTES_BEFORE]
    
    # List upcoming events
    calendar list [--days N] [--from YYYY-MM-DD] [--to YYYY-MM-DD]
    
    # Get event details
    calendar get --id EVENT_ID
    
    # Update an event
    calendar update --id EVENT_ID [--title TITLE] [--date YYYY-MM-DD] [--time HH:MM] [--duration MINUTES] [--location LOCATION] [--description DESCRIPTION] [--reminder MINUTES_BEFORE]
    
    # Delete an event
    calendar delete --id EVENT_ID
    
    # Daily summary
    calendar daily-summary
    ```
    
    ### Integration
    
    The skill automatically integrates with OpenClaw's natural language processing. Simply speak to your OpenClaw instance naturally about scheduling, and it will handle the calendar operations.
    
    ## Configuration
    
    After installation, you may want to configure:
    
    1. Multi-channel notifications (WhatsApp, Discord, Telegram, Signal, etc.)
    2. Default reminder time preferences
    3. Default event duration
    4. Repeat reminder intervals (default: every 15 minutes until acknowledged)
    5. Acknowledgment keywords (default: "OK", "Got it", "Received", "Understood", "Ack", etc.)
    
    ## Examples
    
    ### Basic Event Creation
    ```
    User: "Schedule a team meeting tomorrow at 10am"
    System: [Asks for missing details like duration and reminder]
    ```
    
    ### Complete Event Specification
    ```
    User: "I have a doctor appointment next Friday at 2:30pm, lasts 45 minutes, please remind me 2 hours before"
    System: ✅ Created event: Doctor appointment
          Time: 2026-02-13 14:30, Duration: 45 minutes, Reminder: 120 minutes before
    ```
    
    ### Event Querying
    ```
    User: "What do I have scheduled this week?"
    System: [Lists all events for the next 7 days]
    ```
    
    ### Daily Summary
    ```
    User: "Show me my schedule for today"
    System: 📅 2026年02月03日 周二
    
          今日共有 3 个日程:
    
          1. 团队会议
             ⏰ 09:00
             📍 总部会议室
    
          2. 客户午餐
             ⏰ 12:30
             📍 赛特大厦
    
          3. 项目汇报
             ⏰ 15:00
             📝 季度项目进展汇报
    
          祝您今天顺利!
    ```
    
    ### Automated Daily Summary (Optional)
    You can configure automatic daily summaries to be sent every morning at 9:00 AM:
    
    ```bash
    # Via OpenClaw Cron - add this job to send daily summary automatically
    openclaw cron add \
      --name "daily-calendar-summary" \
      --schedule "0 9 * * *" \
      --command "calendar daily-summary"
    ```
    
    Or via natural language:
    ```
    User: "Set up a daily reminder every morning at 9am with my calendar summary"
    System: ✅ Daily summary scheduled for 9:00 AM every day
    ```
    
    ## Architecture
    
    - **Natural Language Processor**: Interprets human language into calendar events
    - **Intent Detection**: Identifies whether user wants to create, list, update, delete, or get daily summary of events
    - **Information Extraction**: Parses dates, times, durations, locations, and reminders from text
    - **Interactive Handler**: Manages conversations when information is incomplete
    - **Daily Summary Generator**: Creates formatted daily overview with all scheduled events
    - **Storage Layer**: JSON-based persistent storage
    - **Multi-Channel Notification System**: Automated reminders via WhatsApp, Discord, Telegram, Signal, and other configured channels
    - **Persistent Reminder Engine**: Snooze-alarm-style repeated notifications every 15 minutes until acknowledged
    - **Acknowledgment Tracker**: Monitors for user responses to stop repeated notifications
    - **Cron Integration**: Scheduled reminder checks and optional daily morning summaries
    
    ## Technical Requirements
    
    - OpenClaw 1.0+
    - Python 3.6+
    - At least one notification channel configured (WhatsApp, Discord, Telegram, Signal, etc.)
    
    ## Dependencies
    
    This skill requires the following Python packages which will be installed automatically during skill installation:
    
    - python-docx
    - lxml
    
    The skill includes a virtual environment setup script that will create and manage dependencies automatically.
    
    ## Customization
    
    The skill can be customized by modifying:
    - Default reminder times
    - Natural language parsing rules
    - Notification preferences
    - Storage location
    
    ## Troubleshooting
    
    - If events aren't showing up, check that the date/time format is correct
    - If reminders aren't working, verify WhatsApp is properly configured
    - For parsing issues, try being more explicit with dates and times
    
    ## Contributing
    
    We welcome contributions! Please see our contributing guidelines in the repository.
    
    ## Support
    
    For support, please open an issue in the GitHub repository or visit the OpenClaw community forums.