[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6G9CAD55SS85FV7757JCQEZ":3,"skill-same:01M6G9CAD55SS85FV7757JCQEZ":76},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":14,"repositoryHtmlUrl":58,"repositoryHomepageUrl":59,"ownerHtmlUrl":60,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":61,"install":62,"resources":75},"01M6G9CAD55SS85FV7757JCQEZ","google-calendar-automation",null,"Lightweight Google Calendar integration with standalone OAuth authentication. No MCP server required.","ibragimov-oasis\u002Fname-navigator","ibragimov-oasis","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F240665573?v=4","01M6DF78Y45R8228FHAZ7G6JXM","IBRAGIMOV MUKHAMMADJON","01M6DF792RGGYNSN2BMSED45SJ",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fibragimov-oasis\u002Fname-navigator\u002Fblob\u002Fmain\u002F.antigravity\u002Fskills\u002Fskills-antigravity\u002Fantigravity-google-calendar-automation\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"google","google calendar automation","google calendar","calendar","automation","authentication","integration","server","OAuth","mcp server","antigravity","community","MCP","domain","artifact","critical","domain\u002Fskills","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\"\ntags:\n  - domain\u002Fskills\n  - artifact\u002Fskill\n  - source\u002Fskills-antigravity\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## 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## ? Связи\n\n- [[MOC - Skills]] — Skills library\n- [[skills\u002Fskills-antigravity]] — Category: skills-antigravity\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## 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## ? Связи\n\n- [[MOC - Skills]] — Skills library\n- [[skills\u002Fskills-antigravity]] — Category: skills-antigravity\n\n",{"name":5,"risk":39,"tags":49,"source":35,"license":15,"metadata":52,"description":7},[40,50,51],"artifact\u002Fskill","source\u002Fskills-antigravity",{"author":53,"version":54},"sanjay3290","1.0","main","3a0e8170d69effdc8a555eee4b80b943f47fe6b2",".antigravity\u002Fskills\u002Fskills-antigravity\u002Fantigravity-google-calendar-automation","https:\u002F\u002Fgithub.com\u002Fibragimov-oasis\u002Fname-navigator","https:\u002F\u002Fname-navigator.vercel.app","https:\u002F\u002Fgithub.com\u002Fibragimov-oasis","2026-11-03 18:37:11",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add ibragimov-oasis\u002Fname-navigator --skill google-calendar-automation",{"tool":68,"command":69},"bunx","bunx skills add ibragimov-oasis\u002Fname-navigator --skill google-calendar-automation",{"tool":71,"command":72},"pnpm","pnpm dlx skills add ibragimov-oasis\u002Fname-navigator --skill google-calendar-automation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fibragimov-oasis\u002Fname-navigator\u002Fblob\u002Fmain\u002F.antigravity\u002Fskills\u002Fskills-antigravity\u002Fantigravity-google-calendar-automation\u002FSKILL.md",true,[],[77,105,133,160,183,204],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":81,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":88,"publishedAt":44},"01M6H16XFT30RK9RWGFB4M9KGG","transloadit-media-processing","Process media files (video, audio, images, documents) using Transloadit. Use when asked to encode video to HLS\u002FMP4, generate thumbnails, resize or watermark images, extract audio, concatenate clips, add subtitles, OCR documents, or run any media processing pipeline. Covers 86+ processing robots for file transformation at scale.","MIT","https:\u002F\u002Fgithub.com\u002Fibragimov-oasis\u002Fname-navigator\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Ftransloadit-media-processing\u002FSKILL.md",[84,87],{"categoryNo":85,"categoryName":86,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[89,90,91,92,36,93,33,94,95,96,31,97,98,99,100,101,102,103,38,104],"transloadit media processing","Media","media processing","processing","cli","copilot","documents","generate","pipeline","ocr","Video","Audio","images","files","thumbnails","free",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":81,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":114,"publishedAt":44},"01M6H16MZ628556VXNEG9PRDK2","terraform-azurerm-set-diff-analyzer","Analyze Terraform plan JSON output for AzureRM Provider to distinguish between false-positive diffs (order-only changes in Set-type attributes) and actual resource changes. Use when reviewing terraform plan output for Azure resources like Application Gateway, Load Balancer, Firewall, Front Door, NSG, and other resources with Set-type attributes that cause spurious diffs due to internal ordering changes.","https:\u002F\u002Fgithub.com\u002Fibragimov-oasis\u002Fname-navigator\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fterraform-azurerm-set-diff-analyzer\u002FSKILL.md",[111],{"categoryNo":112,"categoryName":113,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",[115,116,117,118,119,120,94,121,122,123,124,125,126,38,127,128,129,130,131,132],"terraform","SET","terraform azurerm set diff analyzer","diff","analyzer","diffs","JSON Output","firewall","false-positive","plan","analyze","only","false","resources","load balancer","attributes","source\u002Fskills-copilot","source",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":81,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":145,"publishedAt":44},"01M6H12YWM6E909XH6JN4428RN","refactor","Surgical code refactoring to improve maintainability without changing behavior. Covers extracting functions, renaming variables, breaking down god functions, improving type safety, eliminating code smells, and applying design patterns. Less drastic than repo-rebuilder; use for gradual improvements.","https:\u002F\u002Fgithub.com\u002Fibragimov-oasis\u002Fname-navigator\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frefactor\u002FSKILL.md",[139,142],{"categoryNo":140,"categoryName":141,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":143,"categoryName":144,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",[135,146,94,147,148,149,150,151,152,153,154,155,156,37,38,157,158,159,131,132],"design","code","Type Safety","Safety","improve","refactoring","repo","use","design patterns","code refactoring","patterns","extracting","Variables","for",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":81,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":171,"publishedAt":44},"01M6H11GN772CMEJ2R70TXG7SS","prd","Generate high-quality Product Requirements Documents (PRDs) for software systems and AI-powered features. Includes executive summaries, user stories, technical specifications, and risk analysis.","https:\u002F\u002Fgithub.com\u002Fibragimov-oasis\u002Fname-navigator\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fprd\u002FSKILL.md",[166],{"categoryNo":167,"categoryName":168,"taxonomyType":169,"taxonomyTypeDesc":170},"01JBSEEDCAT000000000000031","产品经理","PROFESSION","适用职业",[162,94,95,96,172,173,174,175,37,38,176,177,178,179,180,181,159,131,132,182],"product","risk","analysis","technical","requirements","software","Product Requirements","user stories","high","domain\u002Fagents","summaries",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":81,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":189,"publishedAt":44},"01M6H0ZF4BS1GC60K8WCCVCH6G","plantuml-ascii","Generate ASCII art diagrams using PlantUML text mode. Use when user asks to create ASCII diagrams, text-based diagrams, terminal-friendly diagrams, or mentions plantuml ascii, text diagram, ascii art diagram. Supports: Converting PlantUML diagrams to ASCII art, Creating sequence diagrams, class diagrams, flowcharts in ASCII format, Generating Unicode-enhanced ASCII art with -utxt flag","https:\u002F\u002Fgithub.com\u002Fibragimov-oasis\u002Fname-navigator\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fplantuml-ascii\u002FSKILL.md",[],[190,191,192,193,94,194,195,96,196,197,198,199,200,201,37,38,202,203,131,132],"plantuml","plantuml ascii","ascii","terminal","diagram","create","Bash","text","read","write","diagrams","Art","Unicode","mode",{"skillNo":205,"name":206,"nameZh":6,"description":207,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":81,"licenseFileUrl":6,"sourceHtmlUrl":208,"categories":209,"keywords":215,"publishedAt":44},"01M6H0X7BMJD69GTGE6DDZCYF8","msstore-cli","Microsoft Store Developer CLI (msstore) for publishing Windows applications to the Microsoft Store. Use when asked to configure Store credentials, list Store apps, check submission status, publish submissions, manage package flights, set up CI\u002FCD for Store publishing, or integrate with Partner Center. Supports Windows App SDK\u002FWinUI, UWP, .NET MAUI, Flutter, Electron, React Native, and PWA applications.","https:\u002F\u002Fgithub.com\u002Fibragimov-oasis\u002Fname-navigator\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fmsstore-cli\u002FSKILL.md",[210,211,212],{"categoryNo":112,"categoryName":113,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":213,"categoryName":214,"taxonomyType":169,"taxonomyTypeDesc":170},"01JBSEEDCAT000000000000030","开发工程师",[93,216,217,218,94,219,220,221,116,222,223,224,225,226,227,38,228,229,230,231],"msstore cli","react","status","uwp","ci","publish","credentials","configure","pwa","react native","integrate","up","app","apps","native","CI\u002FCD"]