Microsoft Graph: no se puede actualizar la fecha de inicio o finalización de un evento

Aug 18 2020

Estoy usando Microsoft Graph .NET SDK para actualizar los eventos de Outlook. El siguiente código actualiza correctamente los atributos Subject, y Bodyde un evento. Pero cuando trato de actualizar Starty / o Endfechas del evento (que son del tipo dateTimeTimeZone ) aparece el error que se muestra a continuación:

Pregunta : ¿Cuál puede ser la causa del error y cómo podemos resolverlo? Tenga en cuenta que el evento tiene fechas de inicio y finalización locales válidas como 8/21/2020 11:00AMy 8/21/2020 11:30AMrespectivamente. En realidad, en el modo de depuración, VS2019se muestra:Start.get returns null

Captura de pantalla del error :

Codigo :

  1. El error anterior ocurre si quito el comentario de la línea Start = { DateTime = "2020-08-20T08:30:00.0000000", TimeZone = "UTC" }siguiente.
  2. Los valores de authProvidery las "{id}"variables no son tan relevantes para el error ya que el código con los valores reales funciona bien sin la línea Start =....del código.

...

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);

Respuestas

1 GlenScales Aug 20 2020 at 00:12

Necesita algo como esto debido al tipo de objeto que se usa en la propiedad

            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" } 
        };
1 RajeevKumar Aug 20 2020 at 04:06

Debe agregar la fecha en el siguiente formato. Espero que resuelva su problema.

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 = "GMT Standard Time" } 
    };