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

C#调用Google Calendar API无法返回全部事件问题咨询

Google Calendar新事件API获取不到的问题排查

问题核心

你手动在Google Calendar创建新事件后,用这段C#代码调用API返回200状态码,但新事件没出现在allEvents列表里,大概率是请求参数的问题,下面是具体分析和解决办法:

最可能的参数问题及修复

  • 默认时间范围限制
    Google Calendar API的events.list接口默认只返回未来30天内的事件,要是你创建的新事件是历史事件(比如测试用的过去时间),或者超出了默认时间范围,就会被过滤掉。
    解决:手动添加时间范围参数,覆盖所有可能的事件:

    // 设置时间范围从1970年到2030年,确保包含所有事件
    restRequest.AddQueryParameter("timeMin", "1970-01-01T00:00:00Z");
    restRequest.AddQueryParameter("timeMax", "2030-12-31T23:59:59Z");
    

    注意时间必须是UTC的RFC3339格式。

  • 返回事件数量和类型限制
    API默认最多返回250条事件,而且不会展开重复事件的实例,要是新事件是重复事件,或者事件总数超过250,就可能看不到。另外默认也不会返回私密或已删除事件(可根据需求调整)。
    解决:补充以下参数:

    // 提高最大返回数量,上限为2500
    restRequest.AddQueryParameter("maxResults", "2500");
    // 把重复事件展开成单个实例,避免遗漏
    restRequest.AddQueryParameter("singleEvents", "true");
    // 可选:如果需要包含已删除事件,设为true
    restRequest.AddQueryParameter("showDeleted", "false");
    
  • 账户匹配问题
    确认你刷新后的access_token对应的Google账户,和你手动创建事件的账户是同一个。要是令牌属于另一个账户,肯定看不到当前账户的新事件。
    验证:可以把access_token取出,调用Google的令牌验证接口,或者直接在浏览器中访问API地址并带上该令牌,查看返回事件的所属账户是否正确。

额外调试建议

  1. 打印responser.Content的完整JSON内容,先确认API返回里到底有没有新事件——有时候可能是你的EventModel字段映射错误(比如Google返回的是start.dateTime,你的模型嵌套结构不对),导致反序列化后丢失了事件。
  2. 检查EventModel的定义,确保所有需要的字段(比如Id、Summary、Start下的DateTime)和API返回的JSON字段名完全匹配,大小写也要注意。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:20:35