Secure Grok Build Calendar (Google + Outlook) Skill
Grok Build agents schedule, reschedule, and triage attendee responses on Google Calendar and Outlook through a single normalized command surface.
google-calendar · outlook-calendar · calendar · events · scheduling
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_KEYis 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/scheduledtentative- Maybe attendingneedsAction- Requires response from usercancelled- 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-dayflag - JSON output includes
startUtc,endUtc,durationMinutesfields
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 descriptions, limits attendees, reduces tokens.- Use
--allto auto-fetch all pages; checkmeta.hasMoreandmeta.totalCountin JSON output. - Manual pagination:
--limit 100 --offset 0, then--offset 100, etc. by-contactsupports 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.
The capability, in one paragraph
Calendars are dense with PII you wouldn't paste into ChatGPT on purpose: attendee identities, location strings that double as office addresses or hospital wards, meeting bodies that contain client names and case numbers. PortEden Calendar lets the agent triage and schedule without the body content ever leaving your network in plaintext.
A few flags, predictable output
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.
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 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.
Five minutes, three commands
Install the PortEden CLI
Grok Build skills delegate every API call to the porteden binary. Install once with Homebrew or Go — the agent runtime invokes it on your behalf.
brew install porteden/tap/porteden # orgo install github.com/porteden/cli/cmd/porteden@latest 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 / CIporteden auth login --token <PE_API_KEY> porteden auth status Add porteden-calendar to your Grok Build skills directory
Grok Build loads SKILL.md files from .grok/skills/. Drop the canonical SKILL.md into that directory and Grok picks it up on next session.
mkdir -p .grok/skills/porteden-calendar curl -fsSL https://porteden.com/skills/grok-build/porteden-calendar/SKILL.md \ -o .grok/skills/porteden-calendar/SKILL.md Install Secure Grok Build Calendar (Google + Outlook) Skill in five minutes. No credit card required.
Free tier covers personal Gmail, Outlook, Google Calendar, and Drive accounts. Upgrade for organization-wide policy and audit log.
Related Skills
Install Secure Grok Build 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 — wrapped for xAI's Grok Build runtime.
Regulated org or 200+ seats? Talk to sales →