Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
microsoft avatar

Add Office365

  • 150 installs
  • 572 repo stars
  • Updated July 28, 2026
  • microsoft/power-platform-skills

Power Apps skill adding Office 365 Outlook connector for calendar email and inbox.

About

Power Platform skill for adding Office 365 Outlook connector to Power Apps code apps. Workflow covers memory bank check, planning required Outlook operations, connection ID discovery, dataset and table enumeration, add-data-source CLI commands, and Office365OutlookService TypeScript patterns for calendar reads, email send, and inbox access. Follows the same connector pattern as SharePoint and Dataverse skills with build verification and memory bank update on completion.

  • Office 365 Outlook connector for Power Apps code apps
  • Calendar reads email send and inbox access patterns
  • power-apps CLI for connection dataset and table discovery
  • Office365OutlookService generated TypeScript service calls
  • Memory bank and build verification workflow

Add Office365 by the numbers

  • 150 all-time installs (skills.sh)
  • Ranked #285 of 690 Office & Documents skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

add-office365 capabilities & compatibility

Capabilities
add outlook connector · configure calendar access · send outlook email
Works with
outlook · azure
Use cases
api development · email
From the docs

What add-office365 says it does

Adds Office 365 Outlook connector to a Power Apps code app.
SKILL.md
npx skills add https://github.com/microsoft/power-platform-skills --skill add-office365

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs150
repo stars572
Security audit3 / 3 scanners passed
Last updatedJuly 28, 2026
Repositorymicrosoft/power-platform-skills

How do I connect Outlook calendar and email to my Power Apps code app?

Add Office 365 Outlook connector to a Power Apps code app for calendar, email, and inbox event management.

Who is it for?

Developers building Power Apps code apps with Outlook calendar or email features.

Skip if: SharePoint or Dataverse-only connector workflows.

When should I use this skill?

User needs Outlook calendar, email send, inbox read, or Office 365 connector in code app.

What you get

Outlook connector configured with service calls for calendar, email, and inbox operations.

Files

SKILL.mdMarkdownGitHub ↗

📋 Shared Instructions: [shared-instructions.md](${PLUGIN_ROOT}/shared/shared-instructions.md) - Cross-cutting concerns.

Add Office 365 Outlook

Workflow

1. Check Memory Bank -> 2. Add Connector -> 3. Review Generated Service -> 4. Configure -> 5. Build -> 6. Update Memory Bank

---

Step 1: Check Memory Bank

Check for memory-bank.md per shared-instructions.md.

Step 2: Add Connector

First, find the connection ID (see connector-reference.md):

Run the /list-connections skill. Find the Office 365 Outlook connection in the output (API name contains office365). If none exists, direct the user to create one using the environment-specific Connections URL — construct it from the active environment ID in context (from power.config.json or a prior step): https://make.powerapps.com/environments/<environment-id>/connections+ New connection → search for the connector → Create.

npx power-apps add-data-source -a office365 -c <connection-id>

Step 3: Review Generated Service

The generated service file (src/generated/services/Office365OutlookService.ts) is large. Use `Grep` to find specific methods instead of reading the entire file:

Grep pattern="async \w+" path="src/generated/services/Office365OutlookService.ts"

Key methods (sorted by common usage):

Calendar Operations
MethodPurposeKey Parameters
GetEventsCalendarViewV2Get events in a date rangecalendarId, startDateTimeOffset, endDateTimeOffset
V3CalendarPostItemCreate a calendar eventtable (calendar ID), item (CalendarEventHtmlClient)
CalendarDeleteItemDelete an eventtable (calendar ID), id (event ID)
CalendarPatchItemUpdate an eventtable, id, item
V2CalendarGetTablesList available calendars(none)
Email Operations
MethodPurposeKey Parameters
SendEmailV2Send an emailemailMessage (body, to, subject, etc.)
GetEmailsGet inbox emailsfolderPath, fetchOnlyUnread, top
GetEmailGet single emailmessageId
MarkAsReadMark email as readmessageId
ReplyToV3Reply to an emailmessageId, body
Flag / UnflagFlag/unflag emailmessageId
Contact Operations
MethodPurpose
GetContactFoldersList contact folders
ContactGetTablesList contact tables

Step 4: Configure

Ask the user what Office 365 Outlook operations they need (skip if already specified by caller).

Calendar -- Get events for a date range:

import { Office365OutlookService } from "../generated/services/Office365OutlookService";

const result = await Office365OutlookService.GetEventsCalendarViewV2(
  "Calendar", // calendarId -- "Calendar" for default
  startDate.toISOString(),
  endDate.toISOString()
);
const events = result.data?.value || [];

Calendar -- Create an event:

await Office365OutlookService.V3CalendarPostItem("Calendar", {
  Subject: "Focus Time",
  Start: "2025-06-15T10:00:00", // ISO 8601 format
  End: "2025-06-15T11:00:00",
  ShowAs: "Busy",
  Importance: "Normal",
  IsAllDay: false,
  Body: "<p>Blocked for focus work</p>",
  Reminder: 5
});

Calendar -- Delete an event:

await Office365OutlookService.CalendarDeleteItem("Calendar", eventId);

Email -- Send an email:

await Office365OutlookService.SendEmailV2({
  To: "<recipient-address>",
  Subject: "Subject line",
  Body: "<p>HTML email body</p>",
  Importance: "Normal"
});

Key types:

TypePurpose
CalendarEventClientReceiveStringEnumsRead model -- has Subject, Start, End, Id, ShowAs, IsAllDay, Organizer
CalendarEventHtmlClientWrite model -- requires Subject, Start, End; optional Body, ShowAs, Importance, Reminder
EntityListResponse_CalendarEventClientReceiveStringEnumsResponse wrapper -- access events via .value

Response pattern:

const result = await Office365OutlookService.GetEventsCalendarViewV2(...);
if (result.success) {
  const events = result.data?.value || [];
} else {
  console.error("Failed:", result.error);
}

Step 5: Build

npm run build

Fix TypeScript errors before proceeding. Do NOT deploy yet.

Step 6: Update Memory Bank

Update memory-bank.md with: connector added, configured operations, build status.

Related skills

FAQ

What Outlook operations are supported?

Calendar access, sending emails, reading inbox, and managing Outlook events.

How is the connector added?

Discover connection ID, enumerate datasets, then power-apps add-data-source CLI.

What service class is used?

Office365OutlookService generated TypeScript patterns in the code app.

Is Add Office365 safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.