Porteden
PortEden CLI for calendar and email management - Gmail, Outlook & Exchange - list, search, create, u
- Rating
- 3.9 (289 reviews)
- Downloads
- 10,740 downloads
- Version
- 1.0.0
Overview
PortEden CLI for calendar and email management - Gmail, Outlook & Exchange - list, search, create, update, delete.
Complete Documentation
View Source →
porteden
Use porteden for calendar and email management across multiple accounts. Use -jc flags for AI-optimized output.
If porteden is not installed: brew install porteden/tap/porteden (or go install github.com/porteden/cli/cmd/porteden@latest).
Setup (once)
- Browser login (recommended):
porteden auth login— opens browser, credentials stored in system keyring - Direct token:
porteden auth login --token— stored in system keyring - Verify:
porteden auth status - If
PE_API_KEYis set in the environment, the CLI uses it automatically (no login needed).
Calendar commands
- List calendars:
porteden calendar calendars -jc - Events today (or --tomorrow, --week):
porteden calendar events --today -jc - Events custom range:
porteden calendar events --from 2026-02-01 --to 2026-02-07 -jc - All events (auto-pagination):
porteden calendar events --week --all -jc - Search events:
porteden calendar events -q "meeting" --today -jc - Events by contact:
porteden calendar by-contact "[email protected]" -jc(or --name "John Smith") - Get single event:
porteden calendar event-jc - Create event:
porteden calendar create --calendar--summary "Meeting" --from "..." --to "..." --location "Room A" --attendees "[email protected],[email protected]" - Update event:
porteden calendar update(also: --from, --to, --location)--summary "New Title" - Update attendees:
porteden calendar update(or --remove-attendees; add --notify to send notifications)--add-attendees "[email protected]" - Delete event:
porteden calendar delete(add --no-notify to skip attendee notifications) - Respond to invite:
porteden calendar respond(or: declined, tentative)accepted
confirmed- Accepted/scheduledtentative- Maybe attendingneedsAction- Requires response from usercancelled- Event was cancelled
- All times use RFC3339 UTC format:
2026-02-01T10:00:00Z - For all-day events, use midnight-to-midnight with
--all-dayflag - JSON output includes
startUtc,endUtc,durationMinutesfields
Email commands
Use porteden email (alias: porteden mail) for email management.
- List emails (or --today, --yesterday, --week, --days N):
porteden email messages -jc - Filter emails:
porteden email messages --from [email protected] -jc(also: --to, --subject, --label, --unread, --has-attachment) - Search emails:
porteden email messages -q "keyword" --today -jc - Custom date range:
porteden email messages --after 2026-02-01 --before 2026-02-07 -jc - All emails (auto-pagination):
porteden email messages --week --all -jc - Get single email:
porteden email message-jc - Get thread:
porteden email thread-jc - Send email:
porteden email send --to [email protected] --subject "Hi" --body "Hello"(also: --cc, --bcc, --body-file, --body-type text, --importance high) - Send with named recipient:
porteden email send --to "John Doe" --subject "Hi" --body "Hello" - Reply:
porteden email reply(add--body "Thanks" --reply-allfor reply all) - Forward:
porteden email forward(optional--to [email protected] --body "FYI", --cc) - Modify email:
porteden email modify(also: --mark-unread, --add-labels IMPORTANT, --remove-labels INBOX)--mark-read - Delete email:
porteden email delete
Notes
- Credentials persist in the system keyring after login. No repeated auth needed.
- Set
PE_PROFILE=workto avoid repeating--profile. -jcis shorthand for--json --compact: filters noise, truncates fields, reduces tokens.- Use
--allto auto-fetch all pages; checkhasMore/nextPageToken(email) ormeta.hasMore/meta.totalCount(calendar) in JSON output. - Calendar manual pagination:
--limit 100 --offset 0, then--offset 100, etc. by-contactsupports partial matching:"@acme.com"for email domain,--name "Smith"for name.- Email IDs are provider-prefixed (e.g.,
google:abc123,m365:xyz789). Pass them as-is. --include-bodyonmessagesfetches full body (default: preview only). Singlemessageincludes body by default.--bodyand--body-fileare mutually exclusive. Use--body-type textfor plain text (default: html).- Confirm before sending, replying, forwarding, or deleting emails.
- Confirm before creating, updating, or deleting events.
- "invalid calendar ID": Get IDs with
porteden calendar calendars -jc. - Environment variables:
PE_API_KEY,PE_PROFILE,PE_TIMEZONE,PE_FORMAT,PE_COLOR,PE_VERBOSE.
Installation
openclaw install porteden
Tags
Quick Info
Ready to Install?
Get started with this skill in seconds
Related Skills
4claw
4claw — a moderated imageboard for AI agents.
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.
Adversarial Prompting
Adversarial analysis to critique, fix.