You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查找Outlook共享日历中约会条目的创建人,支持编程实现?

Outlook共享日历获取约会实际创建人解决方案

方案1:通过AppointmentItem.PropertyAccessor读取扩展MAPI属性

Outlook界面显示的创建人信息存储在未直接暴露的MAPI命名属性中,无需调用额外接口,VBA/Office脚本可直接读取:

  • 实际创建人显示名称对应属性标识:http://schemas.microsoft.com/mapi/proptag/0x3FF8001F
  • 实际创建人邮箱地址对应属性标识:http://schemas.microsoft.com/mapi/proptag/0x3FFF001F
  • 最后修改人显示名称对应属性标识:http://schemas.microsoft.com/mapi/proptag/0x3FFA001F

示例VBA代码:

Sub GetAppointmentCreator(appt As Outlook.AppointmentItem)
    Dim pa As Outlook.PropertyAccessor
    Set pa = appt.PropertyAccessor
    ' 读取创建人名称
    Dim creatorName As String
    creatorName = pa.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3FF8001F")
    Debug.Print "实际创建人:" & creatorName
End Sub

如果约会未被修改,读取到的创建人信息和界面右下角显示的内容完全一致,不受共享日历所有者的Organizer字段干扰。


方案2:Exchange/Office 365环境调用Graph API

如果使用的是云托管的Exchange Online邮箱,直接调用日历接口获取createdBy字段,返回结果包含实际创建用户的ID、名称、邮箱信息,兼容性更强,无需依赖本地Outlook客户端环境。


方案3:主动写入自定义属性(高可靠性场景)

如果需要避免后续MAPI属性规则变更导致读不到数据,可以在约会新建事件触发时,主动给AppointmentItem添加自定义用户属性,写入当前操作人的信息,后续校验时直接读取自定义属性即可,自定义属性会随约会同步到所有共享日历成员的客户端。


校验逻辑补充

你提到的约会未被他人修改的场景,可以对比读取到的创建人和最后修改人属性,如果二者一致即可确认无人修改。

内容的提问来源于stack exchange,提问作者Xiangrui Li

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:57:04