This is a parent app plus a child “control device” driver that connects to Google Calendar and/or Microsoft 365 (Outlook) using OAuth, polls events on a schedule, and normalizes them into an event list that each child switch evaluates using its own match rules.
What it does
-
Creates one or more virtual “calendar switches” you can use in Rule Machine, Mode Manager, notifications, dashboards, etc.
-
Supports Google Calendar and Microsoft 365/Outlook via OAuth (no manual token pasting).
-
Each child switch has independent rules:
- must include words/phrases
- ignore words/phrases
- before/after buffers
- filters (busy-only, allow all-day, allow private, etc.)
-
App fetches events on a schedule (example: every 5 minutes); each child switch re-evaluates every minute using the latest fetched events.
Install and documentation -
Repo (README includes full Google Cloud Console and Microsoft Entra setup, plus Hubitat install steps): GitHub - truittchris/hubitat_calendar_switch_for_google_and_outlook: Hubitat Calendar Switch is a Hubitat app plus a child switch driver. It connects to Google Calendar and/or Microsoft 365 (Outlook) using OAuth, fetches events on a schedule, and delivers a normalized event list to each child switch. Each switch contains its own match rules (must include words, ignore words, timing, and filters).
Notes and support -
If you run into OAuth errors, the most common cause is a redirect URI mismatch. The README calls out the exact redirect and common fixes for both Google and Microsoft.
-
Issues and PRs are welcome on the repo.
If you want, reply with your use case (work meetings, “house is busy,” kids’ activities, etc.) and what rules you’re trying to match – I’m happy to sanity-check the switch rule setup.