| name | add-camps-to-calendar |
|---|---|
| description | Add registered summer camps and activities to Google Calendar using gogcli (gog). Use this skill when the user wants to add camps, classes, or scheduled activities from their camp plan files to Google Calendar. Reads camp plan markdowns, identifies registered entries, looks up locations, and creates calendar events interactively one week at a time. |
This skill creates Google Calendar events for registered camps and activities using the gog CLI (gogcli).
- User wants to add their camp schedule to Google Calendar
- User asks to sync camps/activities to their calendar
- User says "add camps to calendar" or similar
gogCLI installed and authenticated with calendar scope:gog auth add <email> --services calendargog auth doctor --checkpasses
Read the child's summer-camp-plan-*.md file (e.g. children/<child>/summer-camp-plan-2026.md). Identify entries marked with ✅ REGISTERED.
For each registered camp, cross-reference the camp's activities.md file (e.g. camps/<camp-name>/activities.md) to find the exact location/address.
Before generating commands, confirm:
- Which Google Calendar to use (default:
primary) - Who to invite as attendees (email addresses)
- Whether to send invite notifications (
--send-updates none|all|externalOnly) - Event title format (default:
<Child Name>: <Camp Name>)
For each registered camp week, present the gog calendar create command for that week. Ask the user for approval before running.
Example presentation:
Week 1 — Art Camp (June 15-18, Mon-Thu, 9 AM – 12 PM)
Location: Community Center, 123 Main St, Anytown, CA
I'll create a recurring event for 4 days. Proceed?
On user approval, run the gog calendar create command in the terminal. Move to the next week and repeat.
gog calendar create primary \
--summary "<Child>: <Camp Name>" \
--from "<YYYY-MM-DD>T<HH:MM:SS><tz offset>" \
--to "<YYYY-MM-DD>T<HH:MM:SS><tz offset>" \
--from-timezone "<IANA timezone>" \
--rrule "RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;COUNT=<days>" \
--location "<full address>" \
--attendees "<email1>,<email2>" \
--send-updates none| Flag | Description |
|---|---|
--summary |
Event title |
--from |
Start time in RFC3339 format (first day of the week) |
--to |
End time in RFC3339 format (first day of the week) |
--from-timezone |
IANA timezone (required when using --rrule) |
--rrule |
RFC 5545 recurrence rule (see examples below) |
--location |
Venue address |
--attendees |
Comma-separated invitee emails |
--send-updates |
none (no emails), all (notify everyone), externalOnly |
--event-color |
Optional color ID (1-11) to visually distinguish camps |
Use one recurring event per camp week instead of individual daily events:
- 5-day week (Mon–Fri):
RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;COUNT=5 - 4-day week (Mon–Thu, e.g. holiday week):
RRULE:FREQ=DAILY;COUNT=4 - 4-day week (Tue–Fri):
RRULE:FREQ=DAILY;COUNT=4(set--fromto Tuesday)
Set --from and --to to the first day of camp that week. The recurrence rule handles the remaining days.
Important: --from-timezone is required when using --rrule (fixed in gogcli v0.12.0+). Without it, the Google API returns "Missing time zone definition for start time".
- Always include
--from-timezonewith IANA timezone name when using--rrule - US Pacific:
America/Los_Angeles - Use the local timezone offset in RFC3339 timestamps
- US Pacific Daylight Time (summer):
-07:00 - US Pacific Standard Time (winter):
-08:00 - Example:
2026-06-15T09:00:00-07:00
- Only include registered camps — skip entries not marked
✅ REGISTERED - One recurring event per camp week — use
--rruleto create a single event that repeats for all days in the week (not individual daily events) - Set
--fromto the first camp day — the recurrence rule handles remaining days. Account for holidays (e.g. no camp on Juneteenth June 19, July 4th/3rd) by starting on the correct day and using the right COUNT. - Always include
--from-timezone— required when using--rrule - Ask before running — present each week's command and wait for user approval
- Default to
--send-updates none— avoid spamming invitees unless user requests notifications - Verify after each week — optionally run
gog calendar events --from <start> --to <end>to confirm creation
Agent: I found 3 registered camp weeks in the plan. I'll create one recurring event per week.
Week 1 — Emma: Art Camp
Dates: June 15–18 (Mon–Thu, 4 days)
Time: 9:00 AM – 12:00 PM
Location: Community Center, 123 Main St, Anytown, CA
Attendees: parent@example.com
Command:
gog calendar create primary --summary "Emma: Art Camp" \
--from "2026-06-15T09:00:00-07:00" \
--to "2026-06-15T12:00:00-07:00" \
--from-timezone "America/Los_Angeles" \
--rrule "RRULE:FREQ=DAILY;COUNT=4" \
--location "Community Center, 123 Main St, Anytown, CA" \
--attendees "parent@example.com" \
--send-updates none
Shall I run this?
User: yes
Agent: ✓ Created recurring event for Week 1 (4 occurrences).
Week 2 — Emma: Science Explorers
Dates: June 22–26 (Mon–Fri, 5 days)
...