skills/agentic-calendar-coordination/SKILL.md
AI-powered calendar management and agent-based scheduling coordination. Covers calendar APIs (Google Calendar, CalDAV/iCal), AI scheduling assistants (Reclaim, Clockwise, Motion, Cal.com), building custom calendar agents with MCP, multi-calendar merging, timezone management, focus block protection, meeting fatigue detection, and agent-to-agent meeting negotiation protocols. Activate on: "calendar agent", "AI scheduling", "calendar coordination", "meeting scheduling", "calendar API", "focus time protection", "calendar optimization", "Google Calendar MCP", "Reclaim", "Clockwise", "Motion", "Cal.com", "smart scheduling", "calendar-aware agent", "timezone scheduling", "agent negotiation meetings". NOT for: manual calendar UI component design (use form-validation-architect), project management scheduling or Gantt charts (use project-management-guru-adhd), general time-tracking or pomodoro apps (use adhd-daily-planner for time-awareness), building the agent itself from scratch (use agent-creator).
npx skillsauth add curiositech/windags-skills agentic-calendar-coordinationInstall 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.
Build AI agents that negotiate meetings, protect focus time, and infer context from calendar data. Navigate timezone complexity, implement agent-to-agent scheduling, and architect custom calendar logic using Google Calendar API and MCP.
Incoming meeting request conflicts with existing event
├─ Sender = manager/exec → Auto-accept, suggest moving existing
├─ Meeting = 1:1/urgent tagged → Propose alternative within 24h
├─ Focus block collision
│ ├─ Block priority = high (deep work) → Auto-decline
│ └─ Block priority = medium → Propose alternative time
└─ Double-booking with peer meeting → Counter with 3 alternative slots
Factors: sender_tier (exec/manager/peer/external) × meeting_type (1:1/team/all-hands) × focus_block_priority
If exec + any_type → Always propose alternative
If manager + (1:1 OR urgent) → Propose alternative
If peer + recurring + low_attendance → Auto-decline
If external + no_prior_relationship → Auto-decline with "use calendar link"
If during high_priority_focus_block → Auto-decline regardless of sender
Multi-participant scheduling:
├─ All same timezone → Use local working hours (9-17)
├─ 2 timezones, <6h apart → Find overlap window
├─ 2 timezones, >6h apart → Early/late split (one takes 8am, other takes 6pm)
└─ 3+ timezones → Propose async alternative OR rotating schedule
Time of day priority (descending):
1. 9-11 AM (peak cognitive) → Reserve for deep work, decline routine meetings
2. 11 AM-12 PM (sustained focus) → Allow important meetings only
3. 2-4 PM (collaboration sweet spot) → Prefer for team meetings
4. 4-5 PM (wrap-up) → Good for 1:1s, status updates
5. 1-2 PM (post-lunch dip) → Avoid complex meetings
Symptoms: Weekly 9 AM meeting shows conflicts in winter but not summer; cross-timezone recurring fails after DST change
Detection: if recurring_event && timezone_conversion && conflict_pattern_seasonal
Fix: Always expand recurring with singleEvents: true, convert each instance to UTC for conflict checking, re-evaluate after DST transitions
Symptoms: Agent repeatedly reschedules same meeting trying to create buffers; meetings bounce between slots
Detection: if same_meeting_rescheduled > 2 times in 24h for buffer_reasons
Fix: Lock in meeting after first reschedule, adjust buffer requirements dynamically based on meeting importance
Symptoms: New agent schedules meetings at user's worst cognitive times; ignores established patterns
Detection: if meeting_satisfaction_score < 3 for meetings_scheduled_by_agent
Fix: Bootstrap with explicit user preferences, learn from decline patterns, require 2-week observation period before auto-scheduling
Symptoms: Agent shares too much calendar detail with external systems; event descriptions leak to LLMs
Detection: if external_api_call contains event.description OR attendee.email
Fix: Implement data minimization layer, strip PII before external calls, use free/busy only for scheduling
Symptoms: Two agents endlessly counter-propose; no convergence on meeting time
Detection: if negotiation_rounds > 3 && no_accepted_slot
Fix: Escalate to human after 2 counters, implement "good enough" acceptance threshold, time-bound negotiations
Scenario: Your agent (Chicago) needs 30min with peer agent (Tokyo) for API review. Both have energy constraints.
Step 1: Initial Analysis
Step 2: Energy Model Check
Step 3: Proposal Generation
Agent Chicago → Agent Tokyo: PROPOSE
Slots: [
"2024-03-19T01:00Z" (Chi: 7PM, Tok: 10AM),
"2024-03-19T23:00Z" (Chi: 5PM, Tok: 8AM),
"2024-03-20T00:00Z" (Chi: 6PM, Tok: 9AM)
]
Priority: normal
Topic: "API review - timezone complexity discussion"
Step 4: Counter-Proposal
Agent Tokyo → Agent Chicago: COUNTER
Reason: "Prefer later Tokyo morning for complex technical discussion"
Alternatives: [
"2024-03-19T02:00Z" (Chi: 8PM, Tok: 11AM),
"2024-03-20T01:00Z" (Chi: 7PM, Tok: 10AM)
]
Constraints: "Need 15min buffer before 11:30 AM JST standup"
Step 5: Resolution Chicago agent accepts 8 PM CST / 11 AM JST slot, creates event with both timezones in description: "API Review - 8:00 PM CST / 11:00 AM JST+1"
Novice vs Expert:
This skill is NOT for:
form-validation-architectproject-management-guru-adhdadhd-daily-planneragentic-patternsagent-creatorDelegate to other skills when:
adhd-daily-planneralways-on-agent-architecturemulti-agent-coordinationdaemon-developmentThis skill focuses specifically on calendar data structures, scheduling algorithms, and meeting coordination logic.
data-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.