/gog-calendar
Review calendar agenda, find available meeting slots, and schedule events. Displays today's or week's schedule, suggests meeting times based on availability, creates calendar events with explicit user confirmation. Use when user mentions calendar, schedule, meetings, or
$ npx -y skills add evolution-foundation/evo-nexus --skill gog-calendar --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/gog-calendar
Context preview
The summary Claude sees to decide when to auto-load this skill.
Review calendar agenda, find available meeting slots, and schedule events. Displays today's or week's schedule, suggests meeting times based on availability, creates calendar events with explicit user confirmation. Use when user mentions calendar, schedule, meetings, or
SKILL.md
gog-calendar.SKILL.mdname: gog-calendar
description: Review calendar agenda, find available meeting slots, and schedule events. Displays today's or week's schedule, suggests meeting times based on availability, creates calendar events with explicit user confirmation. Use when user mentions calendar, schedule, meetings, or availability. Never creates or modifies events without confirmation.
compatibility: Requires gog CLI tool with calendar access
metadata:
author: gog-skills
version: "1.0"
allowed-tools: Bash(gog:*) Read
Calendar & Scheduling Assistant
Review your schedule, find meeting slots, and create events with smart suggestions.
When to Use
Use this skill when:
- User asks "what's on my calendar" or "what meetings do I have today"
- User wants to "schedule a meeting" or "find time to meet"
- User mentions "check my availability"
- User says "when am I free this week"
- User wants to create a calendar event
**Important**: This skill NEVER creates or modifies events without explicit user confirmation.
Dynamic Context
The following live data is available:
**Today's agenda:**
!`gog calendar events --today --json 2>/dev/null || echo "GOG_NOT_CONFIGURED"`
Workflow
Reviewing Calendar
Today's Agenda
When user says "what's on my calendar today" or "show today's schedule":
1. **Fetch today's events**:
gog calendar events --today --json
2. **Present formatted agenda**:
# Today's Agenda — [Day], [Date]
## Morning
**9:00 AM - 9:30 AM** | Team Standup
- Location: Zoom (https://zoom.us/j/123...)
- Attendees: Alice, Bob, Carol (3 people)
- Status: Confirmed
**10:00 AM - 11:00 AM** | 1:1 with Manager
- Location: Conference Room A
- Status: Confirmed
## Afternoon
**2:00 PM - 3:30 PM** | Client Demo
- Location: Zoom
- Attendees: Client team (5 people)
- Status: Confirmed
- 📎 Has description/notes
**4:00 PM - 5:00 PM** | Project Planning
- Location: Virtual
- Status: Tentative ⚠️
---
**Summary**:
- Total meetings: 4
- Total time: 3.5 hours
- Free blocks: 11:00 AM - 2:00 PM (3 hours)
- Day ends at: 5:00 PM
**Preparation needed**:
- Review client demo slides (before 2pm)
- Prepare 1:1 talking points (before 10am)
Week's Agenda
When user says "what's my week look like" or "show this week":
1. **Fetch week's events**:
# Calculate date range for this week
FROM_DATE=$(date +%Y-%m-%d)
TO_DATE=$(date -v+7d +%Y-%m-%d) # macOS
# Fetch events in range
gog calendar events --from "$FROM_DATE" --to "$TO_DATE" --json
2. **Present grouped by day**:
# Week Agenda — Week of [Date]
## Monday, [Date]
- 9:00 AM - 9:30 AM | Team Standup
- 2:00 PM - 3:00 PM | Design Review
[Total: 1.5 hours]
## Tuesday, [Date]
- 9:00 AM - 9:30 AM | Team Standup
- 10:00 AM - 12:00 PM | Workshop
- 3:00 PM - 4:00 PM | Quarterly Review
[Total: 3.5 hours]
## Wednesday, [Date]
- 9:00 AM - 9:30 AM | Team Standup
[Total: 0.5 hours] — Light day! 💚
[...]
---
**Week Summary**:
- Total meetings: 15
- Busiest day: Tuesday (3.5 hours)
- Lightest day: Wednesday (0.5 hours)
- Free afternoons: Wednesday, Friday
Finding Meeting Slots
When user says "find time for a meeting" or "when am I free":
1. **Gather requirements**:
Let me find available meeting times. A few questions:
1. **Duration**: How long should the meeting be? (30 min, 1 hour, etc.)
2. **Date range**: When are you looking? (This week, next week, specific dates)
3. **Time preferences**: Any time constraints? (Mornings only, after 2pm, etc.)
4. **Attendees**: Anyone else's calendar to check? (If you have access)
2. **Search for slots using freebusy**:
# Get busy periods
gog calendar freebusy primary \
--from "2026-01-29T00:00:00Z" \
--to "2026-01-31T23:59:59Z" \
--json**Note**: GOG CLI v0.9.0 doesn't have `find-slots`. Instead, use `freebusy` to get busy periods, then calculate free gaps between them. For example:
- If busy: 9-10am, 2-3pm
- Then free: 8-9am, 10am-2pm, 3-5pm
Parse the busy periods and suggest slots in the free time.
3. **Present options**:
# Available Meeting Slots
## Top 5 Options (60 minutes)
1. **Wednesday, Jan 29 at 2:00 PM - 3:00 PM**
- Ideal time: After lunch, before end of day
- No conflicts
2. **Thursday, Jan 30 at 10:00 AM - 11:00 AM**
- Morning slot, good energy
- No conflicts
3. **Thursday, Jan 30 at 3:00 PM - 4:00 PM**
- Afternoon slot
- No conflicts
4. **Friday, Jan 31 at 9:00 AM - 10:00 AM**
- Early morning
- No conflicts
5. **Friday, Jan 31 at 1:00 PM - 2:00 PM**
- Post-lunch
- No conflicts
---
**Recommendation**: Option 1 (Wed at 2pm) — Best mid-week timing
Which slot works best? Or need more options?Creating Events
When user says "schedule a meeting" or "create a calendar event":
1. **Gather event details**:
Let me create that calendar event. I need:
1. **Title**: What's the meeting about?
2. **Date & Time**: When? (e.g., "Tomorrow at 2pm", "Jan 30 at 10am")
3. **Duration**: How long? (30 min, 1 hour, 90 min, etc.)
4. **Attendees**: Who should attend? (email addresses, comma-separated)
5. **Location**: Where? (Zoom, physical location, or I can generate a meeting link)
6. **Description**: Any agenda or notes?
2. **Parse date/time**:
- Support natural language: "tomorrow at 2pm", "next Tuesday at 10am"
- Convert to ISO8601: "2026-01-29T14:00:00Z"
- Confirm timezone assumptions
3. **Present proposed event**:
## Proposed Event
**Title**: Q2 Planning Meeting
**Date**: Wednesday, January 29, 2026
**Time**: 2:00 PM - 3:00 PM (1 hour)
**Attendees**:
- alice@company.
Read more
name: gog-calendar description: Review calendar agenda, find available meeting slots, and schedule events. Displays today's or week's schedule, suggests meeting times based on availability, creates calendar events with explicit user confirmation. Use when user mentions calendar, schedule, meetings, or availability. Never creates or modifies events without confirmation. compatibility: Requires gog CLI tool with calendar access metadata: author: gog-skills version: "1.0" allowed-tools: Bash(gog:*) Read
Calendar & Scheduling Assistant
Review your schedule, find meeting slots, and create events with smart suggestions.
When to Use
Use this skill when:
- User asks "what's on my calendar" or "what meetings do I have today"
- User wants to "schedule a meeting" or "find time to meet"
- User mentions "check my availability"
- User says "when am I free this week"
- User wants to create a calendar event
**Important**: This skill NEVER creates or modifies events without explicit user confirmation.
Dynamic Context
The following live data is available:
**Today's agenda:**
!`gog calendar events --today --json 2>/dev/null || echo "GOG_NOT_CONFIGURED"`
Workflow
Reviewing Calendar
Today's Agenda
When user says "what's on my calendar today" or "show today's schedule":
1. **Fetch today's events**:
gog calendar events --today --json
2. **Present formatted agenda**:
# Today's Agenda — [Day], [Date] ## Morning **9:00 AM - 9:30 AM** | Team Standup - Location: Zoom (https://zoom.us/j/123...) - Attendees: Alice, Bob, Carol (3 people) - Status: Confirmed **10:00 AM - 11:00 AM** | 1:1 with Manager - Location: Conference Room A - Status: Confirmed ## Afternoon **2:00 PM - 3:30 PM** | Client Demo - Location: Zoom - Attendees: Client team (5 people) - Status: Confirmed - 📎 Has description/notes **4:00 PM - 5:00 PM** | Project Planning - Location: Virtual - Status: Tentative ⚠️ --- **Summary**: - Total meetings: 4 - Total time: 3.5 hours - Free blocks: 11:00 AM - 2:00 PM (3 hours) - Day ends at: 5:00 PM **Preparation needed**: - Review client demo slides (before 2pm) - Prepare 1:1 talking points (before 10am)
Week's Agenda
When user says "what's my week look like" or "show this week":
1. **Fetch week's events**:
# Calculate date range for this week FROM_DATE=$(date +%Y-%m-%d) TO_DATE=$(date -v+7d +%Y-%m-%d) # macOS # Fetch events in range gog calendar events --from "$FROM_DATE" --to "$TO_DATE" --json
2. **Present grouped by day**:
# Week Agenda — Week of [Date] ## Monday, [Date] - 9:00 AM - 9:30 AM | Team Standup - 2:00 PM - 3:00 PM | Design Review [Total: 1.5 hours] ## Tuesday, [Date] - 9:00 AM - 9:30 AM | Team Standup - 10:00 AM - 12:00 PM | Workshop - 3:00 PM - 4:00 PM | Quarterly Review [Total: 3.5 hours] ## Wednesday, [Date] - 9:00 AM - 9:30 AM | Team Standup [Total: 0.5 hours] — Light day! 💚 [...] --- **Week Summary**: - Total meetings: 15 - Busiest day: Tuesday (3.5 hours) - Lightest day: Wednesday (0.5 hours) - Free afternoons: Wednesday, Friday
Finding Meeting Slots
When user says "find time for a meeting" or "when am I free":
1. **Gather requirements**:
Let me find available meeting times. A few questions: 1. **Duration**: How long should the meeting be? (30 min, 1 hour, etc.) 2. **Date range**: When are you looking? (This week, next week, specific dates) 3. **Time preferences**: Any time constraints? (Mornings only, after 2pm, etc.) 4. **Attendees**: Anyone else's calendar to check? (If you have access)
2. **Search for slots using freebusy**:
# Get busy periods
gog calendar freebusy primary \
--from "2026-01-29T00:00:00Z" \
--to "2026-01-31T23:59:59Z" \
--json**Note**: GOG CLI v0.9.0 doesn't have `find-slots`. Instead, use `freebusy` to get busy periods, then calculate free gaps between them. For example:
- If busy: 9-10am, 2-3pm
- Then free: 8-9am, 10am-2pm, 3-5pm
Parse the busy periods and suggest slots in the free time.
3. **Present options**:
# Available Meeting Slots
## Top 5 Options (60 minutes)
1. **Wednesday, Jan 29 at 2:00 PM - 3:00 PM**
- Ideal time: After lunch, before end of day
- No conflicts
2. **Thursday, Jan 30 at 10:00 AM - 11:00 AM**
- Morning slot, good energy
- No conflicts
3. **Thursday, Jan 30 at 3:00 PM - 4:00 PM**
- Afternoon slot
- No conflicts
4. **Friday, Jan 31 at 9:00 AM - 10:00 AM**
- Early morning
- No conflicts
5. **Friday, Jan 31 at 1:00 PM - 2:00 PM**
- Post-lunch
- No conflicts
---
**Recommendation**: Option 1 (Wed at 2pm) — Best mid-week timing
Which slot works best? Or need more options?Creating Events
When user says "schedule a meeting" or "create a calendar event":
1. **Gather event details**:
Let me create that calendar event. I need: 1. **Title**: What's the meeting about? 2. **Date & Time**: When? (e.g., "Tomorrow at 2pm", "Jan 30 at 10am") 3. **Duration**: How long? (30 min, 1 hour, 90 min, etc.) 4. **Attendees**: Who should attend? (email addresses, comma-separated) 5. **Location**: Where? (Zoom, physical location, or I can generate a meeting link) 6. **Description**: Any agenda or notes?
2. **Parse date/time**:
- Support natural language: "tomorrow at 2pm", "next Tuesday at 10am"
- Convert to ISO8601: "2026-01-29T14:00:00Z"
- Confirm timezone assumptions
3. **Present proposed event**:
## Proposed Event **Title**: Q2 Planning Meeting **Date**: Wednesday, January 29, 2026 **Time**: 2:00 PM - 3:00 PM (1 hour) **Attendees**: - alice@company.
Other skills on evo-nexus.
- /ai-image-creator
Generate PNG images using AI (multiple models via OpenRouter including Gemini, FLUX.2, Riverflow, SeedDream, GPT-5 Image, proxied through Cloudflare AI Gateway BYOK). Also analyze/describe existing images using multimodal AI vision. Use when user asks to "generate an image",
Open skill - /create-agent
Create a new custom agent for the workspace. Guides the user through defining agent name, domain, personality, skills, model, and memory folder. Use when the user says 'create an agent', 'new agent', 'add an agent', 'I need a custom agent', or wants to create a specialized agent
Open skill - /create-command
Create a new slash command for Claude Code. Guides the user through defining the command name, what it does, and generates the markdown file in .claude/commands/. Use when the user says 'create a command', 'new command', 'add a slash command', 'I want a shortcut for', or wants
Open skill - /create-goal
Create a Mission, Project, or Goal (Mission → Project → Goal → Task hierarchy) in EvoNexus. Guides the user through picking a mission, choosing or creating a project, defining a measurable goal with metric_type and target_value. Writes to the SQLite goals tables via POST
Open skill - /create-heartbeat
Create a new heartbeat (proactive agent scheduled with a decision prompt) for EvoNexus. Guides the user through picking an agent, setting interval, wake triggers, and the decision prompt that governs when the agent acts. Writes to config/heartbeats.yaml with pydantic validation.
Open skill - /create-integration
Create a new custom integration (API/service wrapper) for the workspace. Guides the user through defining the integration's slug, display name, description, category, and required env keys. Writes .claude/skills/custom-int-{slug}/SKILL.md via POST /api/integrations/custom. Use
Open skill

