工作流
华为日历 <- > Outlook日历<- > HASS日历
通过修改这三个的任意一个(用Outlook的日历账户)可以同步到另外两个
华为&Outlook日历互通
APP准备
下载Outlook APP跟Authenticatol软件
Outlook APP:集成日历功能可跟华为系统日历同步
Authenticatol:微软账号登录的快捷安全验证
申请Outlook邮箱账号登录Outlook跟Authenticatol
设置同步
进入Outlook APP点击左上角和左下角进入设置
选择日历开启同步日历

实验
分别在华为日历和Outlook上建立不同的行程,看是否同步
Outlook&HASS同步
HASS集成下载
RogerSelwyn大佬开发了个通过微软azure开发平台应用将日历等数据推送到HASS
GitHub页面:https://github.com/RogerSelwyn/MS365-Calendar
快捷配置页面:https://fixtse.com/en/blog/o365-integrations
视频教程:https://www.youtube.com/watch?v=_g5I2y-xzaM
根据GitHub页面或者快捷配置页面里面的连安装第三方集成
微软azure开发平台应用配置
平台网址:https://portal.azure.com/#home
打开开发平台登录进去
注册应用
在顶部搜索栏搜索“应用注册”
左上角“新注册”
填入以下信息

url :https://login.microsoftonline.com/common/oauth2/nativeclient
在概述页面有一个“应用程序(客户端) ID”复制备用
配置应用权限
点击左侧菜单栏的管理里面的API授权
点击“添加授权”然后点击“Microsoft Graph”然后点击“委托的权限”

查找官方文档里的日历应用需要的授权
具体如下

搜索相应的授权都勾选上
然后点击下方的添加授权
然后点击“添加权限”旁的“代表 Default Directory 授予管理员同意”
配置应用证书
点击证书和密码添加一个新客户端密码复制“值”里面的内容备用
配置HASS的微软日历集成
进入设置设备与服务右下角添加集成
搜索365点击Microsoft 365 Calendar

第一项名字自己取
Client ID = 刚才复制的应用程序(客户端) ID
Client Secret = 刚才复制的“值”
勾选Enable update services提交
点击蓝色的字体会让登录微软账号,然后会进入一个页面
如果是空白页是正常的直接复制网址然后输入HASS中的框里面确认就行了
如果是显示“此页面通常不会显示,可能是网络钓鱼攻击的迹象。URL包含你的密码。请立即关闭此页面,且不要复制或与任何人共享该URL。”赶紧复制当前的网址因为他马上就要跳走了,一般就是网络代理问题被微软认为是不安全的所以有一个保护机制。
把这个网址输入HASS框里确认就行

然后就看到了Outlook的默认3个实体
此时就可以实验在华为日历,Outlook日历和HASS左侧栏的日历中都试试添加事件看是否同步
遇到的问题跟如何排除的
Q:点开HASS的蓝色连接登录后提示“我们无法完成你的请求”
A:因为创建应用的时候Web连接填错了
修复:在应用总找到Authentication (Preview)页面修改连接为正确的https://login.microsoftonline.com/common/oauth2/nativeclient
Q:HASS跟Outlook同步不了
A:可能是权限啥的没配置好
修复:重新配置一下然后重启HASS,在集成中点击Microsoft 365 - Calendar删除刚才添加的东西重新添加一下
