Skip to content

feat(calendar): full Calendar API parity — ACL, freebusy, quick-add, event instances, move, calendar CRUD #92

@omriariav

Description

@omriariav

Context

gws calendar covers 6 commands (list, events, create, update, delete, rsvp). The Calendar API has ~20 more useful methods across ACL, freebusy, event operations, and calendar management.

Full gap analysis

Events — 4 missing

Command API Method Args/Flags
calendar get <event-id> events.get positional, --calendar-id
calendar quick-add events.quickAdd --text (natural language, e.g. "Lunch tomorrow at noon")
calendar instances <event-id> events.instances positional, recurring event expansion, --max, --time-min, --time-max
calendar move <event-id> events.move --destination (move event to another calendar)

Calendar Management — 5 missing

Command API Method Args/Flags
calendar get-calendar <id> calendars.get positional
calendar create-calendar calendars.insert --summary, --description, --timezone
calendar update-calendar <id> calendars.patch --summary, --description, --timezone
calendar delete-calendar <id> calendars.delete positional, --force
calendar clear <id> calendars.clear positional (clears all events from primary calendar)

Calendar List (subscriptions) — 4 missing

Command API Method Args/Flags
calendar subscribe <id> calendarList.insert positional (add calendar to user's list)
calendar unsubscribe <id> calendarList.delete positional (remove from list)
calendar calendar-info <id> calendarList.get positional (color, notification settings)
calendar update-subscription <id> calendarList.patch --color, --hidden, --summary-override

ACL (sharing) — 4 missing

Command API Method Args/Flags
calendar acl <calendar-id> acl.list positional
calendar share <calendar-id> acl.insert --email, --role (freeBusyReader/reader/writer/owner)
calendar unshare <calendar-id> acl.delete --rule-id
calendar update-acl <calendar-id> acl.patch --rule-id, --role

Free/Busy — 1 missing

Command API Method Args/Flags
calendar freebusy freebusy.query --emails, --start, --end

Other — 2 missing

Command API Method Args/Flags
calendar colors colors.get — (list available calendar/event colors)
calendar settings settings.list — (user calendar settings)

Skipped

Method Reason
events.import iCal import, niche
events.watch, calendarList.watch, acl.watch, settings.watch Push notifications, needs Pub/Sub
channels.stop Stops watch

Scopes

Current scopes (calendar.readonly, calendar.events) cover events. May need calendar (full access) for calendar CRUD and ACL operations.

Acceptance criteria

  • All ~20 new commands implemented and tested
  • Scopes updated if needed
  • TestCalendarCommands updated in commands_test.go
  • Skills and README updated
  • Version bump

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions