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

使用Microsoft Graph C# SDK获取一周日历事件时Filter语法报错求助

解决Microsoft Graph C# SDK获取日历事件的Invalid filter clause错误

你的代码里的filter字符串是导致BadRequest的核心原因,存在三个明显问题:

  • 错误使用HTML转义字符& lt替代逻辑运算符and
  • 过滤结束时间时遗漏了属性名end,直接写lt违反OData语法
  • start和end属于DateTimeTimeZone复合类型,必须通过dateTime子属性进行比较

修正后的完整代码:

var startDate = "2023-01-09T00:00:00Z";
var endDate = "2023-01-16T23:59:59Z";

// 符合OData规范的filter表达式
var filterString = $"start/dateTime ge '{startDate}' and end/dateTime le '{endDate}'";

var events = await graphServiceClient.Me.Calendar.Events
    .Request()
    .Filter(filterString)
    .GetAsync();

ResultText.Text = string.Empty;
foreach (var ev in events)
{
    ResultText.Text += $"{ev.Subject}{Environment.NewLine}";
}

额外说明:

  • 日期值必须用单引号包裹,这是OData $filter的强制要求
  • 建议使用UTC时间格式(带Z后缀),避免不同时区导致的事件范围偏差

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:05:30