[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6P9R5APG7Y2V7V8QV17MSZY":3,"skill-same:01M6P9R5APG7Y2V7V8QV17MSZY":68},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":6,"ownerHtmlUrl":52,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":53,"install":54,"resources":67},"01M6P9R5APG7Y2V7V8QV17MSZY","google-calendar-automation",null,"Lightweight Google Calendar integration with standalone OAuth authentication. No MCP server required.","clodoaldoperito-droid\u002FARQUITETURA_JARVIS","clodoaldoperito-droid","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F259241428?v=4","01M6P1D7567KGD4J875631AZDY","01M6P1D7A0ZZDC72AG333YNZ7E",1,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fclodoaldoperito-droid\u002FARQUITETURA_JARVIS\u002Fblob\u002Fmain\u002Fagent_skills\u002Fgoogle-calendar-automation\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"google","automation","calendar","google calendar","google calendar automation","MCP","mcp server","authentication","integration","server","OAuth","community","critical","calendar integration","with","standalone","2026-11-10 10:12:30",false,"---\nname: google-calendar-automation\ndescription: \"Lightweight Google Calendar integration with standalone OAuth authentication. No MCP server required.\"\nlicense: Apache-2.0\nrisk: critical\nsource: community\nmetadata:\n  author: sanjay3290\n  version: \"1.0\"\n---\n\n# 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## When to Use\n- You need to list, create, inspect, or update Google Calendar events from local scripts.\n- The task requires OAuth-backed calendar automation without standing up an MCP server.\n- You need quick operational access to calendars, schedules, attendees, or event details in a Workspace environment.\n\n## First-Time Setup\n\nAuthenticate with Google (opens browser):\n```bash\npython scripts\u002Fauth.py login\n```\n\nCheck authentication status:\n```bash\npython scripts\u002Fauth.py status\n```\n\nLogout when needed:\n```bash\npython scripts\u002Fauth.py logout\n```\n\n## Commands\n\nAll operations via `scripts\u002Fgcal.py`. Auto-authenticates on first use if not logged in.\n\n### List Calendars\n```bash\npython scripts\u002Fgcal.py list-calendars\n```\n\n### List Events\n```bash\n# List events from primary calendar (default: next 30 days)\npython scripts\u002Fgcal.py list-events\n\n# List events with specific time range\npython scripts\u002Fgcal.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\u002Fgcal.py list-events --calendar \"work@example.com\"\n\n# Limit results\npython scripts\u002Fgcal.py list-events --max-results 10\n```\n\n### Get Event Details\n```bash\npython scripts\u002Fgcal.py get-event EVENT_ID\npython scripts\u002Fgcal.py get-event EVENT_ID --calendar \"work@example.com\"\n```\n\n### Create Event\n```bash\n# Basic event\npython scripts\u002Fgcal.py create-event \"Team Meeting\" \"2024-01-15T10:00:00Z\" \"2024-01-15T11:00:00Z\"\n\n# Event with description and location\npython scripts\u002Fgcal.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\u002Fgcal.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\u002Fgcal.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\u002Fgcal.py update-event EVENT_ID --summary \"New Title\"\n\n# Update event time\npython scripts\u002Fgcal.py update-event EVENT_ID --start \"2024-01-15T14:00:00Z\" --end \"2024-01-15T15:00:00Z\"\n\n# Update multiple fields\npython scripts\u002Fgcal.py update-event EVENT_ID \\\n    --summary \"Updated Meeting\" --description \"New agenda\" --location \"Room B\"\n\n# Update attendees\npython scripts\u002Fgcal.py update-event EVENT_ID --attendees user1@example.com user3@example.com\n```\n\n### Delete Event\n```bash\npython scripts\u002Fgcal.py delete-event EVENT_ID\npython scripts\u002Fgcal.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\u002Fgcal.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\u002Fgcal.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\u002Fgcal.py respond-to-event EVENT_ID accepted\n\n# Decline an invitation\npython scripts\u002Fgcal.py respond-to-event EVENT_ID declined\n\n# Mark as tentative\npython scripts\u002Fgcal.py respond-to-event EVENT_ID tentative\n\n# Respond without notifying organizer\npython scripts\u002Fgcal.py respond-to-event EVENT_ID accepted --no-notify\n```\n\n## Date\u002FTime 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.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","# 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## When to Use\n- You need to list, create, inspect, or update Google Calendar events from local scripts.\n- The task requires OAuth-backed calendar automation without standing up an MCP server.\n- You need quick operational access to calendars, schedules, attendees, or event details in a Workspace environment.\n\n## First-Time Setup\n\nAuthenticate with Google (opens browser):\n```bash\npython scripts\u002Fauth.py login\n```\n\nCheck authentication status:\n```bash\npython scripts\u002Fauth.py status\n```\n\nLogout when needed:\n```bash\npython scripts\u002Fauth.py logout\n```\n\n## Commands\n\nAll operations via `scripts\u002Fgcal.py`. Auto-authenticates on first use if not logged in.\n\n### List Calendars\n```bash\npython scripts\u002Fgcal.py list-calendars\n```\n\n### List Events\n```bash\n# List events from primary calendar (default: next 30 days)\npython scripts\u002Fgcal.py list-events\n\n# List events with specific time range\npython scripts\u002Fgcal.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\u002Fgcal.py list-events --calendar \"work@example.com\"\n\n# Limit results\npython scripts\u002Fgcal.py list-events --max-results 10\n```\n\n### Get Event Details\n```bash\npython scripts\u002Fgcal.py get-event EVENT_ID\npython scripts\u002Fgcal.py get-event EVENT_ID --calendar \"work@example.com\"\n```\n\n### Create Event\n```bash\n# Basic event\npython scripts\u002Fgcal.py create-event \"Team Meeting\" \"2024-01-15T10:00:00Z\" \"2024-01-15T11:00:00Z\"\n\n# Event with description and location\npython scripts\u002Fgcal.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\u002Fgcal.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\u002Fgcal.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\u002Fgcal.py update-event EVENT_ID --summary \"New Title\"\n\n# Update event time\npython scripts\u002Fgcal.py update-event EVENT_ID --start \"2024-01-15T14:00:00Z\" --end \"2024-01-15T15:00:00Z\"\n\n# Update multiple fields\npython scripts\u002Fgcal.py update-event EVENT_ID \\\n    --summary \"Updated Meeting\" --description \"New agenda\" --location \"Room B\"\n\n# Update attendees\npython scripts\u002Fgcal.py update-event EVENT_ID --attendees user1@example.com user3@example.com\n```\n\n### Delete Event\n```bash\npython scripts\u002Fgcal.py delete-event EVENT_ID\npython scripts\u002Fgcal.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\u002Fgcal.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\u002Fgcal.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\u002Fgcal.py respond-to-event EVENT_ID accepted\n\n# Decline an invitation\npython scripts\u002Fgcal.py respond-to-event EVENT_ID declined\n\n# Mark as tentative\npython scripts\u002Fgcal.py respond-to-event EVENT_ID tentative\n\n# Respond without notifying organizer\npython scripts\u002Fgcal.py respond-to-event EVENT_ID accepted --no-notify\n```\n\n## Date\u002FTime 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.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n",{"name":5,"risk":35,"source":34,"license":14,"metadata":44,"description":7},{"author":45,"version":46},"sanjay3290","1.0","main","cd2930847fb1ada3557e9207d3be0a1a1ed08f24","agent_skills\u002Fgoogle-calendar-automation",0,"https:\u002F\u002Fgithub.com\u002Fclodoaldoperito-droid\u002FARQUITETURA_JARVIS","https:\u002F\u002Fgithub.com\u002Fclodoaldoperito-droid","2026-07-22 10:13:36",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add clodoaldoperito-droid\u002FARQUITETURA_JARVIS --skill google-calendar-automation",{"tool":60,"command":61},"bunx","bunx skills add clodoaldoperito-droid\u002FARQUITETURA_JARVIS --skill google-calendar-automation",{"tool":63,"command":64},"pnpm","pnpm dlx skills add clodoaldoperito-droid\u002FARQUITETURA_JARVIS --skill google-calendar-automation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fclodoaldoperito-droid\u002FARQUITETURA_JARVIS\u002Fblob\u002Fmain\u002Fagent_skills\u002Fgoogle-calendar-automation\u002FSKILL.md",true,[],[69,98,132,151,166,188],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":73,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":79,"publishedAt":39},"01M6Q6BV6JFVC1CHDVW58F63AB","plotly","Interactive visualization library. Use when you need hover info, zoom, pan, or web-embeddable charts. Best for dashboards, exploratory analysis, and presentations. For static publication figures use matplotlib or scientific-visualization.","MIT","https:\u002F\u002Fgithub.com\u002Fclodoaldoperito-droid\u002FARQUITETURA_JARVIS\u002Fblob\u002Fmain\u002Fskills_extracted\u002Fskills\u002Fskills\u002Fplotly\u002FSKILL.md",[76],{"categoryNo":77,"categoryName":78,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000013","分析与可视化",[71,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97],"static","Charts","for","you","figures","zoom","scientific","info","use","interactive","dashboards","matplotlib","analysis","library","visualization","presentations","hover","web",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":73,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":112,"publishedAt":39},"01M6Q5YRJC1RTZ8A8FK6Q80SH1","native-data-fetching","Use when implementing or debugging ANY network request, API call, or data fetching. Covers fetch API, React Query, SWR, error handling, caching, offline support, and Expo Router data loaders (useLoaderData).","https:\u002F\u002Fgithub.com\u002Fclodoaldoperito-droid\u002FARQUITETURA_JARVIS\u002Fblob\u002Fmain\u002Fskills_extracted\u002Fskills\u002Fskills\u002Fnative-data-fetching\u002FSKILL.md",[104,107],{"categoryNo":105,"categoryName":106,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":108,"categoryName":109,"taxonomyType":110,"taxonomyTypeDesc":111},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,88,128,129,130,131],"native","data fetching","data","native data fetching","react","fetch","debugging","error","caching","error handling","query","call","router","swr","api","expo router","request","implementing","support",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":73,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":139,"publishedAt":39},"01M6Q4PFYVRE7AE05V883QFD55","expo-tailwind-setup","Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling","https:\u002F\u002Fgithub.com\u002Fclodoaldoperito-droid\u002FARQUITETURA_JARVIS\u002Fblob\u002Fmain\u002Fskills_extracted\u002Fskills\u002Fskills\u002Fexpo-tailwind-setup\u002FSKILL.md",[138],{"categoryNo":105,"categoryName":106,"taxonomyType":20,"taxonomyTypeDesc":21},[140,141,142,143,117,82,37,144,113,145,146,147,148,149,150],"setup","expo tailwind setup","Tailwind","expo","nativewind","Tailwind CSS","react-native","styling","up","SET","css",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":73,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":157,"publishedAt":39},"01M6Q4PD3AAXFEKXEW225X0K00","expo-dev-client","Build and distribute Expo development clients locally or via TestFlight","https:\u002F\u002Fgithub.com\u002Fclodoaldoperito-droid\u002FARQUITETURA_JARVIS\u002Fblob\u002Fmain\u002Fskills_extracted\u002Fskills\u002Fskills\u002Fexpo-dev-client\u002FSKILL.md",[],[158,159,143,160,161,162,163,164,165],"expo dev client","dev","client","clients","via","distribute","build","development",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":73,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":173,"publishedAt":39},"01M6Q4P6HYVP8WJK2YTSHDZGWB","expo-cicd-workflows","Helps understand and write EAS workflow YAML files for Expo projects. Use this skill when the user asks about CI\u002FCD or workflows in an Expo or EAS context, mentions .eas\u002Fworkflows\u002F, or wants help with EAS build pipelines or deployment automation.","https:\u002F\u002Fgithub.com\u002Fclodoaldoperito-droid\u002FARQUITETURA_JARVIS\u002Fblob\u002Fmain\u002Fskills_extracted\u002Fskills\u002Fskills\u002Fexpo-cicd-workflows\u002FSKILL.md",[172],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[143,174,175,176,177,178,179,164,180,88,181,182,183,184,37,185,24,186,82,187],"cicd","expo cicd workflows","workflows","help","about","CI\u002FCD","files","read","projects","Bash","ci","deployment","workflow","deployment automation",{"skillNo":189,"name":190,"nameZh":6,"description":191,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":73,"licenseFileUrl":6,"sourceHtmlUrl":192,"categories":193,"keywords":200,"publishedAt":39},"01M6Q4P2ZHG9BFXPT680RJ6ZVG","expo-api-routes","Guidelines for creating API routes in Expo Router with EAS Hosting","https:\u002F\u002Fgithub.com\u002Fclodoaldoperito-droid\u002FARQUITETURA_JARVIS\u002Fblob\u002Fmain\u002Fskills_extracted\u002Fskills\u002Fskills\u002Fexpo-api-routes\u002FSKILL.md",[194,197],{"categoryNo":195,"categoryName":196,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":198,"categoryName":199,"taxonomyType":110,"taxonomyTypeDesc":111},"01JBSEEDCAT000000000000030","开发工程师",[201,127,143,202,82,203,37,128,204,125],"expo api routes","guidelines","eas hosting","hosting"]