PortEden - secured calendar(Gmail, Outlook, Exchange) access for OpenClaw

v1.0.3

Secured Calendar management - Google Calendar, Microsoft Outlook & Exchange - list, search, create, update, delete, and respond to calendar events across mul...

2· 749·2 current·2 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for porteden/porteden-calendar.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "PortEden - secured calendar(Gmail, Outlook, Exchange) access for OpenClaw" (porteden/porteden-calendar) from ClawHub.
Skill page: https://clawhub.ai/porteden/porteden-calendar
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required env vars: PE_API_KEY
Required binaries: porteden
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Canonical install target

openclaw skills install porteden/porteden-calendar

ClawHub CLI

Package manager switcher

npx clawhub@latest install porteden-calendar
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description, declared binary requirement (porteden), install instructions (brew/go) and primaryEnv (PE_API_KEY) all align with a CLI-based calendar integration. Requesting a PE_API_KEY and a local 'porteden' binary is proportionate to the stated purpose.
Instruction Scope
SKILL.md contains only CLI usage for porteden (listing, searching, creating, updating, deleting events) and instructions to authenticate via browser or token. It explicitly notes credentials persist in the system keyring and recommends using PE_API_KEY in the environment. One minor inconsistency: SKILL.md references additional optional env vars (PE_PROFILE, PE_TIMEZONE, PE_FORMAT, PE_COLOR, PE_VERBOSE) that are not declared in the registry's requires.env list — this is informational but not malicious. No instructions request unrelated files, system-wide config, or external endpoints beyond the porteden CLI behavior.
Install Mechanism
Install options are brew (porteden/tap/porteden) or go install from github.com/porteden/cli — both are normal package install paths for a CLI. There are no arbitrary URL downloads or extract-from-unknown-host steps in the manifest. Note: the brew tap is a third-party tap (porteden/tap) rather than Homebrew/core; verify you trust that tap if installing via brew.
Credentials
Only one required credential (PE_API_KEY) is declared and used as the primary credential, which is appropriate. SKILL.md mentions additional optional env vars for convenience but does not require unrelated credentials. The CLI persists credentials to the system keyring — expected for a CLI but worth noting because it creates local persistent access to calendar accounts.
Persistence & Privilege
The skill is not force-included (always:false) and does not request elevated privileges or modify other skills. It relies on a local CLI which stores tokens in the system keyring (local persistence) — normal for this type of tool. Autonomous invocation is allowed (platform default); if you enable the skill for autonomous actions, the agent will be able to run the porteden CLI and access any credentials available to it.
Assessment
This skill is coherent: it simply directs the agent to run the porteden CLI and use PE_API_KEY or an interactive/browser login. Before installing, verify you trust the PortEden project and the brew tap or GitHub repo used for go install. Understand that PE_API_KEY grants access to your calendars — consider creating a least-privilege API key or a dedicated profile, and avoid putting long-lived keys in global shells. Note that the CLI stores credentials in the system keyring (persistent local access); if you are concerned about persistence, prefer temporary tokens and remove them after use. Finally, if you plan to allow autonomous agent actions, remember the agent will be able to run the CLI and read/write calendar events, so review access and consent settings accordingly.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

📅 Clawdis
Binsporteden
EnvPE_API_KEY
Primary envPE_API_KEY

Install

Install porteden (brew)
Bins: porteden
brew install porteden/tap/porteden
Install porteden (go)
Bins: porteden
go install github.com/porteden/cli/cmd/porteden@latest
latestvk97dk43mb423yj8dbtpye4z9f181v2jg
749downloads
2stars
4versions
Updated 3w ago
v1.0.3
MIT-0

porteden

Use porteden for calendar 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 <key> — stored in system keyring
  • Verify: porteden auth status
  • If PE_API_KEY is set in the environment, the CLI uses it automatically (no login needed).

Common 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 "user@example.com" -jc (or --name "John Smith")
  • Get single event: porteden calendar event <eventId> -jc
  • Create event: porteden calendar create --calendar <id> --summary "Meeting" --from "..." --to "..." --location "Room A" --attendees "a@b.com,c@d.com"
  • Update event: porteden calendar update <eventId> --summary "New Title" (also: --from, --to, --location)
  • Update attendees: porteden calendar update <eventId> --add-attendees "new@example.com" (or --remove-attendees; add --notify to send notifications)
  • Delete event: porteden calendar delete <eventId> (add --no-notify to skip attendee notifications)
  • Respond to invite: porteden calendar respond <eventId> accepted (or: declined, tentative)

Event Status Values

  • confirmed - Accepted/scheduled
  • tentative - Maybe attending
  • needsAction - Requires response from user
  • cancelled - Event was cancelled

Time Formats

  • All times use RFC3339 UTC format: 2026-02-01T10:00:00Z
  • For all-day events, use midnight-to-midnight with --all-day flag
  • JSON output includes startUtc, endUtc, durationMinutes fields

Notes

  • Credentials persist in the system keyring after login. No repeated auth needed.
  • Set PE_PROFILE=work to avoid repeating --profile.
  • -jc is shorthand for --json --compact: filters noise, truncates descriptions, limits attendees, reduces tokens.
  • Use --all to auto-fetch all pages; check meta.hasMore and meta.totalCount in JSON output.
  • Manual pagination: --limit 100 --offset 0, then --offset 100, etc.
  • by-contact supports partial matching: "@acme.com" for email domain, --name "Smith" for name.
  • 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.

Comments

Loading comments...