mcpField
A
add-office365

add-office365

github.com/microsoft生産性1.1k290 回インストール今日更新
リポジトリ

add-office365 について

Power Apps プロジェクトに Office 365 Outlook のデータソースを追加し、操作を設定して TypeScript のビルドを確認するスキルです。生成されたサービスの予定表、メール、連絡先のメソッドを扱います。

主な機能

  1. 01既存の Outlook 接続を確認
  2. 02Office 365 Outlook コネクタを追加
  3. 03予定表とメールの操作に対応
  4. 04生成サービスのメソッドを確認
  5. 05ビルドしてプロジェクト状況を記録

活用シーン

  1. 01予定表イベントの取得や編集を追加
  2. 02メール送信や返信を実装
  3. 03ビルド前に Outlook サービスのメソッドを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/microsoft/power-platform-skills --skill add-office365

インストール後、Claude Code で/add-office365を入力して読み込まれたか確認します。

詳細

📋 共通の指示:shared-instructions.md - 複数の機能に関わる事項です。

Office 365 Outlook を追加する

ワークフロー

  1. メモリーバンクを確認 -> 2. コネクタを追加 -> 3. 生成されたサービスを確認 -> 4. 設定 -> 5. ビルド -> 6. メモリーバンクを更新

ステップ 1:メモリーバンクを確認する

memory-bank.md の指示に従って、memory-bank.md を確認します。

ステップ 2:コネクタを追加する

まず、接続 ID を確認します(connector-reference.md を参照):

/list-connections スキルを実行します。出力から Office 365 Outlook の接続を探します(API 名に office365 が含まれています)。該当する接続がない場合は、環境固有の接続 URL を使って作成するようユーザーに案内します。現在の環境 ID(power.config.json または前の手順から取得)をもとに URL を組み立てます:https://make.powerapps.com/environments/<environment-id>/connections → + 新しい接続 → コネクタを検索 → 作成。

pa app add data-source --connector office365 -c <connection-id>
ステップ 3:生成されたサービスを確認する

生成されたサービスファイル(src/generated/services/Office365OutlookService.ts)は大きいため、ファイル全体を読むのではなく、Grep を使って特定のメソッドを検索します:

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

主なメソッド(一般的な使用頻度順):

カレンダー操作
メソッド目的主なパラメーター
GetEventsCalendarViewV2日付範囲内のイベントを取得calendarId、startDateTimeOffset、endDateTimeOffset
V3CalendarPostItemカレンダーイベントを作成table(カレンダー ID)、item(CalendarEventHtmlClient)
CalendarDeleteItemイベントを削除table(カレンダー ID)、id(イベント ID)
CalendarPatchItemイベントを更新table、id、item
V2CalendarGetTables利用可能なカレンダーを一覧表示(なし)
メール操作
メソッド目的主なパラメーター
SendEmailV2メールを送信emailMessage(本文、宛先、件名など)
GetEmails受信トレイのメールを取得folderPath、fetchOnlyUnread、top
GetEmail個別のメールを取得messageId
MarkAsReadメールを既読にするmessageId
ReplyToV3メールに返信messageId、body
Flag / Unflagメールにフラグを付ける/外すmessageId
連絡先操作
メソッド目的
GetContactFolders連絡先フォルダーを一覧表示
ContactGetTables連絡先テーブルを一覧表示
ステップ 4:設定

必要な Office 365 Outlook の操作をユーザーに尋ねます(呼び出し元によってすでに指定されている場合は省略してください)。

カレンダー -- 指定した期間のイベントを取得:

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 || [];

カレンダー -- イベントを作成:

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
});

カレンダー -- イベントを削除:

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

メール -- メールを送信:

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

主要な型:

型用途
CalendarEventClientReceiveStringEnums読み取りモデル -- Subject、Start、End、Id、ShowAs、IsAllDay、Organizer を持ちます
CalendarEventHtmlClient書き込みモデル -- Subject、Start、End が必須です。Body、ShowAs、Importance、Reminder は省略可能です
EntityListResponse_CalendarEventClientReceiveStringEnumsレスポンスラッパー -- .value を介してイベントにアクセスします

レスポンスのパターン:

const result = await Office365OutlookService.GetEventsCalendarViewV2(...);
if (result.success) {
  const events = result.data?.value || [];
} else {
  console.error("Failed:", result.error);
}
ステップ 5:ビルド
npm run build

続行する前に、TypeScript のエラーを修正してください。まだデプロイしないでください。

ステップ 6:メモリーバンクを更新

memory-bank.md を更新し、追加したコネクター、設定した操作、ビルドのステータスを記録してください。

コメント