[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6K14C69P0P8B03V8Y6DS7M5":3,"skill-same:01M6K14C69P0P8B03V8Y6DS7M5":89},{"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":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6K14C69P0P8B03V8Y6DS7M5","google-calendar-daily-brief",null,"Build polished one-day Google Calendar briefs. Use when the user asks for today, tomorrow, or a specific date summary with an agenda, conflict flags, free windows, remaining-meeting readouts, or a calendar brief, and the Google Calendar connector is available.","NagyVikt\u002Fcodex-plugins","NagyVikt","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F137165288?v=4","01M6K0SJ3R2DAZRJKJJS10VN87","Viktor Nagy","01M6K0SJ9HXN0GBD91QDQ9WNVV",2,"MIT","https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fgoogle-calendar\u002Fskills\u002Fgoogle-calendar-daily-brief\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"brief","google calendar daily brief","daily","calendar","google calendar","google","daily brief","flags","for","briefs","meeting","with","free","conflict","summary","build","Connector","use","user","windows","2026-11-10 10:12:30",false,"---\nname: google-calendar-daily-brief\ndescription: Build polished one-day Google Calendar briefs. Use when the user asks for today, tomorrow, or a specific date summary with an agenda, conflict flags, free windows, remaining-meeting readouts, or a calendar brief, and the Google Calendar connector is available.\n---\n\n# Google Calendar Daily Brief\n\n## Overview\n\nUse this skill to turn one day of Google Calendar events into a readable daily brief instead of a raw event dump. Use the Google Calendar app from this plugin for the source data, then use the bundled formatter as the default rendering path.\n\n## Workflow\n\n1. Resolve the date window explicitly in the user's timezone.\n2. Fetch the day's events through the Google Calendar app\u002Fconnector for the relevant calendar. Default to `calendar_id=primary` unless the user names a different calendar.\n3. Pass the raw JSON response to `scripts\u002Frender_day_brief.py`.\n4. Return the rendered Markdown as the answer. Lightly adapt the lead-in or emphasis if the user asked for a narrower scope, a more compact answer, or a specific focus.\n\n## Relevant Actions\n\n- Prefer `search_events` for the one-day event list that feeds the formatter.\n- Use `search_events_all_fields` only if the brief needs richer event metadata than the standard event summary surface returns.\n\n## Data Source Rules\n\n- Use the Google Calendar app\u002Fconnector from this plugin, not web search and not a manually reconstructed schedule.\n- Query with explicit day boundaries such as `[local_midnight, next_local_midnight)` in the user's timezone.\n- Prefer the app's event search\u002Flist call that accepts `calendar_id`, `time_min`, `time_max`, and `timezone`.\n- Preserve titles exactly as returned by Google Calendar.\n\n## Default Shape\n\nThe formatter's default shape is a good baseline:\n\n- date header\n- short top summary lines\n- `Day Shape`\n- `Agenda`\n- optional `What Needs Attention`\n- `Useful Readout`\n- optional `Remaining Today`\n\nKeep the tone compact and practical. Do not use a fenced code block for the agenda.\n\n## Formatter\n\nRun the formatter whenever you want the full daily brief:\n\n```bash\npython3 scripts\u002Frender_day_brief.py \\\n  --time-min 2026-03-11T00:00:00-07:00 \\\n  --time-max 2026-03-12T00:00:00-07:00 \\\n  --timezone America\u002FLos_Angeles \\\n  --now 2026-03-11T17:02:19-07:00\n```\n\nProvide the Google Calendar JSON payload on stdin. The script accepts either:\n\n- the raw object returned by the calendar app, with an `events` field, or\n- a bare JSON array of event objects\n\nUse `--now` when summarizing today so the script can emit `Remaining Today`. Omit it for future days if you do not need that section.\n\n## Formatting Rules\n\n- Keep markers restrained. Use only the formatter's default markers unless the user explicitly asks for more decoration.\n- Keep the agenda table to two columns only: `Time` and `Meeting`.\n- Use bare compact agenda times like `10:00-10:15` without meridiem in each row.\n- Allow short inline conflict annotations in the meeting column only for the representative event in a conflict cluster.\n- Keep the fuller overlap explanation in `What Needs Attention`.\n- Do not wrap agenda table cells in backticks or inline code.\n- Keep `Day Shape` and `Useful Readout` narrative rather than metric-heavy.\n- Treat all-day transparent markers as context, not meetings.\n- Base free-window and lunch-window calculations on opaque timed events.\n- Preserve event ordering by start time.\n","# Google Calendar Daily Brief\n\n## Overview\n\nUse this skill to turn one day of Google Calendar events into a readable daily brief instead of a raw event dump. Use the Google Calendar app from this plugin for the source data, then use the bundled formatter as the default rendering path.\n\n## Workflow\n\n1. Resolve the date window explicitly in the user's timezone.\n2. Fetch the day's events through the Google Calendar app\u002Fconnector for the relevant calendar. Default to `calendar_id=primary` unless the user names a different calendar.\n3. Pass the raw JSON response to `scripts\u002Frender_day_brief.py`.\n4. Return the rendered Markdown as the answer. Lightly adapt the lead-in or emphasis if the user asked for a narrower scope, a more compact answer, or a specific focus.\n\n## Relevant Actions\n\n- Prefer `search_events` for the one-day event list that feeds the formatter.\n- Use `search_events_all_fields` only if the brief needs richer event metadata than the standard event summary surface returns.\n\n## Data Source Rules\n\n- Use the Google Calendar app\u002Fconnector from this plugin, not web search and not a manually reconstructed schedule.\n- Query with explicit day boundaries such as `[local_midnight, next_local_midnight)` in the user's timezone.\n- Prefer the app's event search\u002Flist call that accepts `calendar_id`, `time_min`, `time_max`, and `timezone`.\n- Preserve titles exactly as returned by Google Calendar.\n\n## Default Shape\n\nThe formatter's default shape is a good baseline:\n\n- date header\n- short top summary lines\n- `Day Shape`\n- `Agenda`\n- optional `What Needs Attention`\n- `Useful Readout`\n- optional `Remaining Today`\n\nKeep the tone compact and practical. Do not use a fenced code block for the agenda.\n\n## Formatter\n\nRun the formatter whenever you want the full daily brief:\n\n```bash\npython3 scripts\u002Frender_day_brief.py \\\n  --time-min 2026-03-11T00:00:00-07:00 \\\n  --time-max 2026-03-12T00:00:00-07:00 \\\n  --timezone America\u002FLos_Angeles \\\n  --now 2026-03-11T17:02:19-07:00\n```\n\nProvide the Google Calendar JSON payload on stdin. The script accepts either:\n\n- the raw object returned by the calendar app, with an `events` field, or\n- a bare JSON array of event objects\n\nUse `--now` when summarizing today so the script can emit `Remaining Today`. Omit it for future days if you do not need that section.\n\n## Formatting Rules\n\n- Keep markers restrained. Use only the formatter's default markers unless the user explicitly asks for more decoration.\n- Keep the agenda table to two columns only: `Time` and `Meeting`.\n- Use bare compact agenda times like `10:00-10:15` without meridiem in each row.\n- Allow short inline conflict annotations in the meeting column only for the representative event in a conflict cluster.\n- Keep the fuller overlap explanation in `What Needs Attention`.\n- Do not wrap agenda table cells in backticks or inline code.\n- Keep `Day Shape` and `Useful Readout` narrative rather than metric-heavy.\n- Treat all-day transparent markers as context, not meetings.\n- Base free-window and lunch-window calculations on opaque timed events.\n- Preserve event ordering by start time.\n",{"name":5,"description":7},"main","9a4409c8751439c3aeeea2bc3940ba05dc3cd3b5","plugins\u002Fgoogle-calendar\u002Fskills\u002Fgoogle-calendar-daily-brief",0,"https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins","https:\u002F\u002Fgithub.com\u002FNagyVikt","https:\u002F\u002Fwebu.hu\u002F","Codex is a tool they said...\r\n\r\nCreator of GitGuardex, CueCards. Tech stack: Next.js · TypeScript · Rust · Linux. ","2026-03-30 02:19:53",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add NagyVikt\u002Fcodex-plugins --skill google-calendar-daily-brief",{"tool":59,"command":60},"bunx","bunx skills add NagyVikt\u002Fcodex-plugins --skill google-calendar-daily-brief",{"tool":62,"command":63},"pnpm","pnpm dlx skills add NagyVikt\u002Fcodex-plugins --skill google-calendar-daily-brief","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fgoogle-calendar\u002Fskills\u002Fgoogle-calendar-daily-brief\u002FSKILL.md",true,[67,73,79,83],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"agents\u002Fopenai.yaml","REFERENCE","参考文档",292,"https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fgoogle-calendar\u002Fskills\u002Fgoogle-calendar-daily-brief\u002Fagents\u002Fopenai.yaml",{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"assets\u002Ficon.png","ASSET","资产文件",7973,"https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fgoogle-calendar\u002Fskills\u002Fgoogle-calendar-daily-brief\u002Fassets\u002Ficon.png",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"assets\u002Flogo.png",33059,"https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fgoogle-calendar\u002Fskills\u002Fgoogle-calendar-daily-brief\u002Fassets\u002Flogo.png",{"path":84,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"scripts\u002Frender_day_brief.py","SCRIPT","脚本",20387,"https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fgoogle-calendar\u002Fskills\u002Fgoogle-calendar-daily-brief\u002Fscripts\u002Frender_day_brief.py",[90,132,166,190,219,241],{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":112,"publishedAt":39},"01M6K1ZEN8P9R2S6NPNJNJ8JVH","workflow","Vercel Workflow DevKit (WDK) expert guidance. Use when building durable workflows, long-running tasks, API routes or agents that need pause\u002Fresume, retries, step-based execution, or crash-safe orchestration with Vercel Workflow.","https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvercel\u002Fskills\u002Fworkflow\u002FSKILL.md",[96,101,104,109],{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":102,"categoryName":103,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":105,"categoryName":106,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":110,"categoryName":111,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000038","人力资源",[92,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],"workflows","create","run","streaming","logs","start","why","loop","wait for","branch","auto","log","conversation","human","lib","condition","rendering","retries","sleep",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":148,"publishedAt":39},"01M6K1Z71NWFSPHK2VJJ73MVSY","verification","Full-story verification — infers what the user is building, then verifies the complete flow end-to-end: browser → API → data → response. Triggers on dev server start and 'why isn't this working' signals.","https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvercel\u002Fskills\u002Fverification\u002FSKILL.md",[138,141,142,145],{"categoryNo":139,"categoryName":140,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},{"categoryNo":143,"categoryName":144,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000031","产品经理",{"categoryNo":146,"categoryName":147,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000033","数据分析师",[134,149,116,150,151,152,122,153,154,155,156,157,158,159,160,161,162,163,164,165],"auth","routing middleware","api","projects","user story","full stack","jest","local","project","end","app","false","unit","error","middleware","loading","unit test",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":173,"publishedAt":39},"01M6K1YPRYJS3BQEDP8HKBHPEJ","vercel-storage","Vercel storage expert guidance — Blob, Edge Config, and Marketplace storage (Neon Postgres, Upstash Redis). Use when choosing, configuring, or using data storage with Vercel applications.","https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvercel\u002Fskills\u002Fvercel-storage\u002FSKILL.md",[172],{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},[174,175,176,177,115,178,179,123,180,181,182,183,184,185,159,127,186,187,188,189],"storage","vercel storage","vercel","config","supabase","migrate","router","clerk","expert","prisma","connection pooling","neon","turso","upstash","URL","auth0",{"skillNo":191,"name":192,"nameZh":6,"description":193,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":194,"categories":195,"keywords":203,"publishedAt":39},"01M6K1YFEP0GPPGMQ3D0FPTS27","vercel-services","Vercel Services — deploy multiple services within a single Vercel project. Use for monorepo layouts or when combining a backend (Python, Go) with a frontend (Next.js, Vite) in one deployment.","https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvercel\u002Fskills\u002Fvercel-services\u002FSKILL.md",[196,199,200],{"categoryNo":197,"categoryName":198,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},{"categoryNo":201,"categoryName":202,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000011","运维与部署",[204,205,176,206,207,208,209,210,211,212,213,44,214,215,157,216,159,217,162,218],"vercel services","services","frontend","docker compose","SET","configure","monorepo","go api","fastapi","up","aws lambda","go backend","get","apps","python backend",{"skillNo":220,"name":221,"nameZh":6,"description":222,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":223,"categories":224,"keywords":225,"publishedAt":39},"01M6K1Y8S3CRD43DPKX0PK1MTT","vercel-sandbox","Vercel Sandbox guidance — ephemeral Firecracker microVMs for running untrusted code safely. Supports AI agents, code generation, and experimentation. Use when executing user-generated or AI-generated code in isolation.","https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvercel\u002Fskills\u002Fvercel-sandbox\u002FSKILL.md",[],[226,227,176,228,229,114,115,230,231,232,233,234,235,236,237,238,164,239,221,240],"sandbox","vercel sandbox","safe","ai agents","code","ai sdk","Code Generation","playground","generated","spawn","install","runner","io","child","student",{"skillNo":242,"name":243,"nameZh":6,"description":244,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":245,"categories":246,"keywords":248,"publishedAt":39},"01M6K1Y1J8S7AN97H75SHBGF7J","vercel-queues","Vercel Queues guidance (public beta) — durable event streaming with topics, consumer groups, retries, and delayed delivery. $0.60\u002F1M ops. Powers Workflow DevKit. Use when building async processing, fan-out patterns, or event-driven architectures.","https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvercel\u002Fskills\u002Fvercel-queues\u002FSKILL.md",[247],{"categoryNo":102,"categoryName":103,"taxonomyType":99,"taxonomyTypeDesc":100},[249,176,92,113,116,250,208,151,209,213,251,252,253,254,159,127,255,130,164,256],"vercel queues","beta","message","delivery","across","worker","processing","at"]