Può capitare di dover copiare degli appuntamenti, da una lista SharePoint Online, nelle settimane successive, mantenendo lo stesso orario.
Questo funziona senza problemi, basta prendere la data dell'appuntamento originale e sommare (addDays) X giorni da aggiungere:
Power Automate
addDays('2023-03-30T15:00:00Z', 14)
La cosa si complica se l'appuntamento di destinazione si trova a cavallo di un cambio ora solare/legale (daylight saving time).
Soluzione 1
In questo esempio di Power Automate si può vedere come una data del 30 marzo 2024 alle ore 16:00 italiane, corrisponde alle 15:00 UTC.Demo daylight saving timeSe alla stessa data, si sommano 10 giorni, supero la data di cambio ora legale a solare, lo stesso appuntamento corrisponderebbe alle ore 17:00 ora italiana, quindi un ora dopo del voluto.
L'esempio corrisponde a questo Power Automate Source daylight saving time
A questo punto si può ricavare la differenza tra le variabili varEndDateLocal e varStartDateLocal per determinare l'offset, in minuti, da applicare alla data varEndDateUTC.
Ma prima, la parte della data va uniformata, in modo da poter calcolare solo la differenza orariaOffset in minutiil corrispondente Power Automate è questoSource Offset in minuti
Nella variabile varEndDateUTCCorrect c'è la data corretta da scrivere sulla lista SharePoint Online.
Soluzione 2
Questa soluzione è ancora più semplice, prevede di fare la somma dei giorni sulla data, dopo averla convertita nella time zone locale, e poi riconvertirla in UTC prima di salvarla.Demo 2il corrispondente Power Automate è questoSource 2