> ## 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 Calendar

> Automate Outlook Calendar tasks

## Overview

The Outlook Calendar tools allow you to automate Outlook Calendar tasks such as finding events, checking attendee and room availability, suggesting meeting times, listing rooms, creating events, updating events, and deleting events using Microsoft Graph API.

## Key Features

* `OUTLOOK_CALENDAR_FIND_EVENT`
  * Find events in Outlook Calendar within a given time range or by search query.
* `OUTLOOK_CALENDAR_GET_SCHEDULE`
  * Get free/busy availability for users, distribution lists, rooms, or equipment.
* `OUTLOOK_CALENDAR_FIND_MEETING_TIMES`
  * Suggest candidate meeting times and locations from attendee and room availability.
* `OUTLOOK_CALENDAR_FIND_ROOMS`
  * List Outlook room resources, optionally within a room list.
* `OUTLOOK_CALENDAR_GET_ROOM_SCHEDULE`
  * Get free/busy availability for room resources.
* `OUTLOOK_CALENDAR_CREATE_EVENT`
  * Create a new event, including attendees, room resources, locations, and recurrence.
* `OUTLOOK_CALENDAR_UPDATE_EVENT`
  * Update an existing event with new details.
* `OUTLOOK_CALENDAR_DELETE_EVENT`
  * Delete an event from Outlook Calendar.

## Authentication

To use the Outlook Calendar API, you need to navigate to the [Jinba secrets dashboard](https://flow.jinba.io/workspace/secrets) and authenticate with your Microsoft account. This will create a new OAuth token for you.

Meeting scheduling and room tools require the latest Outlook Calendar OAuth scopes. If your credential was created before these tools were added, reconnect the Outlook Calendar credential from the secrets dashboard.

**Note**: Treat API keys as sensitive information and never commit them to public repositories.

For further details, [click here](/en/pages/credentials/microsoft-oauth).

### Example: Create, Update, Find, and Delete Events

```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: Test Event

- 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: Test Event
    - name: description
      value: This is a test event
    - 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: Test Event (Updated)
    - name: description
      value: This event has been updated
    - 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: "Test Event (Updated)"

- 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}}"
```

## Tool Details

### OUTLOOK\_CALENDAR\_FIND\_EVENT

Searches for events in Outlook Calendar within a specified date range or by search query.

**Input Parameters:**

* `query` - Search query (partial match on event subject)
* `timezone` - Timezone for naive datetimes (required, e.g., "Z", "UTC", "+09:00")
* `time_min` - Start time in RFC3339 format
* `time_max` - End time in RFC3339 format
* `top` - Maximum number of events to return (1-50, default: 10)

**Output:**

* `events` - Array of matching events with id, subject, start, end, organizer, location, and webLink

### OUTLOOK\_CALENDAR\_GET\_SCHEDULE

Gets free/busy availability for users, distribution lists, rooms, or equipment.

**Input Parameters:**

* `schedules` - Email addresses to check (required; array, comma-separated, or JSON array string)
* `timezone` - Timezone for naive datetimes (required, e.g., "Z", "UTC", "+09:00")
* `start` - Availability window start time (required)
* `end` - Availability window end time (required)
* `availability_view_interval` - Slot size in minutes (5-1440, default: 30)

**Output:**

* `schedules` - Free/busy results with availability view and schedule items

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

Suggests candidate meeting times and locations from attendee and room availability.

**Input Parameters:**

* `attendees` - Required attendee email addresses (optional)
* `room_emails` - Room resource email addresses (optional)
* `location_names` - Location display names (optional)
* `timezone` - Timezone for naive datetimes (required, e.g., "Z", "UTC", "+09:00")
* `time_min` - Earliest candidate start time (required)
* `time_max` - Latest candidate end time (required)
* `meeting_duration_minutes` - Meeting duration in minutes (default: 30)
* `max_candidates` - Maximum suggestions to return (default: 10)
* `minimum_attendee_percentage` - Minimum confidence percentage (optional)
* `activity_domain` - `work`, `personal`, or `unrestricted` (default: `work`)
* `suggest_location` - Whether Graph should suggest locations (default: false)

**Output:**

* `suggestions` - Candidate meeting times with confidence, reason, locations, and attendee availability
* `emptySuggestionsReason` - Reason no suggestions were returned, if applicable

### OUTLOOK\_CALENDAR\_FIND\_ROOMS

Lists Outlook room resources using Microsoft Graph Places API.

**Input Parameters:**

* `room_list_email` - Room list email address to narrow the search (optional)
* `query` - Case-insensitive local filter for name, email, building, or floor (optional)
* `top` - Maximum rooms to return (1-500, default: 100)

**Output:**

* `rooms` - Matching room resources with display name, email, capacity, building, and device metadata

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

Gets free/busy availability for room resources.

**Input Parameters:**

* `room_emails` - Room resource email addresses (required; array, comma-separated, or JSON array string)
* `timezone` - Timezone for naive datetimes (required, e.g., "Z", "UTC", "+09:00")
* `start` - Availability window start time (required)
* `end` - Availability window end time (required)
* `availability_view_interval` - Slot size in minutes (5-1440, default: 30)

**Output:**

* `schedules` - Free/busy results for the requested rooms

### OUTLOOK\_CALENDAR\_CREATE\_EVENT

Creates a new event in Outlook Calendar.

**Input Parameters:**

* `summary` - Event title (required)
* `description` - Event description (optional)
* `timezone` - Timezone for naive datetimes (required, e.g., "Z", "UTC", "+09:00")
* `start` - Event start time in RFC3339 format (required)
* `end` - Event end time in RFC3339 format (required)
* `attendees` - Required attendee email addresses (optional)
* `optional_attendees` - Optional attendee email addresses (optional)
* `resource_attendees` - Resource attendee email addresses such as equipment (optional)
* `room_emails` - Room resource email addresses to reserve (optional)
* `location` - Meeting location display name (optional)
* `recurrence` - Microsoft Graph patternedRecurrence object or JSON string (optional)
* `response_requested` - Whether responses are requested from attendees (default: true)
* `allow_new_time_proposals` - Whether attendees can propose a new time (default: true)
* `content_type` - Description content type: "HTML" or "Text" (default: "HTML")

**Output:**

* `event` - Created event with id and webLink

### OUTLOOK\_CALENDAR\_UPDATE\_EVENT

Updates an existing event in Outlook Calendar.

**Input Parameters:**

* `event_id` - Event ID to update (required)
* `summary` - New event title (optional)
* `description` - New event description (optional)
* `timezone` - Timezone for naive datetimes (required, e.g., "Z", "UTC", "+09:00")
* `start` - New event start time in RFC3339 format (optional, requires end)
* `end` - New event end time in RFC3339 format (optional, requires start)
* `attendees` - New attendee list (optional, replaces existing)
* `content_type` - Description content type: "HTML" or "Text"

**Output:**

* `event` - Updated event with id and webLink

### OUTLOOK\_CALENDAR\_DELETE\_EVENT

Deletes an event from Outlook Calendar.

**Input Parameters:**

* `event_id` - Event ID to delete (required)

**Output:**

* `status` - HTTP status code of the deletion request
