Skip to content
Marketplace · Calendar
Calendar skillsVerifiedUpdated May 20, 2026

Secure Calendar (Google + Outlook) Skill

OpenClaw agents schedule, reschedule, and triage attendee responses on Google Calendar and Outlook through a single normalized command surface.

View on ClawHub

google-calendar · outlook-calendar · calendar · events · scheduling

What this skill does
PortEden Calendar fronts both Google Calendar and Microsoft 365 calendars behind one command. The agent writes `porteden calendar events --today` and gets the same JSON shape regardless of which backend the profile points at. The skill covers the full event lifecycle — list, search by date or contact, create, update, delete, respond to invitations (accepted/declined/tentative), and propose new times. Attendee email addresses, location strings, and meeting body content all run through PortEden's redaction policy before they reach the agent context.

Example

Prompt

What's on my calendar today, and move my 3pm with Dana to tomorrow at the same time.

Output
Today: 4 events (attendee names + locations redacted)
- 09:30 Standup
- 11:00 [redacted] review
- 15:00 Sync w/ Dana  ->  proposed Wed 15:00, invite updated
- 16:30 1:1

sendUpdates: attendees notified of the move.
Required tools
Google CalendarOutlook Calendar
Compatible agents
OpenClawGrok BuildAny CLI-compatible agent

Add to your agent

Steps 1–2 are identical for every agent — install the porteden binary and authenticate once. Step 3 registers the skill with your runtime.

1

Install the PortEden CLI

OpenClaw skills delegate every API call to the porteden binary. Install once with Homebrew or Go.

brew install porteden/tap/porteden
# or
go install github.com/porteden/cli/cmd/porteden@latest
2

Authenticate

Browser-based login is recommended — credentials are written to your OS keyring. Token-based login is available for headless environments.

porteden auth login
# headless / CI
porteden auth login --token <PE_API_KEY>
porteden auth status
3

Install the porteden-calendar skill

OpenClaw fetches the signed skill bundle and registers its commands with the agent.

openclaw skills install porteden-calendar

The SKILL.md

The canonical, copy-paste-able skill definition your agent loads.

SKILL.md · porteden-calendar · 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.

How it works

01

Cross-backend normalization

Google Calendar resourceIds and Microsoft Graph eventIds are wrapped in PortEden's google: / microsoft: prefix scheme. Commands work on either with no agent-side branching.

02

Date-aware filters

--today, --this-week, --next-week, --since, and --until are time-zone aware (PE_TIMEZONE). RFC3339 UTC strings always work as the explicit fallback.

porteden calendar events --today -jc
porteden calendar events --since 2025-12-01T00:00:00Z --until 2025-12-31T23:59:59Z -jc
03

Attendee-based search

events search --contact <email> returns every event involving that attendee across all calendars in the profile — useful for triaging recurring meetings or rescheduling around a vacation.

Deploy org-wide

The same firewall behind every PortEden skill

  • Provision to teams with role-based access policies
  • Identity-aware execution — every call ties back to a user
  • Signed, version-pinned skills
  • Full audit trail on every tool call
  • Field-level redaction at egress
See enterprise controls
PortEden · v1.0.3 · MIT-0
Source on ClawHub

Frequently asked questions

Which calendars does it support?
Google Calendar and Microsoft 365 calendars behind one command. Backend IDs are wrapped in a google:/microsoft: prefix scheme so commands work on either with no agent-side branching.
What gets redacted on a calendar event?
Attendee email addresses, location strings, and meeting body content run through PortEden's redaction policy before they reach the agent context.
Can it RSVP and propose new times?
Yes. The skill covers the full event lifecycle including respond (accepted, declined, tentative) and proposing new times, so the agent can negotiate rescheduling without a separate email thread.
Which agents can install it?
OpenClaw, Grok Build, or any CLI-compatible agent, each through the porteden binary.

Install Secure OpenClaw Calendar (Google + Outlook) Skill Without Inheriting the Audit Tail

Browser auth, keyring-bound credentials, server-side audit log. The same data firewall behind every PortEden integration.

Talk to sales

Regulated org or 200+ seats? Talk to sales →