Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add zonghui1968/clawd-skills --skill "gcal-pro"
Install specific skill from multi-skill repository
# Description
Google Calendar integration for viewing, creating, and managing calendar events. Use when the user asks about their schedule, wants to add/edit/delete events, check availability, or needs a morning brief. Supports natural language like "What's on my calendar tomorrow?" or "Schedule lunch with Alex at noon Friday." Free tier provides read access; Pro tier ($12) adds create/edit/delete and morning briefs.
# SKILL.md
name: gcal-pro
description: Google Calendar integration for viewing, creating, and managing calendar events. Use when the user asks about their schedule, wants to add/edit/delete events, check availability, or needs a morning brief. Supports natural language like "What's on my calendar tomorrow?" or "Schedule lunch with Alex at noon Friday." Free tier provides read access; Pro tier ($12) adds create/edit/delete and morning briefs.
gcal-pro
Manage Google Calendar through natural conversation.
Quick Reference
| Action | Command | Tier |
|---|---|---|
| View today | python scripts/gcal_core.py today |
Free |
| View tomorrow | python scripts/gcal_core.py tomorrow |
Free |
| View week | python scripts/gcal_core.py week |
Free |
| Search events | python scripts/gcal_core.py search -q "meeting" |
Free |
| List calendars | python scripts/gcal_core.py calendars |
Free |
| Find free time | python scripts/gcal_core.py free |
Free |
| Quick add | python scripts/gcal_core.py quick -q "Lunch Friday noon" |
Pro |
| Delete event | python scripts/gcal_core.py delete --id EVENT_ID -y |
Pro |
| Morning brief | python scripts/gcal_core.py brief |
Pro |
Setup
First-time setup required:
- User must create Google Cloud project and OAuth credentials
- Save
client_secret.jsonto~/.config/gcal-pro/ - Run authentication:
bash python scripts/gcal_auth.py auth - Browser opens β user grants calendar access β done
Check auth status:
python scripts/gcal_auth.py status
Tiers
Free Tier
- View events (today, tomorrow, week, month)
- Search events
- List calendars
- Find free time slots
Pro Tier ($12 one-time)
- Everything in Free, plus:
- Create events
- Quick add (natural language)
- Update/reschedule events
- Delete events
- Morning brief via cron
Usage Patterns
Viewing Schedule
When user asks "What's on my calendar?" or "What do I have today?":
cd /path/to/gcal-pro
python scripts/gcal_core.py today
For specific ranges:
- "tomorrow" β python scripts/gcal_core.py tomorrow
- "this week" β python scripts/gcal_core.py week
- "meetings with Alex" β python scripts/gcal_core.py search -q "Alex"
Creating Events (Pro)
When user says "Add X to my calendar" or "Schedule Y":
Option 1: Quick add (natural language)
python scripts/gcal_core.py quick -q "Lunch with Alex Friday at noon"
Option 2: Structured create (via Python)
from scripts.gcal_core import create_event, parse_datetime
create_event(
summary="Lunch with Alex",
start=parse_datetime("Friday noon"),
location="Cafe Roma",
confirmed=True # Set False to show confirmation prompt
)
Modifying Events (Pro)
β οΈ CONFIRMATION REQUIRED for destructive actions!
Before deleting or significantly modifying an event, ALWAYS confirm with the user:
- Show event details
- Ask "Should I delete/reschedule this?"
- Only proceed with
confirmed=Trueor-yflag after user confirms
Delete:
# First, find the event
python scripts/gcal_core.py search -q "dentist"
# Shows event ID
# Then delete (with user confirmation)
python scripts/gcal_core.py delete --id abc123xyz -y
Finding Free Time
When user asks "When am I free?" or "Find time for a 1-hour meeting":
python scripts/gcal_core.py free
Morning Brief (Pro + Cron)
Set up via Clawdbot cron to send daily agenda:
from scripts.gcal_core import generate_morning_brief
print(generate_morning_brief())
Cron setup example:
- Schedule: 8:00 AM daily
- Action: Run python scripts/gcal_core.py brief
- Delivery: Send output to user's messaging channel
Error Handling
| Error | Cause | Solution |
|---|---|---|
| "client_secret.json not found" | Setup incomplete | Complete Google Cloud setup |
| "Token refresh failed" | Expired/revoked | Run python scripts/gcal_auth.py auth --force |
| "requires Pro tier" | Free user attempting write | Prompt upgrade or explain limitation |
| "Event not found" | Invalid event ID | Search for correct event first |
Timezone Handling
- All times are interpreted in user's local timezone (default: America/New_York)
- When user specifies timezone (e.g., "2 PM EST"), honor it
- Display times in user's local timezone
- Store in ISO 8601 format with timezone
Response Formatting
For event lists, use this format:
π
**Monday, January 27**
β’ 9:00 AM β Team standup
β’ 12:00 PM β Lunch with Alex π Cafe Roma
β’ 3:00 PM β Client call
π
**Tuesday, January 28**
β’ 10:00 AM β Dentist appointment π 123 Main St
For confirmations:
β Event created: "Lunch with Alex"
π
Friday, Jan 31 at 12:00 PM
π Cafe Roma
For morning brief:
βοΈ Good morning! Here's your day:
π Monday, January 27, 2026
You have 3 events today:
β’ 9:00 AM β Team standup
β’ 12:00 PM β Lunch with Alex
β’ 3:00 PM β Client call
π Tomorrow: 2 events
File Locations
~/.config/gcal-pro/
βββ client_secret.json # OAuth app credentials (user provides)
βββ token.json # User's access token (auto-generated)
βββ license.json # Pro license (if purchased)
Integration with Clawdbot
This skill works with:
- Cron: Schedule morning briefs
- Memory: Store calendar preferences
- Messaging: Deliver briefs via Telegram/WhatsApp/etc.
Upgrade Prompt
When a Free user attempts a Pro action, respond:
β οΈ Creating events requires gcal-pro Pro ($12 one-time).
Pro includes: Create, edit, delete events + morning briefs.
π Upgrade: [gumroad-link]
For now, I can show you your schedule (free) β want to see today's events?
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.