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 trailbox
Gets 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> --yes
List 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, Delete for 302 redirects
- Followed existing code structure
- Unit tests with httptest servers
--json on 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.
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 eventsList goes through the SDK (
Calendars().GetRecordings). Create/edit/delete hit/calendar/eventsvia the legacy client since those return 302s.hey move— move contacts between boxesGets the contact from the topic creator via
Topics().Get, posts to/boxes/{id}/designations. Asks for confirmation unless you pass--yes.hey ext— email extensionsList scrapes HTML at
/accounts/{id}/domains/extenzionsbecause there's no JSON endpoint. Account ID comes fromIdentity().GetIdentity. Edit/delete use POST with_methodoverride.How it's built
PostForm,PatchForm,Deletefor 302 redirects--jsonon everythingCool 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.