Microsoft Graph: não é possível atualizar a data de início ou término de um evento
Estou usando o Microsoft Graph .NET SDK para atualizar eventos do Outlook. O código a seguir atualiza com êxito os atributos Subject
e Body
de um evento. Mas quando tento atualizar as Start
e / ou End
datas do evento (que são do tipo dateTimeTimeZone ) recebo o erro mostrado abaixo:
Pergunta : Qual pode ser a causa do erro e como podemos resolvê-lo? Observe que o evento tem datas de início e término locais válidas como 8/21/2020 11:00AM
e, 8/21/2020 11:30AM
respectivamente. Na verdade, no modo de depuração, VS2019
está mostrando:Start.get returns null
Captura de tela do erro :

Código :
- O erro acima ocorre se eu descomentar a linha
Start = { DateTime = "2020-08-20T08:30:00.0000000", TimeZone = "UTC" }
abaixo. - Os valores de
authProvider
e as"{id}"
variáveis não são tão relevantes para o erro, pois o código com os valores reais funciona bem sem a linhaStart =....
do 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);
Respostas
Você precisa de algo assim por causa do tipo de objeto que está sendo usado na propriedade
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" }
};
Você precisa adicionar a data no formato abaixo. Espero que isso resolva seu 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" }
};