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

如何使用PowerShell/Graph API获取Office 365公共邮箱日历或事件?

解决Office 365公共文件夹日历获取问题

先处理Graph API的「Invalid version」错误

这个错误的核心原因是请求URL中的Graph API版本格式不正确。Graph API仅支持v1.0(正式版)和beta(预览版)两个版本标识,检查你的请求URL:

  • 错误示例:https://graph.microsoft.com/v2/publicFolders(不存在v2版本)
  • 正确示例:https://graph.microsoft.com/v1.0/publicFolders 或 https://graph.microsoft.com/beta/publicFolders

获取Office 365公共文件夹日历的正确流程

1. 确认所需权限

放弃仅针对用户日历的Calendars.ReadBasic.All,改用公共文件夹专属权限:

  • 委派权限:PublicFolder.Read
  • 应用权限:PublicFolder.Read.All
    需在Azure AD应用注册中添加对应权限并完成管理员授权。

2. 获取公共文件夹列表

调用端点列出所有公共文件夹,筛选出日历类型的文件夹:

GET https://graph.microsoft.com/v1.0/publicFolders

返回结果中,找到folderClass值为IPF.Appointment的条目,其id就是公共日历文件夹的ID。

3. 获取日历中的事件

使用上一步得到的公共文件夹ID,调用端点获取事件:

GET https://graph.microsoft.com/v1.0/publicFolders/{publicFolderId}/calendar/events

可添加$select、$filter等查询参数,按需筛选返回字段或时间范围。

示例PowerShell脚本(替代原VBScript)

# 配置参数
$clientId = "你的Azure AD应用ID"
$tenantId = "你的租户ID"
$clientSecret = "你的应用密钥"

# 获取访问令牌
$tokenBody = @{
    Grant_Type    = "client_credentials"
    Scope         = "https://graph.microsoft.com/.default"
    Client_Id     = $clientId
    Client_Secret = $clientSecret
}
$tokenResponse = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" -Method POST -Body $tokenBody
$headers = @{Authorization = "Bearer $($tokenResponse.access_token)"}

# 获取公共文件夹列表,筛选日历文件夹
$publicFolders = Invoke-RestMethod -Uri "https://graph.microsoft.com/v1.0/publicFolders" -Headers $headers -Method GET
$calendarFolder = $publicFolders.value | Where-Object {$_.folderClass -eq "IPF.Appointment"}

# 获取日历事件
if ($calendarFolder) {
    $events = Invoke-RestMethod -Uri "https://graph.microsoft.com/v1.0/publicFolders/$($calendarFolder.id)/calendar/events" -Headers $headers -Method GET
    $events.value | Select-Object subject, start, end, location
} else {
    Write-Host "未找到公共文件夹中的日历"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 07:33:14