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

如何用C#及Google Calendar API创建日历事件?代码报错求助

解决Google Calendar API C#创建事件失败的问题

首先,我帮你梳理几个常见导致这段代码运行失败的原因,以及对应的修复方案:

1. 检查依赖包是否正确安装

确保你已经通过NuGet安装了所有必要的Google API相关包:

  • Google.Apis.Calendar.v3
  • Google.Apis.Auth
  • Google.Apis.Core

如果使用Package Manager Console,可以运行以下命令安装:

Install-Package Google.Apis.Calendar.v3
Install-Package Google.Apis.Auth
Install-Package Google.Apis.Core

2. 修正事件时间的时区与格式问题

你的代码里End时间的时区偏移和Start不一致(Start是-07:00,End是-07:30),这可能导致API返回时间逻辑错误。另外,建议用DateTimeOffset处理带时区的时间,避免解析异常:

替换原代码中Start和End的定义:

Start = new EventDateTime()
{
    DateTime = new DateTimeOffset(2024, 6, 28, 9, 0, 0, TimeSpan.FromHours(-7)).DateTime,
    TimeZone = "America/Los_Angeles",
},
End = new EventDateTime()
{
    DateTime = new DateTimeOffset(2024, 6, 28, 17, 0, 0, TimeSpan.FromHours(-7)).DateTime,
    TimeZone = "America/Los_Angeles",
},

(注意把年份改成当前或未来的年份,避免创建已过期的无效事件)

3. 移除可能不支持的提醒方式

sms提醒需要用户预先在Google账户中配置好短信通知服务,否则API会直接报错。可以先注释掉sms提醒,先测试基础的事件创建功能:

Overrides = new EventReminder[] {
    new EventReminder() { Method = "email", Minutes = 24 * 60 },
    // new EventReminder() { Method = "sms", Minutes = 10 },
}

4. 确认文件路径与权限

  • 确保credentials.json已经复制到项目的输出目录(右键文件→属性→复制到输出目录:选择「如果较新则复制」)
  • 首次运行授权后生成的token.json会保存在项目目录下,确保程序对该目录有读写权限

5. 捕获并查看具体错误信息

添加异常捕获逻辑,这样你能看到API返回的具体错误详情,方便进一步排查:

try
{
    Event createdEvent = request.Execute();
    Console.WriteLine("Event created: {0}", createdEvent.HtmlLink);
}
catch (Exception ex)
{
    Console.WriteLine($"Error creating event: {ex.Message}");
    if (ex is Google.GoogleApiException apiEx)
    {
        Console.WriteLine($"API Error Details: {apiEx.Error.Message}");
        Console.WriteLine($"API Error Code: {apiEx.Error.Code}");
    }
}

按照上面的步骤逐一排查,应该能解决大部分问题。如果捕获到具体的API错误代码,可以再针对性分析处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:11:58