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

# Outlook Calendar

> Permissions and data usage for the Microsoft Outlook calendar integration.

export const RelatedPages = ({pages = []}) => {
  if (pages.length === 0) return null;
  return <>
      <br />
      <strong>Related articles</strong>
      <CardGroup cols={2}>
        {pages.map(page => <Card title={page.title} href={page.href} key={page.href} />)}
      </CardGroup>
    </>;
};

<Info>
  Powers room booking for Juno events and calendar invites through Microsoft 365.
</Info>

## Why Juno integrates with Outlook

* **Room booking** — admins can attach meeting rooms from your Microsoft 365 room directory to Juno events, and Juno checks room availability before booking.
* **Calendar invites** — Juno keeps calendar events for sessions in sync so learners receive standard Outlook invites.

## Permissions we request

All permissions are Microsoft Graph scopes on Juno's Entra ID (Azure AD) app registration.

### Admin consent (one-time, by a Microsoft Entra admin)

| Permission       | Why we need it                                                                  | Data accessed                                |
| ---------------- | ------------------------------------------------------------------------------- | -------------------------------------------- |
| `Place.Read.All` | List the meeting rooms in your organization so admins can attach them to events | Room names, room mailbox addresses, capacity |
| `Calendars.Read` | Check whether a room is free before booking it                                  | Free/busy windows of room calendars          |
| `offline_access` | Keep the connection active without re-consenting                                | Refresh token only                           |

<Card title="Entra ID: providing admin consent" icon="book-open" href="https://scribehow.com/o/3wwL9U2ERcesVa8O7YPqJg/viewer/Entra_ID_Providing_Admin_Consent_for_Juno_Journeys_Video_Conference_Teams_and_Outlook_Integrations__tEenPQvPTa-7dvMgIEPRzg">
  Step-by-step walkthrough for granting admin consent to the Teams and Outlook integrations in Microsoft Entra ID.
</Card>

### Per-user calendar connection (delegated, each user consents)

Users who sync their own calendar with Juno grant these delegated scopes for their own mailbox only:

| Permission            | Why we need it                                             | Data accessed                                   |
| --------------------- | ---------------------------------------------------------- | ----------------------------------------------- |
| `User.Read`           | Identify the connected account                             | Display name and email of the signed-in user    |
| `Calendars.Read`      | Show the user's availability inside Juno                   | The user's own calendar free/busy and events    |
| `Calendars.ReadWrite` | Add and update Juno session invites on the user's calendar | Events Juno creates or updates on that calendar |
| `offline_access`      | Keep the connection active without re-consenting           | Refresh token only                              |

## What we do with the data

* Room directory entries are cached so admins can pick rooms inside Juno.
* Room free/busy responses are used at booking time and are not retained.
* Session invites created by Juno (attendee emails, times, responses) are stored to keep events and attendance in sync.
* Juno does not read email, contacts, files, or the content of events it did not create.

## Security and storage

OAuth tokens are encrypted at rest and used only server-side. Delegated tokens are scoped to the individual mailbox that granted them.

## Revoking access

* In the Microsoft Entra admin center, revoke the enterprise application's permissions or delete it from your tenant.
* Individual users can remove the app under their Microsoft account's app permissions.
* In Juno, disconnect the calendar integration from the admin integration settings.

<RelatedPages
  pages={[
{ href: "/integrations/calendar-integrations", title: "Calendar integrations setup guide" },
{ href: "/integrations-toolkit/microsoft-teams-meetings", title: "Microsoft Teams meetings permissions" }
]}
/>
