Microsoft Power Apps 获取其他用户共享日历及组合框联动问题
Power Apps 获取其他用户共享日历解决方案
前置调整:重命名控件
先把第一个搜索用户的组合框重命名为cb_UserSelect,避免和默认控件名冲突导致公式报错。
1. 修改第二个日历选择组合框的Items属性
直接替换原有公式为:
If( !IsBlank(cb_UserSelect.Selected.Mail), // 选中用户时拉取对方共享日历 Office365Outlook.CalendarGetTables({roomList: cb_UserSelect.Selected.Mail}).value, // 未选中用户时默认拉取当前用户日历 Office365Outlook.CalendarGetTables().value )
该公式会自动仅返回当前登录用户有权限访问的目标用户共享日历列表,无权限时返回空列表。
2. 拉取指定时间范围的日程事件
假设第二个组合框命名为cb_CalendarSelect,要拉取固定时间范围的日程时,可使用以下公式(可直接赋值给 gallery 或集合的Items属性):
Office365Outlook.GetEventsCalendarViewV2( cb_CalendarSelect.Selected.Name, DateTime(2024,1,1,0,0,0), DateTime(2024,1,31,23,59,59) ).value
如果需要动态指定时间范围,把公式中的日期参数替换为对应日期选择控件的取值即可。
注意事项
- 当前登录用户必须提前获得目标用户共享日历的访问权限,否则无法拉取到日历列表
- 目标用户给当前用户授予的日历权限至少为可查看所有详细信息,才能拉取到完整的日程内容,仅授予忙闲查看权限时只能获取到日程的时间范围和忙闲状态,无法获取标题、参会人等详情
- 如果触发权限报错,可重新添加Office 365 Outlook连接器,刷新授权后重试
内容的提问来源于stack exchange,提问作者Spiris
相关产品推荐
相关产品推荐

