Microsoft Graph: impossible de mettre à jour la date de début ou de fin d'un événement

Aug 18 2020

J'utilise le SDK Microsoft Graph .NET pour mettre à jour les événements Outlook. Le code suivant met à jour avec succès les attributs Subjectet Bodyd'un événement. Mais lorsque j'essaie de mettre à jour les Startet / ou les Enddates de l'événement (qui sont du type dateTimeTimeZone ), j'obtiens l'erreur ci-dessous:

Question : Quelle peut être la cause de l'erreur et comment pouvons-nous la résoudre? S'il vous plaît noter que l'événement a valide les dates locales de début et de fin comme 8/21/2020 11:00AMet 8/21/2020 11:30AMrespectivement. En fait, en mode débogage, VS2019affiche:Start.get returns null

Capture d'écran de l'erreur :

Code :

  1. L'erreur ci-dessus se produit si je décommente la ligne Start = { DateTime = "2020-08-20T08:30:00.0000000", TimeZone = "UTC" }ci-dessous.
  2. Les valeurs de authProvideret les "{id}"variables ne sont pas très pertinentes pour l'erreur car le code avec les valeurs réelles fonctionne bien sans la ligne Start =....du code.

...

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

Réponses

1 GlenScales Aug 20 2020 at 00:12

Vous avez besoin de quelque chose comme ça à la place en raison du type d'objet utilisé dans la propriété

            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

Vous devez ajouter la date au format ci-dessous. J'espère que cela résoudra votre problème.

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" } 
    };