Microsoft Graph:无法更新事件的开始日期或结束日期

问题描述

我正在使用Microsoft Graph .NET SDK更新Outlook事件。以下代码成功更新了事件的SubjectBody属性。但是,当我尝试更新事件的Start和/或End日期(属于dateTimeTimeZone类型)时,会显示以下错误

问题错误的可能原因是什么,我们该如何解决?请注意,该活动的有效本地开始日期和结束日期分别为8/21/2020 11:00AM8/21/2020 11:30AM。实际上,在调试模式下,VS2019显示为:Start.get returns null

错误的屏幕截图

enter image description here

代码

  1. 如果我取消注释下面的行Start = { DateTime = "2020-08-20T08:30:00.0000000",TimeZone = "UTC" },则会发生上述错误
  2. authProvider"{id}"变量的值与错误无关,因为具有真实值的代码在没有代码Start =....的情况下可以正常工作。

...

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var @event = new Event
{
    Subject = "Test subject",Body= new ItemBody { Content = "Test body content"}
    //Start = { DateTime = "2020-08-20T08:30:00.0000000",TimeZone = "UTC" }
};

await graphClient.Me.Events["{id}"]
    .Request()
    .UpdateAsync(@event);

解决方法

由于属性中使用了对象类型,因此您需要这样的东西

            var @event = new Event
        {
            Subject = "Test subject",Body = new ItemBody { Content = "Test body content" },Start = new DateTimeTimeZone {  DateTime = "2020-08-20T08:30:00.0000000",TimeZone = "UTC" } 
        };
,

您需要以以下格式添加日期。希望它能解决您的问题。

var @event = new Event
    {
        Subject = "Test subject",TimeZone = "GMT Standard Time" } 
    };