Orangescrum
Documentation index for AI agents (llms.txt). A markdown version of this page is available at /self-hosted/plugins/outlook-integration.md or by requesting this URL with the header Accept: text/markdown.

Outlook Integration

by Orangescrum · Productivity

Self-HostedVerifiedMicrosoft 365

Connect Microsoft 365 to your Orangescrum install. Each person links their own Microsoft account, then maps a project to an Outlook calendar and chooses which way the sync runs. Inbox rules turn matching mail into tasks in the right project, and an Outlook add-in puts a task pane inside Outlook so a mail becomes a task without leaving the message. Push notifications from Microsoft keep both sides current.

Installs
Available

Active deployments

Support
Vendor Supported

Priority response

Trust
Self-Hosted

Your infra, your data

Screenshots

Calendar mappings with sync direction per project
Email rules matching sender, subject, and attachments
The Outlook task pane creating a task from a message

Key Features

Per-Person Account Linking

Each person authorises their own Microsoft account through the standard consent screen. Nobody hands a password to Orangescrum and nobody's mailbox is read on their behalf without them connecting it.

Two-Way Calendar Sync

Tasks and milestones become Outlook calendar events, and changes made in Outlook come back. Sync direction is set per mapping, so you can keep it one way where two ways would be noise.

Calendar Mappings

Map a project to a calendar, choose the direction, and decide whether it syncs automatically. Different projects can behave differently for the same person.

Email to Task Rules

Match on sender address, sender domain, subject start, subject contents, body contents, or the presence of an attachment, then create the task in the project you chose with the type and priority you set.

Ordered Rules

Rules carry an order and an active flag, so the specific rule wins over the general one, and a rule can be switched off for a week without being deleted and rebuilt.

Outlook Add-in

A task pane inside Outlook on the web, desktop, and mobile. Read a mail, create the task from it, and stay in the message rather than switching windows to retype the subject.

Push Notifications

Microsoft Graph subscriptions push changes as they happen instead of waiting for a poll, so a meeting moved in Outlook shows up promptly on the other side.

Automatic Subscription Renewal

Graph subscriptions expire within a few days. A console command renews anything close to expiry, marks subscriptions Microsoft has already dropped, and recreates them where the connection is still good.

Sync Logs

Every sync run records the direction, how many events moved each way, how many errors there were, and the detail behind them, so a missing meeting is something you can look up.

Your Azure App, Your Tenant

The connection uses an application registration in your own Microsoft tenant with delegated permissions you review and consent to. There is no shared middleman application in the path.

Admin Settings Kept Separate

The client identifier, secret, and tenant identifier are set once by an administrator. Everyone else gets connecting, mapping, and rules, and cannot see or change the tenant credentials.

Permissions and Role Defaults

Five keys covering viewing, connecting an account, managing calendar mappings, managing email rules, and administering the settings, with sensible defaults per role and inheritance for custom roles.

About this plugin

Why Outlook Integration for Orangescrum?

For a lot of organisations Outlook is where the day actually happens. Work arrives as email, commitments live in the calendar, and a project tool that ignores both becomes a place people update twice a week if you are lucky. This add-on wires the two together so the calendar shows the deadlines and the inbox stops being an untracked backlog.

Calendar sync you can point in one direction

Each mapping ties a project to a calendar and carries its own direction: push only, pull only, or both. That matters more than it sounds. Pushing deadlines out to a personal calendar is nearly always wanted; pulling every meeting back into a project is nearly always not. Setting it per mapping means you can have both behaviours on the same install.

Rules that turn mail into work

Define what makes a mail worth tracking: who it came from, the domain it came from, how the subject starts, what the subject or body contains, or whether it carries an attachment. Matching mail becomes a task in the project you nominated, with the type and priority you set. Rules are ordered and can be switched off, so the specific one wins and nothing has to be rebuilt to pause it.

A task pane where the email already is

The add-in puts Orangescrum inside Outlook on the web, on the desktop, and on mobile. Someone reading a request creates the task from the message in front of them, which is the only version of this workflow people reliably keep doing. The add-in is deployed through your Microsoft 365 admin centre, or sideloaded while you test it.

Kept current by push, not by polling

Microsoft Graph pushes changes to your install as they happen. Those subscriptions expire within a few days by design, so a console command renews anything approaching expiry, marks the ones Microsoft has already dropped, and recreates them where the person's connection is still healthy. Put it on an hourly schedule and it looks after itself.

Your tenant, your credentials

The connection runs through an application registration you create in your own Microsoft tenant, with delegated permissions your administrator reviews and consents to. Orangescrum stores the tenant credentials in your database and each person's tokens against their own account. No shared middleman service sits between your mailboxes and your install.

What's included

  • Microsoft account connection through the Microsoft identity platform
  • Per-person connections with connected, disconnected, and error states
  • Calendar mappings between a project and an Outlook calendar
  • Sync direction per mapping: to Outlook only, to Orangescrum only, or both ways
  • Automatic sync toggle per mapping
  • Tasks and milestones represented as Outlook calendar events
  • Attendee response states carried across the sync
  • Email to task rules matching sender address, sender domain, subject start, subject contents, body contents, or the presence of an attachment
  • Target project, task type, and priority set per rule
  • Rule ordering and an active flag per rule
  • Outlook add-in task pane for the web, desktop, and mobile clients
  • Microsoft Graph webhook subscriptions for calendar and mail
  • A console command that renews expiring subscriptions and recreates dropped ones
  • Sync logs with direction, counts in and out, error counts, and error detail
  • Administrator settings for the client identifier, secret, and tenant identifier
  • Five permission keys with role defaults and inheritance for custom roles
  • A configurable attachment size limit
  • Multi-tenant company-scoped data isolation

Compatibility

Requires the Orangescrum Self-Hosted edition running PHP 8.2+, CakePHP 4.6+, and PostgreSQL 16. The plugin folder is OutlookIntegration and it is gated by the OUTLOOK_INTEGRATION_ENABLED flag in config/constants.php. You need an application registration in your own Microsoft tenant with delegated Microsoft Graph permissions for calendars and mail, granted admin consent by a tenant administrator. Your install must be reachable over HTTPS from Microsoft so it can receive push notifications and the sign-in callback. A scheduled job should run the subscription renewal command hourly, because Graph subscriptions expire within roughly three days. Multi-tenant aware, so every connection, mapping, rule, and log row is company-scoped.

Installation

A self-hosted install takes a few minutes. Buy the add-on, drop the plugin into your plugins/ directory, run the migrations, and you're live.

  1. 1

    Buy the add-on

    Purchase the Outlook Integration add-on from /self-hosted/pricing. Pricing for this add-on is being finalised, so confirm the current figure with sales before you budget.

  2. 2

    Register an application in your Microsoft tenant

    Create an app registration with a web redirect URI pointing at your install's callback path, generate a client secret, and add delegated Microsoft Graph permissions for sign-in, calendars, and mail. Have a tenant administrator grant consent.

  3. 3

    Drop the plugin into your install

    Copy the OutlookIntegration/ folder into plugins/ on your self-hosted Orangescrum server and register `OutlookIntegration` in src/Application.php.

  4. 4

    Enable the feature flag

    Confirm `define('OUTLOOK_INTEGRATION_ENABLED', true);` in config/constants.php, and set the attachment size limit if the default does not suit you.

  5. 5

    Run the migrations and the permission seeder

    Run `bin/cake migrations migrate --plugin OutlookIntegration` and `bin/cake migrations seed --plugin OutlookIntegration --seed OutlookIntegrationRbacSeeder`. Both are safe to re-run.

  6. 6

    Enter the tenant credentials

    As an administrator, open the Outlook admin settings and save the client identifier, client secret, and tenant identifier from your app registration.

  7. 7

    Schedule the subscription renewal

    Add an hourly cron entry for `bin/cake outlook_integration renew_subscriptions` so push notifications keep working past the three-day expiry window.

  8. 8

    Connect an account and deploy the add-in

    Have a user connect their Microsoft account, create a calendar mapping and an email rule, then deploy the add-in manifest through your Microsoft 365 admin centre, or sideload it while you test.

Frequently Asked Questions

What do I need on the Microsoft side?

An application registration in your own Azure tenant, with a redirect URI pointing at your install, a client secret, and delegated Microsoft Graph permissions for sign-in, calendars, and mail. A tenant administrator grants consent once. After that each person connects their own account through the normal consent screen.

Does it read everyone's mailbox?

No. Nothing is read until a person connects their own account, and the connection uses delegated permissions, meaning it acts as that person and only within what they can already see. There is no tenant-wide impersonation, and disconnecting stops it.

Can I sync in only one direction?

Yes, and per mapping. Each calendar mapping is set to push to Outlook only, pull to Orangescrum only, or run both ways. Most teams push deadlines out and do not pull meetings back, and this lets you do exactly that on one project while another behaves differently.

How do email rules decide what becomes a task?

Each rule matches on one condition: the sender address, the sender domain, how the subject starts, what the subject contains, what the body contains, or whether the mail has an attachment. A matching mail creates a task in the project the rule names, with the task type and priority it sets. Rules are ordered and individually switchable.

Does it work with Gmail or any other mail provider?

No. This add-on is Microsoft 365 and Outlook only. It talks to Microsoft Graph, uses Microsoft identity for sign-in, and ships an Outlook add-in. Gmail, IMAP mailboxes, and other calendar providers are not supported.

What happens when a Microsoft subscription expires?

Graph subscriptions live for roughly three days. A console command walks the active subscriptions and renews anything expiring within the next few hours. If Microsoft has already dropped one, the row is marked failed and an equivalent subscription is created again when the person's connection is still active. Run it hourly from cron and it takes care of itself.

Where do I see what synced and what did not?

In the sync logs. Each run records the direction, how many events moved each way, how many errors occurred, and the detail behind them, with start and completion times. That is usually the fastest way to answer why a particular meeting did not appear.

Ready to deploy Outlook Integration on your own infrastructure?

Talk to our team about Orangescrum Self-Hosted Enterprise: your data, your servers, full control.