
Google Calendar
Create and reason about Google Calendar events with correct RFC3339 timestamps and timezone offsets from your agent or scripts.
Overview
Google Calendar is an agent skill most often used in Build (also Operate, Grow) that standardizes RFC3339 timestamps and timezone offsets for Google Calendar API and script-based event creation.
Install
npx skills add https://github.com/odyssey4me/agent-skills --skill google-calendarWhat is this skill?
- Explains RFC3339 components: date, T separator, time, and ±offset or Z for UTC
- Examples for EST/EDT, PST, CET, and half-hour offsets such as IST (+05:30)
- Documents all-day events as YYYY-MM-DD without time segment
- Shows python scripts/google-calendar.py CLI patterns for event create with timezone flags
- Clarifies when to use explicit offsets vs Z for cross-timezone scheduling bugs
- Documents RFC3339 as YYYY-MM-DDTHH:MM:SS±HH:MM with Z alias for UTC
- Includes offset examples for EST (-05:00), EDT (-04:00), PST (-08:00), CET (+01:00), and IST (+05:30)
Adoption & trust: 1.1k installs on skills.sh; 4 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your agent or script keeps creating calendar events at the wrong local time because Google Calendar RFC3339 and all-day formats are easy to mix up.
Who is it for?
Solo builders scripting Google Calendar event create/list flows or teaching an agent to schedule without timezone regressions.
Skip if: Teams needing full calendaring product UX, room resources, or enterprise Workspace policy design without touching the API layer.
When should I use this skill?
Working with Google Calendar dates, times, timezones, RFC3339 formatting, or google-calendar.py event create/update flows.
What do I get? / Deliverables
Event payloads use valid RFC3339 start/end values—with correct UTC Z, offset, or all-day date forms—so API and CLI creates match intended wall-clock times.
- Correctly formatted RFC3339 start/end parameters for timed and all-day events
- CLI-ready examples for event creation with optional --timezone on date-only events
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Build integrations is the primary shelf because the skill documents API time formats and script-driven event creation against Google Calendar. Integrations subphase captures calendar API semantics—RFC3339, UTC Z suffix, offsets, and all-day events—not generic PM methodology.
Where it fits
Generate start/end RFC3339 fields for a booking feature that writes to a shared launch calendar.
Automate onboarding call slots with explicit -05:00 vs -04:00 offsets across DST boundaries.
How it compares
Reference integration for Calendar time formats—not a full Google Workspace admin or CalDAV replacement skill.
Common Questions / FAQ
Who is google-calendar for?
Indie developers and agent authors automating scheduling against Google Calendar who need correct RFC3339 and timezone handling.
When should I use google-calendar?
In Build while implementing calendar integrations; in Operate when fixing production scheduling bugs; in Grow when automating launch or webinar blocks—any time events must be expressed in Google's time format.
Is google-calendar safe to install?
The skill is documentation and script guidance; confirm OAuth scopes and credential storage in your own project and review the Security Audits panel on this Prism page for the upstream repo.
SKILL.md
READMESKILL.md - Google Calendar
# Google Calendar Timezone Guide This guide explains how to work with dates, times, and timezones in Google Calendar. ## Time Format Overview Google Calendar uses **RFC3339** format for timestamps, which is an internet standard for representing dates and times. ### RFC3339 Format ``` YYYY-MM-DDTHH:MM:SS±HH:MM ``` Components: - `YYYY-MM-DD` - Date (year-month-day) - `T` - Separator between date and time - `HH:MM:SS` - Time (hours:minutes:seconds) - `±HH:MM` - Timezone offset from UTC, OR `Z` for UTC ## Examples ### UTC Time Use `Z` suffix to indicate UTC (Coordinated Universal Time): ```bash 2026-01-24T10:00:00Z # 10:00 AM UTC 2026-01-24T15:30:00Z # 3:30 PM UTC 2026-12-31T23:59:59Z # December 31, 11:59:59 PM UTC ``` ### Time with Timezone Offset Specify explicit timezone offset: ```bash # Eastern Standard Time (EST = UTC-5) 2026-01-24T10:00:00-05:00 # Eastern Daylight Time (EDT = UTC-4) 2026-06-24T10:00:00-04:00 # Pacific Standard Time (PST = UTC-8) 2026-01-24T10:00:00-08:00 # Central European Time (CET = UTC+1) 2026-01-24T10:00:00+01:00 # India Standard Time (IST = UTC+5:30) 2026-01-24T10:00:00+05:30 ``` ### All-Day Events Use date format (YYYY-MM-DD) without time: ```bash 2026-01-24 # All day on January 24, 2026 2026-12-25 # All day on December 25, 2026 ``` For all-day events, optionally specify timezone using `--timezone`: ```bash python scripts/google-calendar.py events create \ --summary "Conference" \ --start "2026-01-24" \ --end "2026-01-25" \ --timezone "America/New_York" ``` ## Common Timezone Offsets ### North America | Timezone | Standard (Winter) | Daylight (Summer) | |----------|------------------|-------------------| | Eastern (ET) | UTC-5 | UTC-4 | | Central (CT) | UTC-6 | UTC-5 | | Mountain (MT) | UTC-7 | UTC-6 | | Pacific (PT) | UTC-8 | UTC-7 | | Alaska (AKT) | UTC-9 | UTC-8 | | Hawaii (HST) | UTC-10 | No DST | ### Europe | Timezone | Standard (Winter) | Daylight (Summer) | |----------|------------------|-------------------| | GMT/WET | UTC+0 | UTC+1 | | CET | UTC+1 | UTC+2 | | EET | UTC+2 | UTC+3 | ### Asia Pacific | Timezone | Offset | |----------|--------| | India (IST) | UTC+5:30 | | China (CST) | UTC+8 | | Japan (JST) | UTC+9 | | Australia Eastern | UTC+10 / UTC+11 (DST) | | New Zealand | UTC+12 / UTC+13 (DST) | ## IANA Timezone Names For all-day events, you can use IANA timezone database names with the `--timezone` flag: ``` America/New_York America/Los_Angeles America/Chicago America/Denver Europe/London Europe/Paris Europe/Berlin Asia/Tokyo Asia/Shanghai Asia/Kolkata Australia/Sydney Pacific/Auckland ``` **Example:** ```bash python scripts/google-calendar.py events create \ --summary "All Day Event" \ --start "2026-01-24" \ --end "2026-01-25" \ --timezone "America/New_York" ``` ## Daylight Saving Time (DST) When working with timezones, be aware of Daylight Saving Time transitions: - **Spring forward**: Clocks move ahead (e.g., EST UTC-5 becomes EDT UTC-4) - **Fall back**: Clocks move back (e.g., EDT UTC-4 becomes EST UTC-5) ### DST Transitions in 2026 (US) - **March 8, 2026**: Clocks spring forward at 2:00 AM - **November 1, 2026**: Clocks fall back at 2:00 AM **Tip**: Use UTC timestamps (with `Z` suffix) to avoid DST complications, or use explicit timezone offsets that match the current DST status. ## Best Practices ### 1. Use UTC for Consistency When possible, use UTC timestamps to avoid timezone confusion: ```bash python scripts/google-calendar.py events create \ --summary "Meeting" \ --start "2026-01-24T15:00:00Z" \ --end "2026-01-24T16:00:00Z" ``` ### 2. Be Explicit with Offsets If using local time, always include the timezone offset: ```bash # Good - explicit offset --start "2026-01-24T10:00:00-05:00" # Avoid - ambiguous without timezone --start "2026-01-24T10:00:00" ``` ### 3. Consider Attendees' Timezones When scheduling meetings with attendees in different timezones, Google Calendar automatically