# \[APP\]\[Pro\] Microsoft 365

**URL:** <https://community.homey.app/t/app-pro-microsoft-365/152782>\
**Category:** Apps\
**Tags:** app, homey-pro\
**Created:** [March 21, 2026, 7:35pm UTC](https://community.homey.app/t/app-pro-microsoft-365/152782 "2026-03-21T19:35:33Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![ObelixNL](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/obelixnl/32/172250_2.png) [@ObelixNL](https://community.homey.app/u/ObelixNL)\
**Post date:** [March 21, 2026, 7:35pm UTC](https://community.homey.app/t/app-pro-microsoft-365/152782/1 "2026-03-21T19:35:33Z")

</div>

Sync your Microsoft 365 / Teams presence and Outlook calendar into Homey automations.

## What does this app do?

This app connects your Microsoft 365 account to Homey and creates a virtual “Presence Device” that reflects your current Teams availability and calendar status in real time.

Use it to automate your smart home based on your work schedule — no manual switching needed.

## Features

- Tracks your Teams presence: Available, Busy, Do Not Disturb, Away, In a Call, In a Meeting, Presenting, Focusing, and more
- Monitors your Outlook calendar and detects active meetings
- Updates automatically via Microsoft Graph webhooks, with polling fallback
- Supports multiple Microsoft accounts on the same Homey

## Capabilities

- **Presence state** — current Teams availability (11 states)
- **In meeting** — true when a calendar meeting is active
- **Call active** — true when a Teams call is in progress
- **Do Not Disturb** — true when presence is DoNotDisturb, Presenting or Focusing
- **Calendar busy** — true when Outlook shows Busy or Out of Office right now
- **Next meeting** — start time of your next upcoming meeting

## Flow cards

**Triggers (WHEN)**

- Presence changed
- A meeting started / ended
- A call started / ended
- Do Not Disturb turned on / off
- Focus time started / ended

**Conditions (AND)**

- Presence is / is not [state]
- Is / is not in a meeting
- A call is / is not active
- Do Not Disturb is / is not on
- Calendar shows busy / free

**Actions (THEN)**

- Refresh presence now

## Example automations

- When a meeting starts → turn on a “busy” light
- When Do Not Disturb turns on → mute the doorbell
- When presence becomes Available → turn off the status light and resume the robot vacuum
- When focus time starts → close the smart blinds and set the thermostat to focus temperature

## Setup

1. Install the app and add a new Presence Device
2. Sign in with your Microsoft 365 account (work, school, or personal)
3. Grant the requested permissions (Presence.Read, Calendars.Read, User.Read)
4. Start building Flows!

### Download & Test

You can find the live version here:  
👉 [https://homey.app/a/nl.monkeysoft.microsoft365/](https://homey.app/a/nl.monkeysoft.microsoft365/)

You can find the test version here:  
👉 [Microsoft 365 | Homey](https://homey.app/a/nl.monkeysoft.microsoft365/test/)

I’d love your feedback, ideas, or feature requests!

### Changelog

- 1.0.0 21 march 2026  
First version!

### Example Flow

### Screenshots

## Notes

- Presence data requires a Microsoft 365 work or school account with a Teams license. Personal [Outlook.com](http://Outlook.com) accounts support calendar sync only.
- The app uses Microsoft Graph webhooks for near-instant presence updates. If webhooks are unavailable, it falls back to 30-second polling automatically.

---

<div class="post-metadata">

**Author:** ![ObelixNL](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/obelixnl/32/172250_2.png) [@ObelixNL](https://community.homey.app/u/ObelixNL)\
**Post date:** [March 21, 2026, 7:35pm UTC](https://community.homey.app/t/app-pro-microsoft-365/152782/2 "2026-03-21T19:35:45Z")

</div>

placeholder for second message

---

<div class="post-metadata">

**Author:** ![Wout\_van\_den\_Dool](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/wout_van_den_dool/32/391_2.png) [@Wout\_van\_den\_Dool](https://community.homey.app/u/Wout_van_den_Dool)\
**Post date:** [March 23, 2026, 6:09am UTC](https://community.homey.app/t/app-pro-microsoft-365/152782/3 "2026-03-23T06:09:23Z")

</div>

Well done!! Was on my wish list…  
Got this message from my employer:

 ![IMG_6654](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/c/3/c3659232d1adbaf501268a31f9bab26334b39d0a.jpeg)  
 ![IMG_6653](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/7/b/7b1596af689df44fffea81fa95ae153378987b59.jpeg)

---

<div class="post-metadata">

**Author:** ![Henk\_Renting](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/henk_renting/32/87634_2.png) [@Henk\_Renting](https://community.homey.app/u/Henk_Renting)\
**Post date:** [April 15, 2026, 2:15pm UTC](https://community.homey.app/t/app-pro-microsoft-365/152782/4 "2026-04-15T14:15:07Z")

</div>

Same here…

This admin consent could be a showstopper in companies where IT departments don’t see the benefits and mainly security risks.

Is there any way to achieve the same without admin consent?  
(Probably not, but hey; nothing ventured… 😉)

---

<div class="post-metadata">

**Author:** ![ObelixNL](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/obelixnl/32/172250_2.png) [@ObelixNL](https://community.homey.app/u/ObelixNL)\
**Post date:** [April 15, 2026, 5:22pm UTC](https://community.homey.app/t/app-pro-microsoft-365/152782/5 "2026-04-15T17:22:06Z")

</div>

No, not at this time because of security and companies policies. Sorry!

---

<div class="post-metadata">

**Author:** ![Henk\_Renting](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/henk_renting/32/87634_2.png) [@Henk\_Renting](https://community.homey.app/u/Henk_Renting)\
**Post date:** [April 15, 2026, 6:03pm UTC](https://community.homey.app/t/app-pro-microsoft-365/152782/6 "2026-04-15T18:03:04Z")

</div>

Thought so. Thx for the reply.

But technically possible?

---

<div class="post-metadata">

**Author:** ![ObelixNL](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/obelixnl/32/172250_2.png) [@ObelixNL](https://community.homey.app/u/ObelixNL)\
**Post date:** [April 16, 2026, 8:05pm UTC](https://community.homey.app/t/app-pro-microsoft-365/152782/7 "2026-04-16T20:05:22Z")

</div>

I have changed some settings, can you try the new test version?

---

<div class="post-metadata">

**Author:** ![Wout\_van\_den\_Dool](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/wout_van_den_dool/32/391_2.png) [@Wout\_van\_den\_Dool](https://community.homey.app/u/Wout_van_den_Dool)\
**Post date:** [April 16, 2026, 9:15pm UTC](https://community.homey.app/t/app-pro-microsoft-365/152782/8 "2026-04-16T21:15:39Z")

</div>

Tried, but still admin access needed in 1.03… Thank for your efforts

---

<div class="post-metadata">

**Author:** ![Henk\_Renting](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/henk_renting/32/87634_2.png) [@Henk\_Renting](https://community.homey.app/u/Henk_Renting)\
**Post date:** [April 16, 2026, 9:19pm UTC](https://community.homey.app/t/app-pro-microsoft-365/152782/9 "2026-04-16T21:19:51Z")

</div>

Can confirm this as well. Admin consent needed… ;(

---

<div class="post-metadata">

**Author:** ![ObelixNL](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/obelixnl/32/172250_2.png) [@ObelixNL](https://community.homey.app/u/ObelixNL)\
**Post date:** [April 17, 2026, 5:18am UTC](https://community.homey.app/t/app-pro-microsoft-365/152782/10 "2026-04-17T05:18:41Z")

</div>

Sorry then your system administrator disabled this kind of integrations.

---

<div class="post-metadata">

**Author:** ![Rudi\_Hendrix](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/rudi_hendrix/32/31931_2.png) [@Rudi\_Hendrix](https://community.homey.app/u/Rudi_Hendrix)\
**Post date:** [October 18, 2026, 8:13pm UTC](https://community.homey.app/t/app-pro-microsoft-365/152782/11 "2026-10-18T20:13:25Z")

</div>

Is there any way to include the title, location and start date of appointments?

I would love to be able to make my morning routine start based on what event starts, where and when. And I could also make the integrations with my car depending of it.

So for example: if I have a meeting at my client, which is 1:20 hours drive I could make sure my coffee starts in time, my car gets pre heated and the navigation is set.

---

<div class="post-metadata">

**Author:** ![ObelixNL](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/obelixnl/32/172250_2.png) [@ObelixNL](https://community.homey.app/u/ObelixNL)\
**Post date:** [October 18, 2026, 8:40pm UTC](https://community.homey.app/t/app-pro-microsoft-365/152782/12 "2026-10-18T20:40:08Z")

</div>

That’s a great use case! The “An event started” Flow card already provides the appointment’s title, location and start date/time. I’ve now added the location to “An event is about to start” as well, so these details can be used ahead of the appointment. This change hasn’t been published yet.

For your example, you could trigger the routine 90 minutes before the meeting: 80 minutes for driving plus 10 minutes to prepare. Use the Subject or Location tag in a Logic condition to select the relevant appointments, then start your coffee machine, preheat your car and pass the location to a compatible navigation integration.

Set both the Calendar device’s reminder setting and the Flow card to 90 minutes. Currently, there’s one reminder time per calendar device.

Travel time isn’t calculated automatically, and car/navigation actions depend on the Homey integrations you use. The location tag contains the location entered in Outlook, so use a full address if your navigation integration requires one.

> **[Microsoft 365 | Homey](https://homey.app/en-us/app/nl.monkeysoft.microsoft365/Microsoft-365/test/)**
>
> Sync your Microsoft 365 / Teams presence and calendar into Homey automations

---

<div class="post-metadata">

**Author:** ![Rudi\_Hendrix](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/rudi_hendrix/32/31931_2.png) [@Rudi\_Hendrix](https://community.homey.app/u/Rudi_Hendrix)\
**Post date:** [October 19, 2026, 4:18am UTC](https://community.homey.app/t/app-pro-microsoft-365/152782/13 "2026-10-19T04:18:44Z")

</div>

I wasn’t aware I was able to retrieve the title of the appointment. How can I do that in a flow?

It will make the advanced flow somewhat more extensive, but it should be fine. I know for example that the meeting “Daily standup” is always at the client. So I could hard code the navigation for my client’s address.

For starting the morning routine it is very useful to add my wife’s calendar. She has different shifts all the time. This way I don’t have to pick up the phone and start the “Out of bed” routine

---

<div class="post-metadata">

**Author:** ![Rudi\_Hendrix](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/rudi_hendrix/32/31931_2.png) [@Rudi\_Hendrix](https://community.homey.app/u/Rudi_Hendrix)\
**Post date:** [October 20, 2026, 4:29am UTC](https://community.homey.app/t/app-pro-microsoft-365/152782/14 "2026-10-20T04:29:22Z")

</div>

Found the way how to use the title. It’s (advanced) flows 1:1 🙂

Adding the location would be helpful. This is going to change a lot of the flows that I currently trigger time based.
