-
Notifications
You must be signed in to change notification settings - Fork 5
Added calendar events, move contacts, and extensions commands #48
Description
Hi,
I use hey-cli and fizzy-cli, so the code was familiar. Added some commands I wanted for myself.
Didn't touch the SDK. Everything goes through the legacy client with form-encoded POSTs that handle 302 redirects, same as the web UI. Tried the endpoints with curl first.
What I added
hey event — calendar events
hey event list
hey event create "Meeting" --date 2026-04-06 --start 10:00 --end 11:00
hey event create "Holiday" --date 2026-04-06 --all-day
hey event create "Standup" --date 2026-04-06 --start 09:00 --end 09:30 --reminder 30m --reminder 1d
hey event edit <id> --title "New title" --start 14:00 --end 15:00
hey event delete <id>List goes through the SDK (Calendars().GetRecordings). Create/edit/delete hit /calendar/events via the legacy client since those return 302s.
hey move — move contacts between boxes
hey move <topic-id> --box feedbox
hey move --contact <contact-id> --box trailboxGets the contact from the topic creator via Topics().Get, posts to /boxes/{id}/designations. Asks for confirmation unless you pass --yes.
hey ext — email extensions
hey ext list
hey ext create sales --member user@domain.com
hey ext edit <id> --name support
hey ext delete <id> --yesList scrapes HTML at /accounts/{id}/domains/extenzions because there's no JSON endpoint. Account ID comes from Identity().GetIdentity. Edit/delete use POST with _method override.
How it's built
- Legacy client extended with
PostForm,PatchForm,Deletefor 302 redirects - Followed existing code structure
- Unit tests with httptest servers
--jsonon everything
Cool thing I found
The API accepts any reminder duration for calendar events, not just the presets in the web UI. I set a reminder days in advance to get notified the morning of an event instead of minutes before, which is really useful.
Code
All on my fork: https://github.com/guilhermeyo/hey-cli/tree/feature/new-commands
Is there any plan to add these natively? I can adjust the hey-sdk and send a PR for each one if that helps. It's been working well for me as is.