outlook-calendar
Manage Outlook calendar via PowerShell: list events, create/update/delete appointments, send meeting invites, respond to meetings, recurring events, check availability, and find rooms. Scripts auto-start Outlook when needed.
What this skill does
# Outlook Calendar Manage Microsoft Outlook calendar events and meetings using PowerShell COM objects. ## Prerequisites - Microsoft Outlook installed (scripts auto-start Outlook if it's not already running) - PowerShell 5.1+ (included in Windows 10/11) - Some features (rooms, free/busy) require Exchange/Office 365 ## Events and Appointments List, create, update, and delete calendar events. ### outlook-calendar-list.ps1 List upcoming calendar events with EntryIDs for use with action scripts. **Required Parameters:** None (uses defaults) | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `-Days` | int | 7 | Number of days to look ahead (or ahead+behind with -Past) | | `-Past` | switch | false | Include past events (shows -Days before and after today) | | `-Limit` | int | 20 | Maximum number of events to display | ```powershell # List upcoming events (next 7 days) & "./scripts/outlook-calendar-list.ps1" -Days 7 # List events including past & "./scripts/outlook-calendar-list.ps1" -Days 7 -Past # List next 30 days, max 50 events & "./scripts/outlook-calendar-list.ps1" -Days 30 -Limit 50 ``` ### outlook-calendar-create.ps1 Create a new appointment or meeting with attendees. **Required Parameters:** `-Subject`, `-Start` | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `-Subject` | string | — | Event subject/title (required) | | `-Start` | datetime | — | Start date and time (required) | | `-End` | datetime | Start+1hr | End date and time | | `-Location` | string | "" | Event location | | `-Body` | string | "" | Event description/body text | | `-AllDay` | switch | false | Create as all-day event | | `-Reminder` | int | 15 | Reminder minutes before event | | `-Attendees` | string | "" | Semicolon-separated email addresses (sends invites) | ```powershell # Create a simple appointment & "./scripts/outlook-calendar-create.ps1" -Subject "Team Sync" -Start "2026-02-10 14:00" # Create meeting with attendees (sends invites) & "./scripts/outlook-calendar-create.ps1" -Subject "Project Review" -Start "2026-02-10 10:00" -End "2026-02-10 11:30" -Location "Conference Room A" -Attendees "[email protected]; [email protected]" # Create all-day event & "./scripts/outlook-calendar-create.ps1" -Subject "Company Holiday" -Start "2026-02-15" -AllDay ``` ### outlook-calendar-update.ps1 Update an existing calendar event's details. **Required Parameters:** `-EntryID` or `-Index` (at least one) | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `-EntryID` | string | "" | Outlook EntryID for direct lookup (preferred) | | `-Index` | int | 0 | Event position in upcoming list (fallback) | | `-Days` | int | 7 | Days ahead to search when using -Index | | `-Subject` | string | "" | New subject/title | | `-Start` | datetime | — | New start time (adjusts end to maintain duration) | | `-End` | datetime | — | New end time | | `-Location` | string | "" | New location | | `-Body` | string | "" | New body text | ```powershell # Update event by EntryID (preferred) & "./scripts/outlook-calendar-update.ps1" -EntryID "00000000..." -Subject "Updated Meeting" -Location "Room 202" # Update event by index (fallback) & "./scripts/outlook-calendar-update.ps1" -Index 1 -Subject "New Title" # Reschedule event & "./scripts/outlook-calendar-update.ps1" -EntryID "00000000..." -Start "2026-02-10 14:00" ``` ### outlook-calendar-delete.ps1 Delete a calendar event or meeting. **Required Parameters:** `-EntryID` or `-Index` (at least one) | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `-EntryID` | string | "" | Outlook EntryID for direct lookup (preferred) | | `-Index` | int | 0 | Event position in upcoming list (fallback) | | `-Days` | int | 7 | Days ahead to search when using -Index | Supports PowerShell safety switches: `-WhatIf` and `-Confirm`. ```powershell # Delete by EntryID (preferred) & "./scripts/outlook-calendar-delete.ps1" -EntryID "00000000..." # Delete by index (fallback) & "./scripts/outlook-calendar-delete.ps1" -Index 1 # Delete event in wider range & "./scripts/outlook-calendar-delete.ps1" -Index 3 -Days 14 ``` ## Meetings and Responses Respond to meeting invitations, view attendee responses, and forward events. ### outlook-calendar-respond.ps1 Accept, tentatively accept, or decline a meeting invitation. **Required Parameters:** `-Response`, plus `-EntryID` or `-Index` | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `-EntryID` | string | "" | Outlook EntryID for direct lookup (preferred) | | `-Index` | int | 0 | Event position in upcoming list (fallback) | | `-Response` | string | — | Response type: Accept, Tentative, or Decline (required) | | `-Days` | int | 7 | Days ahead to search when using -Index | | `-NoResponse` | switch | false | Save response locally without notifying organizer | ```powershell # Accept a meeting (preferred) & "./scripts/outlook-calendar-respond.ps1" -EntryID "00000000..." -Response Accept # Tentatively accept by index & "./scripts/outlook-calendar-respond.ps1" -Index 1 -Response Tentative # Decline without sending response to organizer & "./scripts/outlook-calendar-respond.ps1" -EntryID "00000000..." -Response Decline -NoResponse ``` ### outlook-calendar-attendees.ps1 View meeting attendee list with response status (accepted/declined/tentative). **Required Parameters:** `-EntryID` or `-Index` (at least one) | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `-EntryID` | string | "" | Outlook EntryID for direct lookup (preferred) | | `-Index` | int | 0 | Event position in upcoming list (fallback) | | `-Days` | int | 7 | Days ahead to search when using -Index | ```powershell # View attendees by EntryID (preferred) & "./scripts/outlook-calendar-attendees.ps1" -EntryID "00000000..." # View attendees by index & "./scripts/outlook-calendar-attendees.ps1" -Index 1 # Check meeting in wider range & "./scripts/outlook-calendar-attendees.ps1" -Index 1 -Days 14 ``` ### outlook-calendar-forward.ps1 Forward a calendar event using Outlook `ForwardAsVcal` (vCal-style calendar attachment). **Required Parameters:** `-To`, plus `-EntryID` or `-Index` | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `-EntryID` | string | "" | Outlook EntryID for direct lookup (preferred) | | `-Index` | int | 0 | Event position in upcoming list (fallback) | | `-To` | string | — | Recipient email address (required) | | `-Body` | string | "" | Custom message to include | | `-Days` | int | 7 | Days ahead to search when using -Index | | `-Send` | switch | false | Send immediately (default: save as draft) | ```powershell # Forward event as draft (preferred) & "./scripts/outlook-calendar-forward.ps1" -EntryID "00000000..." -To "[email protected]" -Body "FYI" # Forward and send immediately & "./scripts/outlook-calendar-forward.ps1" -EntryID "00000000..." -To "[email protected]" -Send # Forward by index & "./scripts/outlook-calendar-forward.ps1" -Index 1 -To "[email protected]" -Body "FYI" -Send ``` ## Recurring Events Create events that repeat on a schedule. ### outlook-calendar-recurring.ps1 Create a recurring calendar event with various recurrence patterns. **Required Parameters:** `-Subject`, `-Start`, `-Pattern` | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `-Subject` | string | — | Event subject/title (required) | | `-Start` | datetime | — | First occurrence date/time (required) | | `-Pattern` | string | — | Recurrence type: Daily, Weekly, Monthly, Yearly (required) | | `-Interval` | int | 1 | Repeat every N days/weeks/months/years | | `-Duration` | int | 60 | Event duration in minutes | | `-Location` | string | "" | Event location | | `-Body` | string | "" | Event description | | `-Attendees` | string
Related in Productivity
gitea-workflow
IncludedOrchestrate agile development workflows for Gitea repositories using the tea CLI. Use when working with Gitea-hosted repos and asking to 'run the workflow', 'continue working', 'what's next', 'complete the task cycle', 'start my day', 'end the sprint', 'implement the next task', or wanting guided step-by-step development assistance. Keywords: workflow, orchestrate, agile, task cycle, sprint, daily, implement, review, PR, standup, retrospective, gitea, tea.
microsoft-graph-gateway
IncludedRoute Microsoft Graph work in this workspace. Use when users want to read or write Outlook mail, calendar events, contacts, OneDrive or SharePoint files, Teams, Planner, To Do, users, groups, directory data, or arbitrary Microsoft Graph endpoints from VS Code. Prefer WorkIQ for common read scenarios. Use Microsoft Graph for write actions and gap-read scenarios that need exact Graph properties, filters, permissions, or endpoints.
copilotkit
IncludedUse when building with CopilotKit — setup, development, integrations, debugging, upgrading, or contributing. Routes to the appropriate specialized skill based on the task.
wordly-wisdom
IncludedProvides calibrated decision analysis using Charlie Munger-style multiple mental models, inversion, incentive mapping, circle-of-competence checks, misjudgment audits, second-order effects, and forecast updates. Use when the user asks for an oracle take, a hard call, a decision memo, a premortem, an outside view, a red-team, a sanity-check, what am I missing, think this through, or wants a strategy, hire, investment, plan, product, partnership, or major life choice analysed. Avoid for simple factual lookups or time-sensitive legal, medical, or market questions without fresh evidence.
swain-session
IncludedSession management and project status dashboard. Owns the full session lifecycle (start/work/close/resume), focus lane, bookmarks, worktree detection, and tab naming. Also serves as the project status dashboard — shows active epics, progress, actionable next steps, blocked items, tasks, GitHub issues, and recommendations. Worktree creation is deferred to swain-do task dispatch (SPEC-195). Triggers on: 'session', 'status', 'what's next', 'dashboard', 'overview', 'where are we', 'what should I work on', 'show me priorities', 'bookmark', 'focus on', 'session info'.
gandi
IncludedComprehensive Gandi domain registrar integration for domain and DNS management. Register and manage domains, create/update/delete DNS records (A, AAAA, CNAME, MX, TXT, SRV, and more), configure email forwarding and aliases, check SSL certificate status, create DNS snapshots for safe rollback, bulk update zone files, and monitor domain expiration. Supports multi-domain management, zone file import/export, and automated DNS backups. Includes both read-only and destructive operations with safety controls.