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

# Outlook Calendar Webhook Setup Guide

> Configure Outlook Calendar to deliver events to StackOne.

## Prerequisites

The connector should already be set up, with a Connector Profile and a Linked Account. See [Getting Started](/connectors/outlookcalendar#getting-started) on the Outlook Calendar connector page.

<section data-guide-section data-guide-scopes="">
  <h2>How StackOne sets up Outlook Calendar webhooks</h2>

  <p>Nothing needs configuring in Outlook or Azure. When you connect an account with events enabled, StackOne creates a Microsoft Graph change-notification subscription automatically and deletes it again when the connection is removed. A single subscription carries every event you enable.</p>

  <Steps>
    <Step title="Check the calendar permission is granted">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>A calendar subscription needs <strong>Calendars.Read</strong>, the same permission the connector already uses to read calendars and events. No webhook-specific permission has to be added, and a connection granted <strong>Calendars.ReadWrite</strong> already satisfies it.</p>

        <ul>
          <li>If the connection can list calendar events today, it can receive calendar webhooks.</li>
        </ul>
      </div>
    </Step>

    <Step title="Check which calendar is covered">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>The subscription is created against the mailbox of the user who authorized the connection, so it reports changes to that user's calendars only. To follow another user's calendar, connect an account authorized by that user.</p>
      </div>
    </Step>

    <Step title="Connect the account again when the subscription expires">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Microsoft Graph expires calendar subscriptions after at most seven days, and StackOne does not renew them. Delivery stops silently when the subscription lapses — no error is raised, events simply stop arriving.</p>

        <ul>
          <li>Reconnect the account to create a fresh subscription and resume delivery.</li>
          <li>Reconnecting also removes the previous subscription, so no duplicates are left behind.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Available webhook events</h2>

  <p>Outlook Calendar emits three event types, covering the lifecycle of a calendar event. Only events selected in StackOne are dispatched to your application.</p>

  <Steps>
    <Step title="Enable calendar event events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events covering calendar events in the connected user's mailbox. A meeting invitation that lands on the calendar raises the same events as an event the user creates.</p>

        <ul>
          <li><strong>Event Created</strong> (`event_created`) — Fired when a calendar event is created.</li>
          <li><strong>Event Updated</strong> (`event_updated`) — Fired when a calendar event changes, including a change to its time, its subject, or an attendee's response.</li>
          <li><strong>Event Deleted</strong> (`event_deleted`) — Fired when a calendar event is deleted. Cancelling a meeting the user organizes removes it from the calendar and raises this event too.</li>
        </ul>
      </div>
    </Step>

    <Step title="Retrieve the event to see what changed">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>A notification identifies what changed rather than carrying it. Each one holds the id of the calendar event, so read the full record with <strong>Get My Calendar Event</strong> using that id when you need the event's contents.</p>
      </div>
    </Step>

    <Step title="Review how often notifications arrive">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Microsoft Graph delivers at least once, and a single edit can raise several <strong>Event Updated</strong> notifications as Exchange revises the record. Deleting an event also raises an update before the deletion, because the event is first moved to Deleted Items.</p>

        <ul>
          <li>Treat each notification as a signal to re-read the event rather than as a change log.</li>
          <li>Make processing idempotent on the event id so a repeated notification is harmless.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

## Verify

Your Connector should now be able to receive and process events. Try triggering an event and you should see an Event appear in the Connector logs.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.