gcal-pro
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.
Best use case
gcal-pro is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
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.
Teams using gcal-pro 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
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/gcal-pro/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How gcal-pro Compares
| Feature / Agent | gcal-pro | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
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.
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.
SKILL.md Source
# 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:**
1. User must create Google Cloud project and OAuth credentials
2. Save `client_secret.json` to `~/.config/gcal-pro/`
3. Run authentication:
```bash
python scripts/gcal_auth.py auth
```
4. Browser opens → user grants calendar access → done
**Check auth status:**
```bash
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?":
```bash
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)**
```bash
python scripts/gcal_core.py quick -q "Lunch with Alex Friday at noon"
```
**Option 2: Structured create (via Python)**
```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:
1. Show event details
2. Ask "Should I delete/reschedule this?"
3. Only proceed with `confirmed=True` or `-y` flag after user confirms
**Delete:**
```bash
# 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":
```bash
python scripts/gcal_core.py free
```
### Morning Brief (Pro + Cron)
Set up via Clawdbot cron to send daily agenda:
```python
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?Related Skills
gcalcli
Interact with Google Calendar via gcalcli
portfolio-watcher
Monitor stock/crypto holdings, get price alerts, track portfolio performance
portainer
Control Docker containers and stacks via Portainer API. List containers, start/stop/restart, view logs, and redeploy stacks from git.
portable-tools
Build cross-device tools without hardcoding paths or account names
polymarket
Trade prediction markets on Polymarket. Analyze odds, place bets, track positions, automate alerts, and maximize returns from event outcomes. Covers sports, politics, entertainment, and more.
polymarket-traiding-bot
No description provided.
polymarket-analysis
Analyze Polymarket prediction markets for trading edges. Pair Cost arbitrage, whale tracking, sentiment analysis, momentum signals, user profile tracking. No execution.
polymarket-agent
Autonomous prediction market agent - analyzes markets, researches news, and identifies trading opportunities
polymarket-5
Query Polymarket prediction markets. Use for questions about prediction markets, betting odds, market prices, event probabilities, or when user asks about Polymarket data.
polymarket-4
Query Polymarket prediction markets. Use for questions about prediction markets, betting odds, market prices, event probabilities, or when user asks about Polymarket data.
polymarket-3
Query Polymarket prediction market odds and events via CLI. Search for markets, get current prices, list events by category. Supports sports betting (NFL, NBA, soccer/EPL, Champions League), politics, crypto, elections, geopolitics. Real money markets = more accurate than polls. No API key required. Use when asked about odds, probabilities, predictions, or "what are the chances of X".
polymarket-2
Query Polymarket prediction markets - check odds, trending markets, search events, track prices.