skills/google/google-calendar-sync/SKILL.md
Manages Google Calendar through the Calendar API. Create, read, update, and delete events, manage multiple calendars, set reminders, handle recurring events, and sync with local schedules. Use when working with Google Calendar, scheduling events, checking availability, managing meetings, or automating calendar workflows.
npx skillsauth add astoreyai/claude-skills google-calendar-syncInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Comprehensive Google Calendar integration enabling event management, calendar organization, availability checking, recurring event handling, and workflow automation through the Google Calendar API v3.
When asked to work with Google Calendar:
1. Enable Calendar API:
# Visit Google Cloud Console
# https://console.cloud.google.com/
# Enable Calendar API for your project
# APIs & Services > Enable APIs and Services > Google Calendar API
2. Create OAuth2 Credentials:
# In Google Cloud Console:
# APIs & Services > Credentials > Create Credentials > OAuth client ID
# Application type: Desktop app
# Download credentials as credentials.json
3. Install Dependencies:
pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client python-dateutil pytz --break-system-packages
4. Initial Authentication:
python scripts/authenticate.py
# Opens browser for Google sign-in
# Saves token.json for future use
See reference/setup-guide.md for detailed setup.
View upcoming events:
# Today's events
python scripts/list_events.py --today
# This week
python scripts/list_events.py --days 7
# Specific date range
python scripts/list_events.py \
--start 2025-01-01 \
--end 2025-01-31
# Next N events
python scripts/list_events.py --limit 10
Filter events:
# By search term
python scripts/list_events.py --query "team meeting"
# By calendar
python scripts/list_events.py --calendar "Work"
# Only free/busy
python scripts/list_events.py --show-deleted false
Get event details:
# Get specific event
python scripts/get_event.py --event-id EVENT_ID
# Export to file
python scripts/get_event.py --event-id EVENT_ID --output event.json
Simple event:
# Basic event
python scripts/create_event.py \
--summary "Team Meeting" \
--start "2025-01-20 14:00" \
--end "2025-01-20 15:00"
# With description
python scripts/create_event.py \
--summary "Project Review" \
--start "2025-01-21 10:00" \
--end "2025-01-21 11:00" \
--description "Q4 project review meeting"
# With location
python scripts/create_event.py \
--summary "Client Meeting" \
--start "2025-01-22 14:00" \
--end "2025-01-22 15:00" \
--location "Conference Room A"
All-day event:
python scripts/create_event.py \
--summary "Conference" \
--start "2025-02-15" \
--end "2025-02-17" \
--all-day
With attendees:
python scripts/create_event.py \
--summary "Team Standup" \
--start "2025-01-20 09:00" \
--duration 30 \
--attendees "[email protected],[email protected]" \
--send-notifications
With reminders:
python scripts/create_event.py \
--summary "Important Meeting" \
--start "2025-01-20 14:00" \
--duration 60 \
--reminders "popup:10,email:60" # 10 min popup, 60 min email
Video conference:
# Add Google Meet link
python scripts/create_event.py \
--summary "Virtual Meeting" \
--start "2025-01-20 14:00" \
--duration 60 \
--add-meet-link
Create recurring:
# Daily standup
python scripts/create_recurring.py \
--summary "Daily Standup" \
--start "2025-01-20 09:00" \
--duration 15 \
--rule "FREQ=DAILY;COUNT=30"
# Weekly meeting
python scripts/create_recurring.py \
--summary "Team Meeting" \
--start "2025-01-20 14:00" \
--duration 60 \
--rule "FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20251231"
# Monthly review
python scripts/create_recurring.py \
--summary "Monthly Review" \
--start "2025-01-15 10:00" \
--duration 120 \
--rule "FREQ=MONTHLY;BYMONTHDAY=15"
Recurrence rule examples:
# Every weekday
"FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR"
# Every Monday and Wednesday
"FREQ=WEEKLY;BYDAY=MO,WE"
# First Monday of every month
"FREQ=MONTHLY;BYDAY=1MO"
# Every 2 weeks
"FREQ=WEEKLY;INTERVAL=2"
# Until specific date
"FREQ=DAILY;UNTIL=20251231T235959Z"
# Specific number of occurrences
"FREQ=WEEKLY;COUNT=10"
See reference/recurrence-rules.md for complete RRULE syntax.
Modify event:
# Update time
python scripts/update_event.py \
--event-id EVENT_ID \
--start "2025-01-20 15:00" \
--end "2025-01-20 16:00"
# Update summary and description
python scripts/update_event.py \
--event-id EVENT_ID \
--summary "Updated Meeting Title" \
--description "New description"
# Add attendees
python scripts/update_event.py \
--event-id EVENT_ID \
--add-attendees "[email protected]"
# Move to different calendar
python scripts/move_event.py \
--event-id EVENT_ID \
--destination-calendar "Personal"
Update recurring instance:
# Update single instance
python scripts/update_event.py \
--event-id EVENT_ID \
--instance-date "2025-01-20" \
--start "2025-01-20 16:00"
# Update all future instances
python scripts/update_event.py \
--event-id EVENT_ID \
--start "2025-01-20 16:00" \
--update-following
Delete event:
# Delete single event
python scripts/delete_event.py --event-id EVENT_ID
# Delete recurring instance
python scripts/delete_event.py \
--event-id EVENT_ID \
--instance-date "2025-01-20"
# Delete all future instances
python scripts/delete_event.py \
--event-id EVENT_ID \
--delete-following
Find free time:
# Check availability
python scripts/check_availability.py \
--start "2025-01-20 09:00" \
--end "2025-01-20 17:00" \
--duration 60
# Check multiple calendars
python scripts/check_availability.py \
--calendars "Work,Personal" \
--date "2025-01-20" \
--duration 30
# Find next available slot
python scripts/find_next_slot.py \
--duration 60 \
--business-hours-only
FreeBusy query:
# Check if people are free
python scripts/check_freebusy.py \
--emails "[email protected],[email protected]" \
--start "2025-01-20 14:00" \
--end "2025-01-20 15:00"
List calendars:
# Get all calendars
python scripts/list_calendars.py
# Get calendar details
python scripts/get_calendar.py --calendar-id "primary"
Create calendar:
# Create new calendar
python scripts/create_calendar.py \
--summary "Project Alpha" \
--description "Project Alpha team calendar" \
--timezone "America/New_York"
Share calendar:
# Share with user
python scripts/share_calendar.py \
--calendar-id CALENDAR_ID \
--email "[email protected]" \
--role writer
# Make public
python scripts/share_calendar.py \
--calendar-id CALENDAR_ID \
--public \
--role reader
Calendar roles:
owner - Full controlwriter - Create/modify eventsreader - View onlyfreeBusyReader - See free/busy onlyScenario: Find time and schedule meeting
# 1. Check availability
python scripts/check_freebusy.py \
--emails "[email protected],[email protected]" \
--date "2025-01-20" \
--duration 60
# 2. Create meeting
python scripts/create_event.py \
--summary "Project Discussion" \
--start "2025-01-20 14:00" \
--duration 60 \
--attendees "[email protected],[email protected]" \
--add-meet-link \
--send-notifications
Scenario: Export/import events
# Export to ICS
python scripts/export_calendar.py \
--calendar-id "primary" \
--output calendar.ics \
--start "2025-01-01" \
--end "2025-12-31"
# Import from ICS
python scripts/import_calendar.py \
--file events.ics \
--calendar-id "primary"
Scenario: Get morning email with day's schedule
# Generate daily summary
python scripts/daily_summary.py \
--send-email \
--to "[email protected]"
Scenario: Create recurring reminders
# Create recurring task
python scripts/create_recurring.py \
--summary "Submit Weekly Report" \
--start "2025-01-20 16:00" \
--duration 30 \
--rule "FREQ=WEEKLY;BYDAY=FR" \
--reminders "popup:0"
Scenario: Analyze calendar usage
# Generate statistics
python scripts/calendar_stats.py \
--start "2025-01-01" \
--end "2025-01-31" \
--output stats.json
# Meeting time analysis
python scripts/meeting_analysis.py --days 30
Color IDs:
COLORS = {
'1': 'Lavender',
'2': 'Sage',
'3': 'Grape',
'4': 'Flamingo',
'5': 'Banana',
'6': 'Tangerine',
'7': 'Peacock',
'8': 'Graphite',
'9': 'Blueberry',
'10': 'Basil',
'11': 'Tomato'
}
Set event color:
python scripts/update_event.py \
--event-id EVENT_ID \
--color-id 9 # Blueberry
Reminder methods:
popup - In-app notificationemail - Email reminderReminder timing:
# Minutes before event
reminders = [
{'method': 'popup', 'minutes': 10},
{'method': 'email', 'minutes': 60},
{'method': 'popup', 'minutes': 1440} # 1 day
]
Use default reminders:
# Use calendar's default reminders
'useDefault': True
Specify timezone:
# Event in specific timezone
python scripts/create_event.py \
--summary "Meeting" \
--start "2025-01-20 14:00" \
--timezone "America/Los_Angeles" \
--duration 60
Common timezones:
'America/New_York'
'America/Chicago'
'America/Denver'
'America/Los_Angeles'
'Europe/London'
'Europe/Paris'
'Asia/Tokyo'
'Australia/Sydney'
'UTC'
Status values:
confirmed - Event is confirmed (default)tentative - Event is tentativecancelled - Event is cancelledSet status:
python scripts/update_event.py \
--event-id EVENT_ID \
--status tentative
Visibility options:
default - Default visibilitypublic - Public eventprivate - Private eventconfidential - Only time shown, details hiddenSet visibility:
python scripts/update_event.py \
--event-id EVENT_ID \
--visibility private
Calendar API quotas:
Best practices:
# Full access
'https://www.googleapis.com/auth/calendar'
# Read-only
'https://www.googleapis.com/auth/calendar.readonly'
# Events only
'https://www.googleapis.com/auth/calendar.events'
# Events read-only
'https://www.googleapis.com/auth/calendar.events.readonly'
# Settings only
'https://www.googleapis.com/auth/calendar.settings.readonly'
Authentication:
authenticate.py - OAuth setuprefresh_token.py - Refresh tokenEvents:
list_events.py - List eventsget_event.py - Get event detailscreate_event.py - Create eventcreate_recurring.py - Create recurring eventupdate_event.py - Update eventdelete_event.py - Delete eventmove_event.py - Move to different calendarAvailability:
check_availability.py - Check free timefind_next_slot.py - Find next availablecheck_freebusy.py - FreeBusy queryCalendars:
list_calendars.py - List all calendarsget_calendar.py - Get calendar detailscreate_calendar.py - Create calendarshare_calendar.py - Share calendarImport/Export:
export_calendar.py - Export to ICSimport_calendar.py - Import from ICSAutomation:
daily_summary.py - Daily schedule emailweekly_report.py - Weekly calendar reportsync_calendar.py - Sync with external sourceAnalytics:
calendar_stats.py - Usage statisticsmeeting_analysis.py - Meeting patternstime_tracking.py - Track time allocationSee examples/ for complete workflows:
"Invalid time zone"
"Invalid recurrence rule"
"Event not found"
"Insufficient permissions"
content-media
# YouTube Transcriber Skill Extract transcripts from YouTube videos, playlists, and channels with automatic intelligent processing. ## Overview One unified command that intelligently assesses input and handles everything—single videos, batch files, playlist expansion, channel extraction. No need to choose between commands; it figures out what to do. ## Capabilities - **Auto-Detect Input**: Single URL, file of URLs, playlist, channel - **Smart Expansion**: Automatically expands playlists/cha
development
# Trading Analysis Skill **Version**: 1.0.0 **Category**: Financial Analysis / Trading **Author**: Claude Code **Last Updated**: November 22, 2025 ## Overview Comprehensive trading performance analysis and edge identification system for Interactive Brokers accounts. Analyzes CSV statements to identify trading patterns, position sizing issues, time-of-day edges, and risk management problems. ## Features ### 1. **CSV Statement Parsing** - Parse Interactive Brokers activity statements (CSV for
development
# System Health Check & Cleanup Skill **Version**: 1.0.0 **Category**: System Administration / Performance Optimization **Author**: Claude Code **Last Updated**: November 22, 2025 ## Overview Automated system health monitoring and cleanup workflow. Diagnoses performance issues, identifies resource bottlenecks, fixes orphaned services, kills stale processes, and cleans cache bloat. Designed for archimedes (32c/125GB) but works on any Linux system. ## Features ### 1. **System Diagnostics** -
testing
Unified worklog system. Synthesizes session work into daily markdown files with clean bullet points. Supports weekly rollups for Slack #progress sharing. Replaces fragmented checkpoint/session-state/weekly-notes systems.