outlook-contacts
Manage Outlook contacts via PowerShell: list, create, search, update, delete contacts, add/remove photos, and export as vCard. Requires Outlook running.
What this skill does
# Outlook Contacts Manage Microsoft Outlook contacts using PowerShell COM objects. ## Prerequisites - Microsoft Outlook installed and running - PowerShell 5.1+ (included in Windows 10/11) ## List Contacts ### outlook-contacts-list.ps1 Browse contacts with optional search filtering. Returns EntryIDs for use with action scripts. **Required Parameters:** None (lists all contacts by default) | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `-Limit` | int | 20 | Maximum contacts to display | | `-Search` | string | — | Filter by name, email, or company (case-insensitive) | ```powershell # List all contacts (first 20) & "./scripts/outlook-contacts-list.ps1" -Limit 20 # List with search filter & "./scripts/outlook-contacts-list.ps1" -Search "John" ``` ## Search Contacts ### outlook-contacts-search.ps1 Search contacts by name, email, and/or company. Multiple criteria use AND logic. Returns EntryIDs for use with action scripts. **Required Parameters:** At least one of `-Name`, `-Email`, or `-Company` | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `-Name` | string | — | Search by contact name (case-insensitive contains) | | `-Email` | string | — | Search by email address (case-insensitive contains) | | `-Company` | string | — | Search by company name (case-insensitive contains) | | `-Limit` | int | 10 | Maximum results to return | ```powershell # Search by name & "./scripts/outlook-contacts-search.ps1" -Name "John" # Search by company & "./scripts/outlook-contacts-search.ps1" -Company "Acme" # Search by email domain & "./scripts/outlook-contacts-search.ps1" -Email "example.com" # Combined search (AND logic) & "./scripts/outlook-contacts-search.ps1" -Name "John" -Company "Acme" ``` ## Create Contact ### outlook-contacts-create.ps1 Create a new contact in the default Contacts folder. **Required Parameters:** `-FullName` | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `-FullName` | string | **Required** | Contact's full name | | `-Email` | string | — | Email address | | `-Phone` | string | — | Business phone number | | `-Mobile` | string | — | Mobile phone number | | `-HomePhone` | string | — | Home phone number | | `-Company` | string | — | Company name | | `-JobTitle` | string | — | Job title | | `-Notes` | string | — | Notes/body text | ```powershell # Create a new contact & "./scripts/outlook-contacts-create.ps1" -FullName "John Doe" -Email "[email protected]" -Phone "555-1234" -Company "Acme Inc" -JobTitle "Manager" # Create with mobile and notes & "./scripts/outlook-contacts-create.ps1" -FullName "Jane Smith" -Email "[email protected]" -Mobile "555-5678" -Notes "Met at conference" ``` ## Update Contact ### outlook-contacts-update.ps1 Edit an existing contact's fields. Uses EntryID (preferred) or Index as targeting method. **Required Parameters:** `-EntryID` or `-Index`, plus at least one field to update | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `-EntryID` | string | — | Contact's unique EntryID (preferred, from list/search) | | `-Index` | int | 0 | Contact position number (fallback) | | `-FullName` | string | — | New full name | | `-Email` | string | — | New email address | | `-Phone` | string | — | New business phone | | `-Mobile` | string | — | New mobile phone | | `-Company` | string | — | New company name | | `-JobTitle` | string | — | New job title | | `-Notes` | string | — | New notes/body text | | `-Search` | string | — | Filter contacts before applying Index (narrows list) | ```powershell # Update by EntryID (preferred) & "./scripts/outlook-contacts-update.ps1" -EntryID "00000000..." -Email "[email protected]" # Update by index & "./scripts/outlook-contacts-update.ps1" -Index 1 -Phone "555-9999" -Company "New Corp" # Update with search filter & "./scripts/outlook-contacts-update.ps1" -Index 1 -Search "John" -JobTitle "Director" ``` ## Contact Photo ### outlook-contacts-photo.ps1 Add or remove a contact's photo. Supports JPG, JPEG, PNG, GIF, BMP formats. **Required Parameters:** `-EntryID` or `-Index`, plus `-PhotoPath` or `-Remove` | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `-EntryID` | string | — | Contact's unique EntryID (preferred) | | `-Index` | int | 0 | Contact position number (fallback) | | `-PhotoPath` | string | — | Path to photo file (JPG, PNG, GIF, BMP) | | `-Remove` | switch | false | Remove existing photo instead of adding | | `-Search` | string | — | Filter contacts before applying Index | ```powershell # Add photo by EntryID & "./scripts/outlook-contacts-photo.ps1" -EntryID "00000000..." -PhotoPath "C:\Photos\john.jpg" # Add photo by index & "./scripts/outlook-contacts-photo.ps1" -Index 1 -PhotoPath "C:\Photos\john.jpg" # Remove photo & "./scripts/outlook-contacts-photo.ps1" -EntryID "00000000..." -Remove ``` ## Export Contact ### outlook-contacts-export.ps1 Export a contact as vCard (.vcf) file. Default save location is Downloads folder. **Required Parameters:** `-EntryID` or `-Index` | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `-EntryID` | string | — | Contact's unique EntryID (preferred) | | `-Index` | int | 0 | Contact position number (fallback) | | `-Path` | string | ~/Downloads | Save path (file or directory) | | `-Search` | string | — | Filter contacts before applying Index | ```powershell # Export by EntryID & "./scripts/outlook-contacts-export.ps1" -EntryID "00000000..." # Export to specific path & "./scripts/outlook-contacts-export.ps1" -EntryID "00000000..." -Path "C:\Contacts\john.vcf" # Export by index & "./scripts/outlook-contacts-export.ps1" -Index 1 ``` ## Delete Contact ### outlook-contacts-delete.ps1 Delete a contact from Outlook. Supports targeting by EntryID (preferred), Index, or Name. **Required Parameters:** One of `-EntryID`, `-Index`, or `-Name` | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `-EntryID` | string | — | Contact's unique EntryID (preferred) | | `-Index` | int | 0 | Contact position number (fallback) | | `-Name` | string | — | Exact full name match (fallback) | ```powershell # Delete by EntryID (preferred) & "./scripts/outlook-contacts-delete.ps1" -EntryID "00000000..." # Delete by index & "./scripts/outlook-contacts-delete.ps1" -Index 1 # Delete by name & "./scripts/outlook-contacts-delete.ps1" -Name "John Doe" ```
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.