2017-10-19 11 views
1

J'ai un problème avec l'utilisation de l'API Outlook spécialement avec l'API Calendar.Différence d'heure Outlook API dans le calendrier

J'envoie des dates avec un format UTC et quand ils sont ajoutés dans le calendrier, j'ai une différence avec la date d'envoi.

Je suis en France donc la date originale est en UTC + 2. Je convertir en UTC et faire ma demande avec cette configuration:

var options = { 
      url: "https://outlook.office.com/api/v2.0/me/calendars/" + workspace.calendarId + "/events?$Select=Id", 
      method: "POST", 
      headers: { 
       "authorization": "Bearer " + host.outlookCalAccessToken, 
       "accept" : "application/json", 
       "ContentType" : "application/json" 
      }, 
      json:{ 
       "Subject" : event.summary, 
       "Body" : { 
        "ContentType" : "Text", 
        "Content" : event.description 
       }, 
       "Start" : { 
        "DateTime":start, 
        "TimeZone" : "OriginStartTimeZone" 
       }, 
       "End" : { 
        "DateTime":end, 
        "TimeZone" : "OriginStartTimeZone" 

       }, 
       "Attendees" : [ 
        { 
         "EmailAddress" : { 
          "Name" : nomad.firstname, 
          "Address" : nomad.email 
         }, 
         "Type" : "Required" 
        } 
       ] 

      }, 
      "Content-Type" : "application/json" 
     }; 

J'ai le même problème si le décalage horaire est « OriginStartTimeZone » ou « UTC ».

Par exemple, ma date locale est 2017-10-19T17:00:00.000 Il est converti en UTC 2017-10-19T15:00:00.000Z Et dans le calendrier la date de l'événement est 2017-10-19T08:00:00.000

Qu'ai-je manqué avec cette API?

Merci!

Répondre

2

Si vous voulez que votre événement date de début être 19.10.2017 à 10:30 heure locale, votre objet de départ devrait ressembler à ceci:

Start:{DateTime: "2017-10-19T10:30:00+02:00", TimeZone: "UTC"} 

Est-ce que votre objet de départ ressembler ? Si c'est le cas, l'heure de l'événement devrait s'afficher correctement dans le calendrier.

3

OriginStartTimeZone n'est pas une valeur valide pour TimeZone. Si vous définissez TimeZone à UTC vous devriez obtenir les résultats escomptés. Je viens de tester ici avec cette charge utile:

{ 
    "Subject" : "test", 
    "Body" : { 
     "ContentType" : "Text", 
     "Content" : "hello" 
    }, 
    "Start" : { 
     "DateTime": "2017-10-19T15:00:00.000Z", 
     "TimeZone" : "UTC" 
    }, 
    "End" : { 
     "DateTime": "2017-10-19T16:00:00.000Z", 
     "TimeZone" : "UTC" 
    } 
} 

deux dans la réponse à mon POST et les demandes ultérieures GET pour l'événement, je reviens:

"Start": { 
    "DateTime": "2017-10-19T15:00:00.0000000", 
    "TimeZone": "UTC" 
}, 
"End": { 
    "DateTime": "2017-10-19T16:00:00.0000000", 
    "TimeZone": "UTC" 
}, 
0

Après avoir changé le fuseau horaire UTC, la problème est encore survenu. J'ai trouvé ce que ça ne fonctionne pas. Dans le webmail, le fuseau horaire a été mis à UTC-8 bien que j'ai rempli le bon fuseau horaire quand je me suis inscrit ... Merci pour vos réponses!