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

Outlook Web加载项:如何获取约会所属日历名称以设置应用规则?

获取Outlook Web加载项中当前约会的所属日历名称

可以通过Office JavaScript API实现这个需求——确实,Outlook加载项的XML清单规则不支持直接校验日历名称,只能通过代码动态获取并判断:

  1. 配置正确的权限
    在你的XML清单中,确保权限至少设置为ReadItem,这样加载项才能读取约会的父日历信息:

    <Permissions>ReadItem</Permissions>
    
  2. 通过API获取日历名称并校验
    在约会编辑界面,先获取当前约会的父文件夹ID,再通过该ID获取日历的显示名称,进而判断是否显示加载项内容,代码示例如下:

    // 获取当前约会的父文件夹ID
    Office.context.mailbox.item.getPropertyAsync("ParentFolderId", function(getIdResult) {
      if (getIdResult.status === Office.AsyncResultStatus.Succeeded) {
        const folderId = getIdResult.value;
        // 根据文件夹ID获取日历详情
        Office.context.mailbox.getParentFolderAsync(folderId, function(getFolderResult) {
          if (getFolderResult.status === Office.AsyncResultStatus.Succeeded) {
            const targetCalendarNames = ["目标日历1", "目标日历2"]; // 可设置多个目标日历
            const currentCalendarName = getFolderResult.value.displayName;
            
            // 校验日历名称,控制加载项内容显示
            if (targetCalendarNames.includes(currentCalendarName)) {
              document.getElementById("your-addin-content").style.display = "block";
            } else {
              document.getElementById("your-addin-content").style.display = "none";
            }
          } else {
            console.error("获取日历信息失败:", getFolderResult.error.message);
          }
        });
      } else {
        console.error("获取父文件夹ID失败:", getIdResult.error.message);
      }
    });
    
  3. 额外注意点

    • 该方法兼容Outlook Web App以及支持Office JS API的桌面客户端版本;
    • 建议在Office.initialize回调中执行上述逻辑,确保加载项初始化时就完成日历校验;
    • 如果需要更精细的权限控制,可将清单权限调整为ReadWriteItem,但ReadItem已满足当前需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:35:10