{"id":"798e1edf-9d9f-452d-8b2b-8b5362ee4611","shortId":"Y9xRZX","kind":"skill","title":"google-calendar","tagline":"Interact with Google Calendar - list calendars, view events, create/update/delete events, and find free time.\nUse when user asks to: check calendar, schedule a meeting, create an event, find available time, list upcoming events,\ndelete or update a calendar event, or respond to me","description":"# Google Calendar\n\nLightweight Google Calendar integration with standalone OAuth authentication. No MCP server required.\n\n> **⚠️ Requires Google Workspace account.** Personal Gmail accounts are not supported.\n\n## First-Time Setup\n\nAuthenticate with Google (opens browser):\n```bash\npython scripts/auth.py login\n```\n\nCheck authentication status:\n```bash\npython scripts/auth.py status\n```\n\nLogout when needed:\n```bash\npython scripts/auth.py logout\n```\n\n## Commands\n\nAll operations via `scripts/gcal.py`. Auto-authenticates on first use if not logged in.\n\n### List Calendars\n```bash\npython scripts/gcal.py list-calendars\n```\n\n### List Events\n```bash\n# List events from primary calendar (default: next 30 days)\npython scripts/gcal.py list-events\n\n# List events with specific time range\npython scripts/gcal.py list-events --time-min 2024-01-15T00:00:00Z --time-max 2024-01-31T23:59:59Z\n\n# List events from a specific calendar\npython scripts/gcal.py list-events --calendar \"work@example.com\"\n\n# Limit results\npython scripts/gcal.py list-events --max-results 10\n```\n\n### Get Event Details\n```bash\npython scripts/gcal.py get-event EVENT_ID\npython scripts/gcal.py get-event EVENT_ID --calendar \"work@example.com\"\n```\n\n### Create Event\n```bash\n# Basic event\npython scripts/gcal.py create-event \"Team Meeting\" \"2024-01-15T10:00:00Z\" \"2024-01-15T11:00:00Z\"\n\n# Event with description and location\npython scripts/gcal.py create-event \"Team Meeting\" \"2024-01-15T10:00:00Z\" \"2024-01-15T11:00:00Z\" \\\n    --description \"Weekly sync\" --location \"Conference Room A\"\n\n# Event with attendees\npython scripts/gcal.py create-event \"Team Meeting\" \"2024-01-15T10:00:00Z\" \"2024-01-15T11:00:00Z\" \\\n    --attendees user1@example.com user2@example.com\n\n# Event on specific calendar\npython scripts/gcal.py create-event \"Meeting\" \"2024-01-15T10:00:00Z\" \"2024-01-15T11:00:00Z\" \\\n    --calendar \"work@example.com\"\n```\n\n### Update Event\n```bash\n# Update event title\npython scripts/gcal.py update-event EVENT_ID --summary \"New Title\"\n\n# Update event time\npython scripts/gcal.py update-event EVENT_ID --start \"2024-01-15T14:00:00Z\" --end \"2024-01-15T15:00:00Z\"\n\n# Update multiple fields\npython scripts/gcal.py update-event EVENT_ID \\\n    --summary \"Updated Meeting\" --description \"New agenda\" --location \"Room B\"\n\n# Update attendees\npython scripts/gcal.py update-event EVENT_ID --attendees user1@example.com user3@example.com\n```\n\n### Delete Event\n```bash\npython scripts/gcal.py delete-event EVENT_ID\npython scripts/gcal.py delete-event EVENT_ID --calendar \"work@example.com\"\n```\n\n### Find Free Time\nFind the first available slot for a meeting with specified attendees:\n```bash\n# Find 30-minute slot for yourself\npython scripts/gcal.py find-free-time \\\n    --attendees me \\\n    --time-min \"2024-01-15T09:00:00Z\" \\\n    --time-max \"2024-01-15T17:00:00Z\" \\\n    --duration 30\n\n# Find 60-minute slot with multiple attendees\npython scripts/gcal.py find-free-time \\\n    --attendees me user1@example.com user2@example.com \\\n    --time-min \"2024-01-15T09:00:00Z\" \\\n    --time-max \"2024-01-19T17:00:00Z\" \\\n    --duration 60\n```\n\n### Respond to Event Invitation\n```bash\n# Accept an invitation\npython scripts/gcal.py respond-to-event EVENT_ID accepted\n\n# Decline an invitation\npython scripts/gcal.py respond-to-event EVENT_ID declined\n\n# Mark as tentative\npython scripts/gcal.py respond-to-event EVENT_ID tentative\n\n# Respond without notifying organizer\npython scripts/gcal.py respond-to-event EVENT_ID accepted --no-notify\n```\n\n## Date/Time Format\n\nAll times use ISO 8601 format with timezone:\n- UTC: `2024-01-15T10:30:00Z`\n- With offset: `2024-01-15T10:30:00-05:00` (EST)\n\n## Calendar ID Format\n\n- Primary calendar: Use `primary` or omit the `--calendar` flag\n- Other calendars: Use the calendar ID from `list-calendars` (usually an email address)\n\n## Token Management\n\nTokens stored securely using the system keyring:\n- **macOS**: Keychain\n- **Windows**: Windows Credential Locker\n- **Linux**: Secret Service API (GNOME Keyring, KDE Wallet, etc.)\n\nService name: `google-calendar-skill-oauth`\n\nTokens are automatically refreshed when expired using Google's cloud function.","tags":["google","calendar","skills","sanjay3290","agent-skills","ai-skills","atlassian","azure-devops","claude-code","claude-skills","confluence","deep-research"],"capabilities":["skill","source-sanjay3290","skill-google-calendar","topic-agent-skills","topic-ai-skills","topic-atlassian","topic-azure-devops","topic-claude-code","topic-claude-skills","topic-confluence","topic-deep-research","topic-elevenlabs","topic-gmail","topic-google-calendar","topic-google-drive"],"categories":["ai-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sanjay3290/ai-skills/google-calendar","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sanjay3290/ai-skills","source_repo":"https://github.com/sanjay3290/ai-skills","install_from":"skills.sh"}},"qualityScore":"0.574","qualityRationale":"deterministic score 0.57 from registry signals: · indexed on github topic:agent-skills · 248 github stars · SKILL.md body (4,123 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-02T18:54:10.452Z","embedding":null,"createdAt":"2026-04-18T22:05:13.230Z","updatedAt":"2026-05-02T18:54:10.452Z","lastSeenAt":"2026-05-02T18:54:10.452Z","tsv":"'-01':153,162,224,230,248,254,277,283,302,308,343,350,438,447,475,484,560,568 '-05':573 '-15':154,225,231,249,255,278,284,303,309,344,351,439,448,476,561,569 '-19':485 '-31':163 '00':156,227,233,251,257,280,286,305,311,346,353,441,450,478,487,572,574 '00z':157,228,234,252,258,281,287,306,312,347,354,442,451,479,488,564 '10':190 '2024':152,161,223,229,247,253,276,282,301,307,342,349,437,446,474,483,559,567 '30':131,421,453,563,571 '59':165 '59z':166 '60':455,490 '8601':554 'accept':496,507,544 'account':64,67 'address':601 'agenda':370 'api':620 'ask':21 'attende':268,288,375,383,418,432,460,467 'authent':56,75,85,105 'auto':104 'auto-authent':103 'automat':635 'avail':32,411 'b':373 'bash':80,87,94,115,123,194,213,317,388,419,495 'basic':214 'browser':79 'calendar':3,7,9,24,41,48,51,114,120,128,172,178,209,294,313,403,576,580,586,589,592,597,630 'check':23,84 'cloud':642 'command':98 'confer':263 'creat':28,211,219,243,272,298 'create-ev':218,242,271,297 'create/update/delete':12 'credenti':615 'date/time':548 'day':132 'declin':508,519 'default':129 'delet':37,386,392,399 'delete-ev':391,398 'descript':237,259,368 'detail':193 'durat':452,489 'email':600 'end':348 'est':575 'etc':625 'event':11,13,30,36,42,122,125,137,139,148,168,177,186,192,199,200,206,207,212,215,220,235,244,266,273,291,299,316,319,325,326,332,338,339,362,363,380,381,387,393,394,400,401,493,504,505,516,517,528,529,541,542 'expir':638 'field':357 'find':15,31,405,408,420,429,454,464 'find-free-tim':428,463 'first':72,107,410 'first-tim':71 'flag':587 'format':549,555,578 'free':16,406,430,465 'function':643 'get':191,198,205 'get-ev':197,204 'gmail':66 'gnome':621 'googl':2,6,47,50,62,77,629,640 'google-calendar':1 'google-calendar-skill-oauth':628 'id':201,208,327,340,364,382,395,402,506,518,530,543,577,593 'integr':52 'interact':4 'invit':494,498,510 'iso':553 'kde':623 'keychain':612 'keyr':610,622 'lightweight':49 'limit':180 'linux':617 'list':8,34,113,119,121,124,136,138,147,167,176,185,596 'list-calendar':118,595 'list-ev':135,146,175,184 'locat':239,262,371 'locker':616 'log':111 'login':83 'logout':91,97 'maco':611 'manag':603 'mark':520 'max':160,188,445,482 'max-result':187 'mcp':58 'meet':27,222,246,275,300,367,415 'min':151,436,473 'minut':422,456 'multipl':356,459 'name':627 'need':93 'new':329,369 'next':130 'no-notifi':545 'notifi':534,547 'oauth':55,632 'offset':566 'omit':584 'open':78 'oper':100 'organ':535 'person':65 'primari':127,579,582 'python':81,88,95,116,133,144,173,182,195,202,216,240,269,295,321,334,358,376,389,396,426,461,499,511,523,536 'rang':143 'refresh':636 'requir':60,61 'respond':44,491,502,514,526,532,539 'respond-to-ev':501,513,525,538 'result':181,189 'room':264,372 'schedul':25 'scripts/auth.py':82,89,96 'scripts/gcal.py':102,117,134,145,174,183,196,203,217,241,270,296,322,335,359,377,390,397,427,462,500,512,524,537 'secret':618 'secur':606 'server':59 'servic':619,626 'setup':74 'skill':631 'skill-google-calendar' 'slot':412,423,457 'source-sanjay3290' 'specif':141,171,293 'specifi':417 'standalon':54 'start':341 'status':86,90 'store':605 'summari':328,365 'support':70 'sync':261 'system':609 't00':155 't09':440,477 't10':226,250,279,304,562,570 't11':232,256,285,310 't14':345 't15':352 't17':449,486 't23':164 'team':221,245,274 'tentat':522,531 'time':17,33,73,142,150,159,333,407,431,435,444,466,472,481,551 'time-max':158,443,480 'time-min':149,434,471 'timezon':557 'titl':320,330 'token':602,604,633 'topic-agent-skills' 'topic-ai-skills' 'topic-atlassian' 'topic-azure-devops' 'topic-claude-code' 'topic-claude-skills' 'topic-confluence' 'topic-deep-research' 'topic-elevenlabs' 'topic-gmail' 'topic-google-calendar' 'topic-google-drive' 'upcom':35 'updat':39,315,318,324,331,337,355,361,366,374,379 'update-ev':323,336,360,378 'use':18,108,552,581,590,607,639 'user':20 'user1@example.com':289,384,469 'user2@example.com':290,470 'user3@example.com':385 'usual':598 'utc':558 'via':101 'view':10 'wallet':624 'week':260 'window':613,614 'without':533 'work@example.com':179,210,314,404 'workspac':63","prices":[{"id":"d46e6571-f329-47ab-bb6d-ae70bec52e4d","listingId":"798e1edf-9d9f-452d-8b2b-8b5362ee4611","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sanjay3290","category":"ai-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:05:13.230Z"}],"sources":[{"listingId":"798e1edf-9d9f-452d-8b2b-8b5362ee4611","source":"github","sourceId":"sanjay3290/ai-skills/google-calendar","sourceUrl":"https://github.com/sanjay3290/ai-skills/tree/main/skills/google-calendar","isPrimary":false,"firstSeenAt":"2026-04-18T22:05:13.230Z","lastSeenAt":"2026-05-02T18:54:10.452Z"}],"details":{"listingId":"798e1edf-9d9f-452d-8b2b-8b5362ee4611","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sanjay3290","slug":"google-calendar","github":{"repo":"sanjay3290/ai-skills","stars":248,"topics":["agent-skills","ai-skills","atlassian","azure-devops","claude-code","claude-skills","confluence","deep-research","elevenlabs","gmail","google-calendar","google-drive","google-workspace","imagen","jira","mcp","mysql","notebooklm","postgresql","text-to-speech"],"license":"apache-2.0","html_url":"https://github.com/sanjay3290/ai-skills","pushed_at":"2026-04-13T14:16:19Z","description":"Collection of agent skills for AI coding assistants","skill_md_sha":"f000d8841da0eba3710f09a8e2f12185883df5ec","skill_md_path":"skills/google-calendar/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sanjay3290/ai-skills/tree/main/skills/google-calendar"},"layout":"multi","source":"github","category":"ai-skills","frontmatter":{"name":"google-calendar","license":"Apache-2.0","description":"Interact with Google Calendar - list calendars, view events, create/update/delete events, and find free time.\nUse when user asks to: check calendar, schedule a meeting, create an event, find available time, list upcoming events,\ndelete or update a calendar event, or respond to meeting invitations. Lightweight alternative to full\nGoogle Workspace MCP server with standalone OAuth authentication."},"skills_sh_url":"https://skills.sh/sanjay3290/ai-skills/google-calendar"},"updatedAt":"2026-05-02T18:54:10.452Z"}}