CLI Commands
Complete reference for all PortEden CLI commands.
Calendar Commands
| Command | Description |
|---|---|
| porteden calendar calendars | List all accessible calendars |
| porteden calendar events | List or search events |
| porteden calendar event <id> | Get a single event |
| porteden calendar create | Create a new event |
| porteden calendar update <id> | Update an existing event |
| porteden calendar delete <id> | Delete an event |
| porteden calendar respond <id> | Respond to an invitation |
| porteden calendar freebusy | Check free/busy availability |
| porteden calendar by-contact | Find events by contact |
Email Commands
| Command | Description |
|---|---|
| porteden email messages | List or search emails |
| porteden email message <id> | Get a single email |
| porteden email thread <id> | Get an email thread |
| porteden email send | Send a new email |
| porteden email reply <id> | Reply to an email |
| porteden email forward <id> | Forward an email |
| porteden email modify <id> | Modify email properties |
| porteden email delete <id> | Delete an email |
List Calendars
Returns all calendars accessible to your account, including their IDs (needed for creating events).
porteden calendar calendars List Events
List events with convenient time range shortcuts or custom date ranges.
# Todayporteden calendar events --today # Tomorrowporteden calendar events --tomorrow # This weekporteden calendar events --week # Next N daysporteden calendar events --days 14 # Custom date rangeporteden calendar events --from 2026-03-01 --to 2026-03-31 # Filter by calendarporteden calendar events --today --calendar 12345 # Include cancelled eventsporteden calendar events --today --include-cancelled Search Events
Use the -q flag to search event titles, descriptions, and locations:
porteden calendar events -q "standup" --today porteden calendar events -q "budget review" --week porteden calendar events -q "offsite" --from 2026-03-01 --to 2026-06-30 Filter by attendee:
porteden calendar events -q "sync" --week --attendees "jane@acme.com" Get a Single Event
porteden calendar event <eventId> Create an Event
porteden calendar create \ --calendar 1 \ --summary "Team Standup" \ --from "2026-02-10T10:00:00Z" \ --to "2026-02-10T10:30:00Z" \ --description "Daily sync" \ --location "Conference Room A" \ --attendees "alice@acme.com,bob@acme.com" All-day event:
porteden calendar create \ --calendar 1 \ --summary "Company Offsite" \ --from "2026-03-15T00:00:00Z" \ --to "2026-03-16T00:00:00Z" \ --all-day | Flag | Required | Description |
|---|---|---|
| --calendar | Yes | Calendar ID to create the event in |
| --summary | Yes | Event title |
| --from | Yes | Start time (ISO 8601) |
| --to | Yes | End time (ISO 8601) |
| --description | No | Event description |
| --location | No | Event location |
| --attendees | No | Comma-separated email addresses |
| --all-day | No | Mark as all-day event |
| --recurrence | No | Recurrence rule |
Update an Event
All fields are optional — only specify what you want to change:
# Change the titleporteden calendar update <eventId> --summary "New Title" # Rescheduleporteden calendar update <eventId> \ --from "2026-02-10T14:00:00Z" \ --to "2026-02-10T15:00:00Z" # Change locationporteden calendar update <eventId> --location "Room B" # Add or remove attendeesporteden calendar update <eventId> --add-attendees "new@acme.com" --notify porteden calendar update <eventId> --remove-attendees "old@acme.com" Delete an Event
porteden calendar delete <eventId> # Skip attendee notificationsporteden calendar delete <eventId> --no-notify Respond to an Invitation
porteden calendar respond <eventId> accepted porteden calendar respond <eventId> declined porteden calendar respond <eventId> tentative Check Free/Busy
porteden calendar freebusy --today porteden calendar freebusy --week porteden calendar freebusy --from 2026-02-10 --to 2026-02-14 # Check specific calendarsporteden calendar freebusy --week --calendars 123,456 Find Events by Contact
Look up all events shared with a specific person:
# By emailporteden calendar by-contact "jane@acme.com" # By nameporteden calendar by-contact --name "Jane Smith" # Partial match (everyone at a domain)porteden calendar by-contact "@acme.com" List / Search Emails
List emails with time range shortcuts, filters, and keyword search.
# Recent emailsporteden email messages # Today's emailsporteden email messages --today # This weekporteden email messages --week # Last N daysporteden email messages --days 30 # Specific date rangeporteden email messages --after 2026-02-01 --before 2026-02-07 # Filter by senderporteden email messages --from boss@example.com # Filter by recipientporteden email messages --to team@example.com # Filter by subjectporteden email messages --subject "invoice" # Search with keywordporteden email messages -q "project update" # Unread onlyporteden email messages --unread # Emails with attachmentsporteden email messages --has-attachment # Filter by labelporteden email messages --label IMPORTANT # Include full email bodyporteden email messages --include-body # Combine filtersporteden email messages --from boss@example.com --unread --today Pagination
# Fetch all pages automaticallyporteden email messages --week --all # Manual pagination (limit per page)porteden email messages --limit 10 Get a Single Email
porteden email message <emailId> # Without body contentporteden email message <emailId> --include-body=false Get Email Thread
porteden email thread <threadId> Send Email
# Basic sendporteden email send --to user@example.com --subject "Hello" --body "Hi there" # With CC/BCCporteden email send \ --to user@example.com \ --cc team@example.com \ --bcc manager@example.com \ --subject "Update" \ --body "Here's the update" # With named recipientsporteden email send --to "John Doe <john@example.com>" --subject "Hi" --body "Hello John" # Read body from fileporteden email send --to user@example.com --subject "Report" --body-file report.html # Plain text bodyporteden email send --to user@example.com --subject "Note" --body "Plain text" --body-type text # High importanceporteden email send --to user@example.com --subject "Urgent" --body "Please review" --importance high # Send from specific connectionporteden email send --to user@example.com --subject "Hi" --body "Hello" --connection-id 42 | Flag | Required | Description |
|---|---|---|
| --to | Yes | Recipient email address |
| --subject | Yes | Email subject line |
| --body | Yes* | Email body content (*or use --body-file) |
| --cc | No | CC recipient(s) |
| --bcc | No | BCC recipient(s) |
| --body-file | No | Read body content from a file |
| --body-type | No | Body type: html (default) or text |
| --importance | No | Email importance: low, normal, or high |
| --connection-id | No | Send from a specific email connection |
Reply to Email
# Reply to senderporteden email reply <emailId> --body "Thanks for the update" # Reply allporteden email reply <emailId> --body "Noted, thanks everyone" --reply-all # Reply with body from fileporteden email reply <emailId> --body-file reply.html Forward Email
# Forward to one recipientporteden email forward <emailId> --to colleague@example.com # Forward with a messageporteden email forward <emailId> --to colleague@example.com --body "FYI - see below" # Forward to multiple recipients with CCporteden email forward <emailId> --to user1@example.com --cc user2@example.com Delete Email
porteden email delete <emailId> Modify Email Properties
# Mark as readporteden email modify <emailId> --mark-read # Mark as unreadporteden email modify <emailId> --mark-unread # Add labelsporteden email modify <emailId> --add-labels IMPORTANT,STARRED # Remove labelsporteden email modify <emailId> --remove-labels INBOX # Combine modificationsporteden email modify <emailId> --mark-read --add-labels IMPORTANT Need help with a command?
Run
porteden <command> --help for detailed usage information on any command.