> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jinba.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Outlook カレンダー

> Outlook カレンダーのタスクを自動化する

## 概要

Outlook カレンダー ツールを使用すると、イベント検索、参加者と会議室の空き確認、会議候補時間の提案、会議室一覧取得、イベントの作成、更新、削除などを Microsoft Graph API を使って自動化できます。

## 主な機能

* `OUTLOOK_CALENDAR_FIND_EVENT`
  * 指定した期間内でイベントを検索、または検索クエリでイベントを検索
* `OUTLOOK_CALENDAR_GET_SCHEDULE`
  * ユーザー、配布リスト、会議室、備品の空き時間を取得
* `OUTLOOK_CALENDAR_FIND_MEETING_TIMES`
  * 参加者と会議室の空き状況から会議候補時間と場所を提案
* `OUTLOOK_CALENDAR_FIND_ROOMS`
  * Outlook の会議室リソースを一覧取得
* `OUTLOOK_CALENDAR_GET_ROOM_SCHEDULE`
  * 会議室リソースの空き時間を取得
* `OUTLOOK_CALENDAR_CREATE_EVENT`
  * 参加者、会議室リソース、場所、繰り返しを含むイベントを作成
* `OUTLOOK_CALENDAR_UPDATE_EVENT`
  * 既存のイベントを新しい詳細情報で更新
* `OUTLOOK_CALENDAR_DELETE_EVENT`
  * Outlook カレンダーからイベントを削除

## 認証

Outlook カレンダー API を使用するには、[Jinba シークレットダッシュボード](https://flow.jinba.io/workspace/secrets) にアクセスし、Microsoft アカウントで認証してください。これにより、新しい OAuth トークンが生成されます。

会議スケジューリングと会議室ツールには最新の Outlook Calendar OAuth スコープが必要です。これらのツール追加前に作成した認証情報を使う場合は、シークレットダッシュボードから Outlook Calendar の認証を再接続してください。

**注意**：API キーは機密情報として扱い、公開リポジトリにコミットしないでください。

詳細については、[こちら](/ja/pages/credentials/microsoft-oauth)をクリックしてください。

### 例：イベントの作成、更新、検索、削除

```yaml theme={null}
- id: find_before
  tool: OUTLOOK_CALENDAR_FIND_EVENT
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_OUTLOOK_CALENDAR}}"
  input:
    - name: timezone
      value: "+09:00"
    - name: time_min
      value: 2025-01-01T00:00:00Z
    - name: time_max
      value: 2025-01-31T23:59:59Z
    - name: query
      value: テストイベント

- id: find_rooms
  tool: OUTLOOK_CALENDAR_FIND_ROOMS
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_OUTLOOK_CALENDAR}}"
  input:
    - name: query
      value: Tokyo
    - name: top
      value: 20

- id: get_schedule
  tool: OUTLOOK_CALENDAR_GET_SCHEDULE
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_OUTLOOK_CALENDAR}}"
  input:
    - name: schedules
      value: "user1@example.com, room1@example.com"
    - name: timezone
      value: "+09:00"
    - name: start
      value: 2025-01-15T09:00:00
    - name: end
      value: 2025-01-15T18:00:00

- id: find_meeting_times
  tool: OUTLOOK_CALENDAR_FIND_MEETING_TIMES
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_OUTLOOK_CALENDAR}}"
  input:
    - name: attendees
      value: "user1@example.com, user2@example.com"
    - name: room_emails
      value: "room1@example.com"
    - name: timezone
      value: "+09:00"
    - name: time_min
      value: 2025-01-15T09:00:00
    - name: time_max
      value: 2025-01-15T18:00:00
    - name: meeting_duration_minutes
      value: 60

- id: create_event
  tool: OUTLOOK_CALENDAR_CREATE_EVENT
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_OUTLOOK_CALENDAR}}"
  input:
    - name: summary
      value: テストイベント
    - name: description
      value: これはテストイベントです
    - name: timezone
      value: "+09:00"
    - name: start
      value: 2025-01-15T14:00:00
    - name: end
      value: 2025-01-15T15:00:00
    - name: attendees
      value: "user1@example.com, user2@example.com"
    - name: room_emails
      value: "room1@example.com"
    - name: location
      value: Room 1
    - name: content_type
      value: HTML

- id: update_event
  tool: OUTLOOK_CALENDAR_UPDATE_EVENT
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_OUTLOOK_CALENDAR}}"
  input:
    - name: event_id
      value: "{{steps.create_event.result.event.id}}"
    - name: summary
      value: テストイベント（更新済み）
    - name: description
      value: このイベントは更新されました
    - name: timezone
      value: "+09:00"
    - name: start
      value: 2025-01-15T15:00:00
    - name: end
      value: 2025-01-15T16:00:00
    - name: content_type
      value: HTML

- id: find_after_update
  tool: OUTLOOK_CALENDAR_FIND_EVENT
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_OUTLOOK_CALENDAR}}"
  input:
    - name: timezone
      value: "+09:00"
    - name: time_min
      value: 2025-01-01T00:00:00Z
    - name: time_max
      value: 2025-01-31T23:59:59Z
    - name: query
      value: "テストイベント（更新済み）"

- id: delete_event
  tool: OUTLOOK_CALENDAR_DELETE_EVENT
  config:
    - name: token
      value: "{{secrets.MICROSOFT_GRAPH_OUTLOOK_CALENDAR}}"
  input:
    - name: event_id
      value: "{{steps.create_event.result.event.id}}"
```

## ツール詳細

### OUTLOOK\_CALENDAR\_FIND\_EVENT

指定した期間内または検索クエリで Outlook カレンダーのイベントを検索します。

**入力パラメータ:**

* `query` - 検索クエリ（イベントタイトルの部分一致）
* `timezone` - タイムゾーン（必須、例: "Z", "UTC", "+09:00"）
* `time_min` - 開始時刻（RFC3339 形式）
* `time_max` - 終了時刻（RFC3339 形式）
* `top` - 返すイベントの最大数（1-50、デフォルト: 10）

**出力:**

* `events` - マッチしたイベントの配列（id、subject、start、end、organizer、location、webLink を含む）

### OUTLOOK\_CALENDAR\_GET\_SCHEDULE

ユーザー、配布リスト、会議室、備品の空き時間を取得します。

**入力パラメータ:**

* `schedules` - 空き時間を確認するメールアドレス（必須、配列・カンマ区切り・JSON 配列文字列に対応）
* `timezone` - タイムゾーン（必須、例: "Z", "UTC", "+09:00"）
* `start` - 空き時間確認の開始時刻（必須）
* `end` - 空き時間確認の終了時刻（必須）
* `availability_view_interval` - 空き状況スロットの分数（5-1440、デフォルト: 30）

**出力:**

* `schedules` - availability view と schedule items を含む空き時間結果

### OUTLOOK\_CALENDAR\_FIND\_MEETING\_TIMES

参加者と会議室の空き状況から会議候補時間と場所を提案します。

**入力パラメータ:**

* `attendees` - 必須参加者のメールアドレス（オプション）
* `room_emails` - 会議室リソースのメールアドレス（オプション）
* `location_names` - 場所の表示名（オプション）
* `timezone` - タイムゾーン（必須、例: "Z", "UTC", "+09:00"）
* `time_min` - 候補開始時刻の下限（必須）
* `time_max` - 候補終了時刻の上限（必須）
* `meeting_duration_minutes` - 会議時間（分、デフォルト: 30）
* `max_candidates` - 返す候補数（デフォルト: 10）
* `minimum_attendee_percentage` - 最低 confidence パーセンテージ（オプション）
* `activity_domain` - `work`, `personal`, `unrestricted`（デフォルト: `work`）
* `suggest_location` - Graph に場所を提案させるかどうか（デフォルト: false）

**出力:**

* `suggestions` - confidence、理由、場所、参加者空き状況を含む会議候補
* `emptySuggestionsReason` - 候補が返らなかった理由（該当時）

### OUTLOOK\_CALENDAR\_FIND\_ROOMS

Microsoft Graph Places API を使って Outlook の会議室リソースを一覧取得します。

**入力パラメータ:**

* `room_list_email` - 検索対象を絞るルームリストのメールアドレス（オプション）
* `query` - 名前、メールアドレス、建物、階の大文字小文字を区別しないローカルフィルタ（オプション）
* `top` - 返す会議室の最大数（1-500、デフォルト: 100）

**出力:**

* `rooms` - 表示名、メールアドレス、収容人数、建物、デバイス情報を含む会議室リソース

### OUTLOOK\_CALENDAR\_GET\_ROOM\_SCHEDULE

会議室リソースの空き時間を取得します。

**入力パラメータ:**

* `room_emails` - 会議室リソースのメールアドレス（必須、配列・カンマ区切り・JSON 配列文字列に対応）
* `timezone` - タイムゾーン（必須、例: "Z", "UTC", "+09:00"）
* `start` - 空き時間確認の開始時刻（必須）
* `end` - 空き時間確認の終了時刻（必須）
* `availability_view_interval` - 空き状況スロットの分数（5-1440、デフォルト: 30）

**出力:**

* `schedules` - 指定した会議室の空き時間結果

### OUTLOOK\_CALENDAR\_CREATE\_EVENT

Outlook カレンダーに新しいイベントを作成します。

**入力パラメータ:**

* `summary` - イベントタイトル（必須）
* `description` - イベント説明（オプション）
* `timezone` - タイムゾーン（必須、例: "Z", "UTC", "+09:00"）
* `start` - イベント開始時刻（RFC3339 形式、必須）
* `end` - イベント終了時刻（RFC3339 形式、必須）
* `attendees` - 必須参加者のメールアドレス（オプション）
* `optional_attendees` - 任意参加者のメールアドレス（オプション）
* `resource_attendees` - 備品などのリソース参加者メールアドレス（オプション）
* `room_emails` - 予約する会議室リソースのメールアドレス（オプション）
* `location` - 会議場所の表示名（オプション）
* `recurrence` - Microsoft Graph patternedRecurrence オブジェクトまたは JSON 文字列（オプション）
* `response_requested` - 参加者に返信を求めるかどうか（デフォルト: true）
* `allow_new_time_proposals` - 参加者による新しい時間の提案を許可するか（デフォルト: true）
* `content_type` - 説明のコンテンツタイプ: "HTML" または "Text"（デフォルト: "HTML"）

**出力:**

* `event` - 作成されたイベント（id と webLink を含む）

### OUTLOOK\_CALENDAR\_UPDATE\_EVENT

Outlook カレンダーの既存イベントを更新します。

**入力パラメータ:**

* `event_id` - 更新するイベント ID（必須）
* `summary` - 新しいイベントタイトル（オプション）
* `description` - 新しいイベント説明（オプション）
* `timezone` - タイムゾーン（必須、例: "Z", "UTC", "+09:00"）
* `start` - 新しいイベント開始時刻（RFC3339 形式、オプション、end が必要）
* `end` - 新しいイベント終了時刻（RFC3339 形式、オプション、start が必要）
* `attendees` - 新しい参加者リスト（オプション、既存の参加者を置き換える）
* `content_type` - 説明のコンテンツタイプ: "HTML" または "Text"

**出力:**

* `event` - 更新されたイベント（id と webLink を含む）

### OUTLOOK\_CALENDAR\_DELETE\_EVENT

Outlook カレンダーからイベントを削除します。

**入力パラメータ:**

* `event_id` - 削除するイベント ID（必須）

**出力:**

* `status` - 削除リクエストの HTTP ステータスコード
