Del via


Redigere arbeidstidskalendere ved hjelp av APIer

Organisasjoner må ofte opprette, redigere eller slette arbeidstid programmatisk i kalenderne for ressursene. Kalendere viser arbeidstid, fritid og pauser som bestemmer tilgjengeligheten til en ressurs når arbeid planlegges. Disse ressursene må planlegges i bestemte tidssoner, kan eller kan ikke observere tidspunkt selskapet holder stengt, og kan ha variabel kapasitet. Hvis du vil ha informasjon om hvordan du definerer arbeidstid i Field Service-appen, kan du gå til Legge til arbeidstid i en ressurs som kan reserveres.

I tillegg til å bruke Field Service-appen kan du bruke følgende APIer til å endre kalenderregler for valgte oppføringstyper:

  • API-en for lagring av kalender (msdyn_SaveCalendar) oppretter eller oppdaterer kalenderoppføringer for en valgt enhet basert på inndataene som ble sendt som forespørsel.
  • API-en Slett kalender (msdyn_DeleteCalendar) sletter alle interne kalenderregler for en kalender på en valgt enhet, basert på inndataene som ble sendt som forespørsel.
  • API V2 for Lag/Slett kalender API (msdyn_SaveCalendar/msdyn_DeleteCalendar, send flagg UseV2) tillater flere regelmessigheter i arbeidstimer samtidig ved å endre logikken for overlappende regler. Hvis du vil ha mer informasjon, kan du se Hva skjer hvis det finnes overlappende regler?.

Dette artikkelen inneholder detaljer om hver API sine inndata (forespørsel) og utdata (svar) og deres bruk, med eksempler.

Forutsetning

  • Plattformversjon 9.2.21055 eller nyere med Universal Resource Scheduling versjon 3.12.45.7.
  • Bruk av en av følgende oppføringstyper:
    • Ressurs som kan reserveres (bookableresource)
    • Ressurskrav (msdyn_resourcerequirement)
    • Arbeidstimemal (msdyn_workhourtemplate)
    • Prosjekt (msdyn_project)

Hendelsestyper for kalender

Når du oppretter en kalender, definerer du hvor mange ganger en arbeidstidstype skjer – én gang, hele dagen, hver uke eller hver dag, eller du kan opprette en egendefinert regelmessighet. Hvis du vil ha mer informasjon om disse kalenderhendelsene, kan du gå til eksemplene senere i denne artikkelen.

Forekomst

Når en arbeidstidstype bare forekommer én gang i enhetens kalender, kalles den en forekomst.

Tenk deg for eksempel en ressurs som arbeider fra 05:00 til 10:00 den 26. mai 2021. Disse APIene støtter bare denne typen forekomster, som starter og slutter i løpet av samme dag. Tenk deg for eksempel en ressurs som arbeider fra 26. mai 2021 kl 20:00 PM til 10:00 27. mai 2021. Du kan ikke opprette denne forekomsten ved å bare bruke ett kall fra msdyn_SaveCalendar-API-et, du må gjøre to kall i stedet.

Heldagsforekomst

Når en arbeidstidstype forekommer for én eller flere hele dager, fra midnatt (00:00) av startdatoen, er det en heldagsforekomst. Maksimal varighet for en heldagsforekomst er fem år.

En ressurs fungerer for eksempel hele dagen fra 26. mai 2021 til slutten av dagen 30. mai 2021. Dette er en heldagsforekomst som varer i fem dager.

Ukentlig regelmessighet

Når en arbeidstidstype forekommer samtidig på valgte dager i hver uke, kalles den en ukentlig regelmessighet.

En ressurs arbeider for eksempel fra 05:00 til 10:00 hver mandag, tirsdag og onsdag.

Daglig regelmessighet

Når en arbeidstidstype forekommer samtidig hver dag, kalles den en daglig regelmessighet.

En ressurs arbeider for eksempel fra 05:00 til 10:00 hver dag i uken.

Egendefinert regelmessighet

Når en arbeidstidstype forekommer på bestemte tidspunkt på bestemte ukedager, men klokkeslettene er forskjellige på forskjellige dager, kan du opprette en egendefinert regelmessighet.

En ressurs arbeider for eksempel fra 05:00 til 10:00 hver mandag og 12:00 til 15:00 hver onsdag.

Typer arbeidstid

Disse APIene støtter opprettings-, oppdaterings- og sletteoperasjoner for følgende arbeidstidstyper:

Arbeidstid

Arbeidstid er tider der en enhet er tilgjengelig for å utføre arbeid.

Ved hjelp av disse APIene kan du gjøre følgende:

  • Opprett, rediger eller slett en arbeidstidsforekomst.
  • Opprett, rediger eller slett en daglig arbeidstidsforekomst.
  • Opprett, rediger eller slett en ukentlig arbeidstidsforekomst.
  • Opprett, rediger eller slett en egendefinert arbeidstidsforekomst.
  • Opprett, rediger eller slett heldags arbeidstid.
  • Opprett eller rediger kapasitet i arbeidstiden.
  • Rediger én enkelt arbeidstidsforekomst i en regelmessighet.
  • Rediger denne forekomsten og følgende forekomster i en regelmessighet.
  • Endre en arbeidstidsforekomst til en regelmessighet.
  • Endre tidssonen til kalenderregelen.

Ved hjelp av denne APIen kan du ikke gjøre følgende:

  • Slette én enkelt arbeidstidsforekomst fra en regelmessighet.
  • Opprette en forekomst som strekker seg over 24 timer, men som ikke starter og slutter ved midnatt (00:00).
  • Opprette, redigere eller slette en heldags regelmessighet.

Fritid

Dette er tider da enheten ikke er tilgjengelig for arbeid på grunn av en uspesifisert grunn.

Ved hjelp av disse APIene kan du gjøre følgende:

  • Opprett eller rediger fritid.
  • Opprett eller rediger en fritidsforekomst.
  • Endre tidssonen til kalenderregelen.

Ved hjelp av disse APIene kan du gjøre følgende:

  • Opprett eller rediger en fritidsregelmessighet.

Pause

Dette er tider på en arbeidsdag der en enhet tar en pause og ikke er tilgjengelig for arbeid. Pauser kan ikke eksistere uten arbeidstid – de må skje mellom to arbeidstider i løpet av en dag. Pauser kan ikke overlappe med arbeidstiden.

Ved hjelp av disse APIene kan du gjøre følgende:

  • Opprett eller rediger pauser i arbeidstiden.

Ved hjelp av disse APIene kan du gjøre følgende:

  • Slett bare pauser fra en forekomst eller regelmessighet i arbeidstiden.

Fritid

Dette er tider da en enhet ikke er tilgjengelig for arbeid på grunn av en ferie. Årsaken til fritiden kan angis.

Ved hjelp av disse APIene kan du gjøre følgende:

  • Opprett eller rediger fritid med en etikett.
  • Endre tidssonen til kalenderregelen.

Ved hjelp av disse APIene kan du gjøre følgende:

  • Opprett eller rediger fritidsregelmessighet.

Selskapet holder stengt

Du kan opprette enheter for tidspunkt selskapet holder stengt som definerer tidspunktene virksomheten er lukket. Ved hjelp av msdyn_SaveCalendar-API-et kan du angi at alle enheter skal overholde eller ignorere organisasjonens tidspunkt selskapet holder stengt, ved hjelp av den valgfrie ObservClosure-nøkkelen. Når de er satt til å observere disse nedleggelsene, vil enhetene ikke være tilgjengelige for arbeid.

Lage kalender-API

Inndata

Forespørselen inneholder bare ett attributt – CalendarEventInfo, som er en String-type. Den inneholder flere andre attributter som alle er innebygd i denne strengen.

Merk

I tabellen nedenfor representerer Type formatet som forventes å komme med en vellykket forespørsel. Hele forespørselen analyseres imidlertid som en enkelt streng.

CalendarEventInfo

Navn Type Obligatorisk Beskrivelse
EntityLogicalName String Ja Denne nøkkelen beskriver enheten som APIen kalles fra. Kalenderen for denne enheten skal opprettes eller redigeres.
CalendarId GUID Ja Denne nøkkelen inneholder kalender-IDen som er knyttet til enheten som er beskrevet ovenfor. Når noen av disse enhetene opprettes, opprettes det også automatisk en kalenderoppføring. Disse APIene redigerer denne kalenderposten ved å legge til regler eller redigere eksisterende regler.
RulesAndRecurrences RulesAndRecurrences Ja Denne nøkkelen er en matrise, og hvert element inneholder flere attributter som er oppført i tabellen i den følgende delen. Størrelsen på matrisen må være minst én.
IsVaried Boolean No Denne nøkkelen bør settes til true for egendefinerte scenarier for regelmessighet.
IsEdit Boolean No Denne nøkkelen bør settes til true for redigering av eksisterende regler.
TimeZoneCode Integer No Denne nøkkelen tar en heltallsverdi som tilsvarer tidssonen for kalenderreglene. For tilordningen går du til Tidssonekoder senere i denne artikkelen. Standardverdien er brukerens tidssone.
InnerCalendarDescription String No Denne nøkkelen er bare nødvendig hvis kalenderregelen er for fritid. Den bør inneholde årsaken til fritiden.
ObserveClosure Boolean No Denne nøkkelen er spesifikk for regelmessigheter. Hvis den er satt til true, vil enheten observere tidspunkt selskapet holder stengt.
RecurrenceEndDate Date/klokkeslett No Denne nøkkelen er spesifikk for regelmessigheter. Den inneholder sluttdatoen for regelmessigheten. Hvis tidsstempelet er 08:00:00 eller tidligere, er sluttdatoen for regelmessighet én dag før den angitte datoen. Hvis tidsstempelet er 08:00:01 eller senere, respekteres datoen som den er. Standardverdien for forekomster er null. Standardverdien for regelmessigheter er 30. des 9999 kl. 23:59:59 UTC.
RecurrenceSplit Boolean No Denne nøkkelen er spesifikk for regelmessigheter. Den er satt til true for å redigere "Denne og følgende forekomster" av en regelmessighet.
ResourceId GUID No Denne nøkkelen inneholder SystemUserId eller ResourceId og skal bare sendes når enheten som er knyttet til dette kallet, er en ressurs av typen SystemUser som kan reserveres. Dette er nødvendig for å se etter OwnCalendar-rettigheter i kategorien Servicebehandling.
UseV2 Flagg No Hvis du sender dette flagget, aktiveres V2-versjonen av arbeidstidskalenderen med en forbedret overlappende regellogikk som tillater flere regelmessigheter. Hvis du vil ha mer informasjon, kan du se Hva skjer hvis det finnes overlappende regler?.

RulesAndRecurrences

Name Type Kreves Bekrivelse
Regler Regler Ja Denne nøkkelen er en matrise, og hvert element inneholder flere attributter som er oppført i tabellen i den følgende delen. Størrelsen på matrisen må være minst én.
RecurrencePattern String No Denne nøkkelen er spesifikk for regelmessigheter. Vi støtter for øyeblikket bare dette mønsteret: FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY kan endres til å ta med færre dager, men FREQ og INTERVAL kan imidlertid ikke endres.
InnerCalendarId GUID No Denne nøkkelen er spesifikk for redigering. Hvis en regel redigeres, må InnerCalendarId sendes her. Hvis en InnerCalendarId ikke sendes, oppretter API en ny regel selv om IsEdit-nøkkelen er satt til Sann.
Handling Integer No Denne nøkkelen er spesifikk for egendefinerte regelmessigheter. Hvis det blir opprettet eller redigert en egendefinert regelmessighet, må du legge inn ett av følgende numre:
  • (1) Legge til en dag i regelmessigheten
  • (2) Slette en dag fra regelmessighet
  • (3) Redigere bare start- eller sluttdatoer eller -klokkeslett, eller redigere kapasitet
  • (4) Redigere alt annet enn nøklene nevnt i (3)

Regler

Navn Type Obligatorisk Beskrivelse
StartTime Date/klokkeslett Ja Denne nøkkelen inneholder en dato/klokkeslett-oppføring i ISO-format. Eksempel: \"2021-05-15T12:00:00.000Z\". Tidsdelen avgjør starttiden for arbeidstiden i den tidligere angitte tidssonen. Datodelen avgjør startdatoen for arbeidstiden. Her er 15. mai 2021 datoen for forekomsten eller startdatoen for regelmessigheten. Hvis mønsteret var BYDAY=TU,WE, men 15. mai (en lørdag) er datoen, oppretter eller redigerer API-et automatisk regler for alle tirsdager og onsdager etter 15. mai. Dette er tilfellet der regelen ikke trenger å ha datoen som tilsvarer dagen.
EndTime Date/klokkeslett Ja Denne inneholder en dato/klokkeslett-oppføring i ISO-format. Eksempel: \"2021-05-15T12:00:00.000Z\". Tidsdelen avgjør sluttiden for arbeidstiden i den tidligere angitte tidssonen. Datodelen inneholde samme dato som datodelen i StartTime. De eneste unntakene er:
  • Hvis det skjer hele dagen. I dette tilfellet skal datodelen avspeile sluttdatoen for heldagsforekomsten.
  • Forekomsten slutter på slutten av dagen, det vil si 12:00 neste dag. I dette tilfellet må datoen være \"2021-05-16T00:00:00.000Z\". Hvis du vil angi sluttdatoen for regelmessigheten, endrer du attributtet RecurrenceEndDate.
WorkHourType Integer Ja Denne nøkkelen inneholder et tall som tilsvarer ett av følgende alternativer:
  • (0) Arbeid
  • (1) Pause
  • (2) Fritid
  • (3) Fritid
Innsats Integer No Denne nøkkelen avgjør enhetskapasiteten. Den må være et heltall. Standardverdien er 1.

Utdata

Dette POST API-et oppretter eller endrer kalenderregeloppføringer for den valgte enheten. Det gir også følgende utdata:

Navn Type Beskrivelse
InnerCalendarIds String En matrise med InnerCalendarIds-GUIDer som er et resultat av POST-operasjonen.

Slett kalender-API

Inndata

Navn Type Obligatorisk Beskrivelse
EntityLogicalName String Ja Dette feltet beskriver enheten som kalenderreglene skal slettes for.
InnerCalendarId GUID Ja Dette feltet beskriver IDen for InnerCalendarId som må slettes. Hvis det er flere InnerCalendarIds knyttet til én enkelt regel, er én ID tilstrekkelig her. Mer informasjon om indre og ytre kalendere: Kalenderenheter
CalendarId GUID Ja Dette feltet beskriver CalendarId for enheten.
IsVaried Boolean No Dette feltet er spesifikt for regelmessigheter, og angis til yes hvis en egendefinert regelmessighetsregel blir slettet.
UseV2 Flagg No Hvis du sender dette flagget, aktiveres V2-versjonen av arbeidstidskalenderen med en forbedret overlappende regellogikk som tillater flere regelmessigheter. Hvis du vil ha mer informasjon, kan du se Hva skjer hvis det finnes overlappende regler?.

Utdata

Dette POST API-et sletter kalenderregeloppføringer for den valgte enheten. I tillegg gir det følgende utdata.

Navn Type Beskrivelse
InnerCalendarIds String En matrise med InnerCalendarIds-GUIDer som er et resultat av POST-operasjonen.

Last inn kalender-API

Inndata

Navn: msdyn_LoadCalendars
Type: Handling
Beskrivelse: Returnerer kalendere for angitt LoadCalendarsInput.

Navn: msdyn_LoadCalendars.LoadCalendarsInput
Type: Parameter
Beskrivelse: streng i følgende JSON-format:

{
   StartDate: string,
   EndDate: string,
   CalendarIds: string[]
}

Navn: msdyn_LoadCalendarsResponse
Type: ComplexType
Beskrivelser: Inneholder svaret fra handlingen msdyn_loadCalendars.

Navn: msdyn_LoadCalendarsResponse.CalendarEvents
Type: Egenskap
Beskrivelse: streng i følgende JSON-format:

{
"calendarId": CalendarEventSlot[]
}

Der calendarId er en riktig GUID som representerer GUID for kalenderen og CalendarEventSlot er et objekt med følgende format:

{
  CalendarId: string,
  InnerCalendarId: string,
  Start: string,
  End: string,
  Effort: double
}

Slik kaller du opp API-ene

Disse API-ene kan kalles opp i leseren.

  1. Åpne webleseren og organisasjonen du vil gjøre endringer i kalenderen i.
  2. Åpne Utviklerverktøy (velg Ctrl+Shift+I i Microsoft Edge, velg F12 i Google Chrome).
  3. Skriv inn følgende funksjon i konsollen etter at [org-name] er erstattet med organisasjonsdetaljer (for eksempel http://your_org.crm.dynamics.com):
       function CalendarAction(action, data) {
           let req = new XMLHttpRequest();
           req.open("POST", "**[org-name]**/api/data/v9.0/" + action, true);
           req.setRequestHeader("OData-MaxVersion", "4.0");
           req.setRequestHeader("OData-Version", "4.0");
           req.setRequestHeader("Accept", "application/json");
           req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
           req.setRequestHeader("Prefer", 'odata.include-annotations="*"');
           req.onreadystatechange = function () {
               if (this.readyState === 4) {
                   req.onreadystatechange = null;
                   if(this.status == 200) {
                       console.log(JSON.parse(this.response));
                   } else {
                       console.error(JSON.parse(this.response));
                   }
               }
           };
           req.send(JSON.stringify(data));
       }
  1. Når denne funksjonen er definert, kan du kalle den for å opprette, redigere eller slette kalendere ved hjelp av API-ene. Skriv inn følgende oppkall for å lagre en kalender:
       CalendarAction("msdyn_SaveCalendar",{
           "CalendarEventInfo":"{
               \"CalendarId\":\"df0857c4-50f5-4576-8e89-f236670ad2d5\",
               \"EntityLogicalName\":\"bookableresource\",
               \"TimeZoneCode\":92,\"StartDate\":\"2021-04-25T00:00:00.000Z\",
               \"IsVaried\":false,
               \"RulesAndRecurrences\":[{
                   \"Rules\":[{
                       \"StartTime\":\"2021-04-25T08:00:00.000Z\",
                       \"EndTime\":\"2021-04-25T17:00:00.000Z\",
                       \"Duration\":540,
                       \"Effort\":1
                   }]
               }]
           }"
       })

Skriv inn følgende oppkall for å slette en kalender:

       CalendarAction("msdyn_DeleteCalendar", {
           "CalendarEventInfo":"{
               \"CalendarId\":\"8390358c-77d0-430f-b176-f27adadac8eb\",
               \"EntityLogicalName\":\"bookableresource\",
               \"InnerCalendarId\":\"cf508c2c-5c55-485c-be1e-d2ebcb385441\"
           }"
       })
       

Se delen nedenfor for å få eksempler på hvordan du foretar ulike samtaler basert på dine behov. Bytt ut action for funksjonskallet i trinn 3 med msdyn_SaveCalendar eller msdyn_DeleteCalendar, og erstatt data med den relevante CalendarEventInfo.

Se også følgende skjermbilde for en Power Automate-oppfordring til msdyn_SaveCalendar-handling: Power Automate-oppfordring for msdyn_SaveCalendar-handling.

Eksempelscenarier for API-bruk

La oss gå gjennom noen scenarier som du kan bruke disse API-ene for.

Bob og Tim er sjåfører for leveringsbiler for Contoso Enterprises i Bellevue, Washington. Fordelingsansvarlig, Debbie, er ansvarlig for å gjøre endringer i arbeidstidskalenderen. Debbie gjør disse endringene ved hjelp av API-ene msdyn_SaveCalendar og msdyn_DeleteCalendar.

Opprett en arbeidstidsforekomst.

Bob skal kjøre rundt for å levere pakker fra 09:00 til 17:00 15. mai 2021. Debbie bruker msdyn_SaveCalendar-API-en.

Forespørsel

{
 "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-15T09:00:00.000Z\",\"EndTime\":\"2021-05-15T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}]}]}"
}

Response

{
  "InnerCalendarIds": "[\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"]"
}

Rediger en arbeidstidsforekomst.

Bobs tidsplan endres deretter til å starte kl. 10:00 15. mai 2021. Debbie bruker msdyn_SaveCalendar-API-en.

Forespørsel

{
 "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"IsEdit\":\"true\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-15T10:00:00.000Z\",\"EndTime\":\"2021-05-15T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}], \"InnerCalendarId\":\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"}]}"
}

Response

{
  "InnerCalendarIds": "[\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"]"
}

Slett en arbeidstidsforekomst.

En familiesituasjon dukker opp, og Bjørn må kansellere en hel arbeidsdag. Debbie bruker msdyn_DeleteCalendar-API-en.

Be om

{
 "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"InnerCalendarId\":\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"}"
}

Svar

{
  "InnerCalendarIds": "[\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"]"
}

Opprette en daglig arbeidstidsforekomst

Fra 20. mai 2021 beslutter Bjørn seg for å jobbe med Contoso hele uken fra 08:00 til 17:00, og slutter å jobbe der 15. juli 2021.

Be om

{
 "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RecurrenceEndDate\":\"2021-07-15T00:00:00.000Z\",\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-20T08:00:00.000Z\",\"EndTime\":\"2021-05-20T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA\"}]}"
}

Svar

{
  "InnerCalendarIds": "[\"20f6cfa7-cfbe-eb11-a81d-000d3a6e4359\"]"
}

Redigere regelmessighet i arbeidstid med økt kapasitet

Bjørn bestemmer seg for å slutte å jobbe hele uken 15. juni 2021 for å ta en pause. Inntil da vil Bjørn fortsette helukesplanen slik den tidligere er godtatt. Debbie gjør disse endringene ved hjelp av API-en msdyn_SaveCalendar.

Forespørsel

{
 "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RecurrenceEndDate\":\"2021-06-15T00:00:00.000Z\",\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-20T08:00:00.000Z\",\"EndTime\":\"2021-05-20T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"InnerCalendarId\":\"20f6cfa7-cfbe-eb11-a81d-000d3a6e4359\",\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA\"}]}"
}

Response

{
  "InnerCalendarIds": "[\"867a2461-cdbe-eb11-a81d-000d3a6e4359\"]"
}

Opprette en ukentlig arbeidstidsforekomst

Fra 16. juni 2021 arbeider Bjørn fra 08:00 til 17:00 på onsdager og fredager, og tar en pause fra 12:00 til 12:30 for lunsj. Debbie bruker API-en msdyn_SaveCalendar, men gjør en feil og planlegger pausen fra 12:00 til 13:00.

Be om

{
  "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-06-16T08:00:00.000Z\",\"EndTime\":\"2021-06-16T12:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}, {\"StartTime\":\"2021-06-16T12:00:00.000Z\",\"EndTime\":\"2021-06-16T13:00:00.000Z\",\"Effort\":null,\"WorkHourType\":1}, {\"StartTime\":\"2021-06-16T13:00:00.000Z\",\"EndTime\":\"2021-06-16T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=WE,TH,FR\"}]}"
}

Svar

{
  "InnerCalendarIds": "[\"1f894441-d0be-eb11-a81d-000d3a6e4359\"]"
}

Redigere en pause fra en ukentlig arbeidstidsforekomst

Debbie korrigerer deretter feilen og endrer pausen, slik at den inntreffer fra 12:00 til 12:30, ved hjelp av API-en msdyn_SaveCalendar.

Forespørsel

{
  "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"IsEdit\":\"true\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-06-15T08:00:00.000Z\",\"EndTime\":\"2021-06-15T12:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}, {\"StartTime\":\"2021-06-15T12:00:00.000Z\",\"EndTime\":\"2021-06-15T12:30:00.000Z\",\"Effort\":null,\"WorkHourType\":1}, {\"StartTime\":\"2021-06-15T12:30:00.000Z\",\"EndTime\":\"2021-06-15T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"InnerCalendarId\":\"1f894441-d0be-eb11-a81d-000d3a6e4359\",\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=WE,TH,FR\"}]}"
}

Response

{
  "InnerCalendarIds": "[\"1f894441-d0be-eb11-a81d-000d3a6e4359\"]"
}

Opprette en egendefinert arbeidstidsforekomst

Tim arbeider for Contoso på mandager fra 08:00 til 17:00 og onsdager fra 11:00 til 15:00. Tim startet i Contoso 16. mai 2021. Debbie bruker msdyn_SaveCalendar-API-en til å opprette Tims arbeidstid.

Forespørsel

{
"CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"IsVaried\":true,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-16T08:00:00.000Z\",\"EndTime\":\"2021-05-16T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":1,\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=MO\"},{\"Rules\":[{\"StartTime\":\"2021-05-16T11:00:00.000Z\",\"EndTime\":\"2021-05-16T15:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":1,\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=WE\"}]}"
}

Response

{
  "InnerCalendarIds": "[\"9fb8c199-d1be-eb11-a81d-000d3a6e4359\", \"a2b8c199-d1be-eb11-a81d-000d3a6e4359\"]"
}

Redigere en egendefinert arbeidstidsforekomst

Tims tidsplan endres deretter til en arbeidstid fra onsdager 17:00 til 20:00 og torsdag 10:00 til 12:00. Mandag fjernes fra tidsplanen til Tim. Debbie bruker msdyn_SaveCalendar-API-en til å oppnå dette.

Be om

{
"CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"IsVaried\":true,\"IsEdit\":true,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-16T08:00:00.000Z\",\"EndTime\":\"2021-05-16T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":2,\"InnerCalendarId\":\"9fb8c199-d1be-eb11-a81d-000d3a6e4359\",\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=MO\"},{\"Rules\":[{\"StartTime\":\"2021-05-16T17:00:00.000Z\",\"EndTime\":\"2021-05-16T20:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":3,\"InnerCalendarId\":\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\",\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=WE\"}, {\"Rules\":[{\"StartTime\":\"2021-05-16T10:00:00.000Z\",\"EndTime\":\"2021-05-16T12:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":1,\"InnerCalendarId\":null,\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=TH\"}]}"
}

Svar

{
  "InnerCalendarIds": "[\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\", \"942bda0f-d3be-eb11-a81d-000d3a6e4359\"]"
}

Redigere én arbeidstidsforekomst i en regelmessighet

26. mai 2021 kan Tim bare jobbe fra 13:00 til 19:00. Debbie bruker msdyn_SaveCalendar-API-en her.

Be om

{
 "CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-26T13:00:00.000Z\",\"EndTime\":\"2021-05-26T19:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}], \"InnerCalendarId\":\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\"}]}"
}

Svar

{
  "InnerCalendarIds": "[\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\"]"
}

Slette en egendefinert arbeidstidsforekomst

Tim har bestemt seg for å forlate firmaet og må slette hele tidsplanen. Debbie bruker msdyn_DeleteCalendar-API-en her.

Be om

{
 "CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"InnerCalendarId\":\"34d2210c-9fb6-eb11-a820-000d3afb1dba\",\"IsVaried\":true}"
}

Svar

{
  "InnerCalendarIds": "[\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\", \"942bda0f-d3be-eb11-a81d-000d3a6e4359\"]"
}

Opprette fritid

Tim tar tre fridager for en familieferie med start 9. juni 2021.

Forespørsel

{
 "CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"InnerCalendarDescription\":\"Family Vacation\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-06-15T00:00:00.000Z\",\"EndTime\":\"2021-06-17T00:00:00.000Z\",\"Effort\":1,\"WorkHourType\":3}]}]}"
}

Response

{
  "InnerCalendarIds": "[\"266c434e-d5be-eb11-a81d-000d3a6e4359\"]"
}

Opprette heldags arbeidstid

Tim har et 72-timers skift som starter 20. mai 2021. Debbie bruker msdyn_SaveCalendar-API-en til å opprette Tims arbeidstid.

Be om

{
 "CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-20T00:00:00.000Z\",\"EndTime\":\"2021-05-22T00:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}]}]}"
}

Svar

{
  "InnerCalendarIds": "[\"6e160a8e-d5be-eb11-a81d-000d3a6e4359\"]"
}

Vanlige spørsmål om

Jeg får feilmeldingen Starttidspunktet kan ikke være senere eller likt sluttidspunktet.

Kontroller at det ikke finnes overlappinger i tidsluken for de forskjellige kalenderreglene. Kontroller datoene for å forsikre deg om at StartTime ikke er senere enn EndTime. Kontroller også at klokkeslettene er i 24-timers format.

Kan API-ene brukes til å oppdatere enheten "Arbeidstidsmaler"?

Ja, du kan bruke denne API-en til å opprette og oppdatere arbeidstidsmaler i tillegg til arbeidstimer for ressurser.

Jeg får feilmeldingen Det oppstod en feil under deserialisering av objektet av typen Microsoft.Dynamics.UCICalendar.Plugins.SaveCalendarContract+CalendarEventInfo. Inndatakilden er ikke riktig formatert.
or
Forventer tilstand 'Element'. Fant 'Tekst' med navnet namespace.

Kontroller at strengen er riktig analysert. Det kan mangle desimaler, komma eller semikolon.

Feilmeldingen Ugyldig mønster for regelmessighet. Se dokumentasjonen for støttede mønstre."

Vi støtter for øyeblikket bare dette mønsteret: FREQ=DAILY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY kan endres til å ta med færre dager, men FREQ og INTERVAL kan imidlertid ikke endres. Kontroller at det ikke er mellomrom i mønsteret.

Hvordan får vi informasjon om CalendarId og InnerCalendarId for ressursen?

Kan CalendarId hentes fra ressursattributter. Gjør dette kallet for å få denne informasjonen: [org-url]/api/data/v9.1/bookableresources([bookableresourceGUID]).

Eksempel på forrige samtale er [org-url]/api/data/v9.1/bookableresources(7bb0224b-6712-ec11-94f9-000d3a6d888e).

Kan InnerCalendarId hentes fra kalenderattributter. Gjør dette kallet for å få denne informasjonen: [org-url]/api/data/v9.1/calendars([calendar-id-from-above-call])?$expand=calendar_calendar_rules.

Eksempel på forrige samtale er [org-url]/api/data/v9.1/calendars(02481736-1b6a-4d49-9ebd-a5bd041c1c99)?$expand=calendar_calendar_rules.

Hva skjer hvis det finnes overlappende regler?

Reglene faller under et par ulike rangeringer:

  • Rangering 1 – daglig hendelse (arbeid/ikke-arbeid) og fritidsforekomst.
  • Rangering 0 – ukentlig regelmessighet (arbeid/ikke-arbeid).

V2 overlappende regler

  • Reglene for rangering 1 har høyere prioritet enn reglene for rangering 0. Hvis det er to regler (én av hver rangering) på samme dag, prioriteres den daglige forekomsten eller fritidsforekomsten over den ukentlige regelmessigheten.
  • Når det finnes flere regler for Tangering 0 i samme datointervall:
    • Hvis tidspunktene ikke overlapper, blir begge igjen i kalenderen.
    • Hvis tidspunktene krysses, vil regelen som sist ble opprettet/endret, være den som vurderes for ressursens kalender. Alle andre regler for kryssing i datoperioden fjernes. Hvis noen regler for rangering 0 har kryssingspunkter på noen datoer, men ikke på andre, blir regelen lagt inn for å beholde de ikke-kryssende delene, mens de kryssende delene fjernes.

Eksempler på virkemåte for V2-kalenderen:

Eksempel 1 – Gjenta arbeidstimer: Overlappende datoer uten overlappende dager/klokkeslett

En tekniker arbeider for et gitt tidsrom om morgenen, ettermiddagen eller natten på ulike dager.

  1. Opprett en første repeterende kalenderregel for et bestemt datointervall. Eksempel: Gjenta man, tir; 1.1-4.1; 8:00-17:00 ET.

  2. Opprett en ny, gjentakende kalenderregel for et tidsintervall som krysser, samtidig som du sørger for at arbeidstimene ikke overlapper med de foregående dagene eller klokkeslettene. Eksempel: Gjenta ons, tors; 1.1-4.1; 8:00-17:00 ET eller Gjenta man, tirs; 1.1-4.1; 5:00-20:00 ET .

Resultat: Begge kalenderreglene forblir og eksistere sammen med hverandre.

Eksempel 2 – Gjenta arbeidstimer: Noen overlappende datoer, med alle overlappende dager og annen regel som starter/slutter før eller etter den første regelen

En tekniker får en ny arbeidstidsplan som erstatter noen uker med den gamle tidsplanen. Ved kontrakt fungerer de alltid de samme dagene hver uke.

  1. Opprett en første repeterende kalenderregel for et bestemt datointervall. Eksempel: Gjenta man, tir; 2.1-4.1; 8:00-17:00 ET.

  2. Opprett en ny, regelmessig kalenderregel for en overlappende datointervall, der alle dager har overlappende arbeidstimer. Velg start-/sluttdatoer for denne nye regelen som er før eller etter start-/sluttdatoen for den første regelen. Eksempel: Gjenta man, tir; 3.1-5.1; 13:00-20:00 ET.

Resultat: Den første regelen blir avkortet for å få plass til start-/sluttdatoen for den andre regelen. Eksempel: Gjenta man, tirs; 2.1-2.28; 8:00-17:00 ET OG Gjenta man, tirs; 3.1-5.1; 13:00-20:00 ET .

Eksempel 3 – Gjenta arbeidstimer: Alle overlappende datoer med noen overlappende dager/klokkeslett

Teknikeren er kontraktarbeider i en fast 2-måneders periode. De har godtatt å ta på seg ekstra arbeid noen dager. De vil endre tirsdagens arbeidstid til et tidligere/senere tidspunkt.

  1. Opprett noen repeterende kalenderregler for et bestemt datointervall. Eksempel: Gjenta man, tirs; 2.1-4.1; 8:00-24:00 ET OG Gjenta tirs, ons; 2.1-4.1; 13:00-17:00 ET .

  2. Opprett en ny repeterende kalenderregel for det samme datointervallet. Velg dager/klokkeslett som delvis overlapper med de opprinnelige reglene. Eksempel: Gjenta tirs, tors, 2.1-4.1; 10:00-14:00 ET.

Resultat: Den nye regelen overskriver den gamle der overlappingen er, og la de andre være uendret. Eksempel: Gjenta man; 2.1-4.1; 8:00-24:00 ET OG Gjenta ons; 2.1-4.1; 13:00-17:00 ET OG Gjenta tirs, tors; 2.1-4.1; 10:00-14:00 ET.

Eksempel 4 – Gjentatt arbeidstid: Nye regeldatoer i den gamle regelen, noen overlappende dager/klokkeslett

En reparatør arbeider 8:00-17:00 man-fre hver uke. Bare i to uker skal de håndtere et nødprosjekt hver man-ons med forskjellig arbeidstid fra 06:00 til 18:00.

  1. Opprett en første repeterende kalenderregel for et bestemt datointervall. Eksempel: Gjenta man, tirs, ons, tors, fre; 1.1-Ingen sluttdato; 8:00-17:00.

  2. Opprett en annen gjentagende kalenderregel i datointervallet ovenfor, velg arbeidstimer som overlapper noen dager. Eksempel: Gjenta man, tir, ons; 5.1-5.14; 6:00-18:00 ET.

Resultat: Kalenderen må ha fire repeterende regler innen denne øvelsen er slutt:

  • avkort den første regelen til startdatoen for den andre regelen
  • den andre kalenderregelen
  • opprette en ny regel som ligner på den første regelen, men med datoene for den andre regelen for de ikke-overlappende dagene
  • avkortet den første regelen til å starte fra sluttdatoen for den andre regelen, uten sluttdato

Eksempel: Gjenta man, tirs, ons, tors, fre; 1.1-4.30; 8:00-17:00 ET OG Gjenta man, tir, ons; 5.1-5.14; 6:00-18:00 ET OG Gjenta tor, fre, 5.1-5.14; 8:00-17:00 ET OG Gjenta man, tirs, ons, tors, fre; 5.15-Ingen sluttdato; 8:00-17:00 ET

Eksempel 5 – Arbeidstimer som ikke gjentar seg (forekomst, regel for rangering 1)

En tekniker har en rekke sammenhengende teamdager, som har forrang i alle andre arbeidstimeforekomster for dagen.

  1. Opprett en repeterende kalenderregel for et bestemt datointervall. Eksempel: Gjenta man, tirs, ons, tors, fre; 1.1-Ingen sluttdato; 8:00-17:00.

  2. Opprett en ikke-gjentatt kalenderregel i datointervallet ovenfor. Velg arbeidstimer som overlapper noen dager. Eksempel: Ikke-repeter; 6.21; 7:00-13:00 ET.

Resultat: Kalenderen må ha 1 ikke-repeterende regel (forekomst) innen slutten av denne øvelsen. Den ikke-repeterende regelen overstyrer den overlappende gjentagende hendelsen for hele dagen. Eksempel: Gjenta man, tir, ons, tor, fre; 1.1-Ingen sluttdato unntatt 6.21; ikke-gjentakelse; 6.21; 7:00-13:00 ET.

V1 overlappende regler

  • Reglene for rangering 1 har høyere prioritet enn reglene for rangering 0. Hvis det er to regler (én av hver rangering) på samme dag, prioriteres den daglige forekomsten eller fritidsforekomsten over den ukentlige regelmessigheten.
  • Hvis det finnes to regler med samme rangering, vil regelen som sist ble opprettet eller endret, være den som vurderes for ressursens kalender.
  • Husk at heldagsforekomster har rangering 1, så du bør vurdere å endre det til en ukentlig regelmessighet for å kunne legge til arbeidstimer som forekomster og få dem til å bli respektert.
  • Når det finnes en arbeidstime og det opprettes en fritidsforekomst som overlapper den, deles reglene på en måte som sikrer at fritid blir respektert, og eventuell gjenværende tid som arbeidstimer blir som de er. Hvis det for eksempel er arbeidstimer fra 08:00 til 17:00 21. september, og en fritidsforekomst legges til fra 15:00 til 17:00 for 21. september, vil dette bli løst som arbeidstimer som 08:00 til 15:00 og fri fra 15:00 til 17:00. Hvis reglene imidlertid ble opprettet i motsatt rekkefølge (fridager opprettet først, og deretter ble arbeidstimer opprettet) uavhengig av tidslukene, velges bare arbeidstimen på nytt. Fridager blir overstyrt.

Tidssonekoder

Enum Tidssone
0 (GMT-12:00) Internasjonal datolinje, vest
1 (GMT+13:00) Samoa
2 (GMT-10:00) Hawaii
3 (GMT-09:00) Alaska
4 (GMT–08:00) Stillehavskysten (USA og Canada)
5 (GMT-08:00) Baja, California
6 (GMT-11:00) Coordinated Universal Time-11
7 (GMT-10:00) Aleutian-øyer
8 (GMT-09:30) Marquesasøyene
9 (GMT-09:00) Coordinated Universal Time-09
10 (GMT–07:00) Rocky Mountains (USA og Canada)
11 (GMT-08:00) Coordinated Universal Time-08
12 (GMT-07:00) Chihuahua, La Paz, Mazatlan
15 (GMT-07:00) Arizona
20 (GMT–06:00) Midtvesten (USA og Canada)
25 (GMT-06:00) Saskatchewan
29 (GMT-06:00) Guadalajara, Mexico by, Monterrey
33 (GMT-06:00) Sentral-Amerika
34 (GMT-06:00) Påskeøya
35 (GMT–05:00) Østkysten (USA og Canada)
40 (GMT-05:00) Indiana (øst)
43 (GMT-05:00) Haiti
44 (GMT-05:00) Havana
45 (GMT-05:00) Bogota, Lima, Quito, Rio Branco
47 (GMT-04:00) Caracas
50 (GMT-04:00) Atlanterhavskysten (Canada)
51 (GMT-05:00) Turks- og Caicosøyene
55 (GMT-04:00) Georgetown, La Paz, San Juan
56 (GMT-04:00) Santiago
58 (GMT-04:00) Cuiaba
59 (GMT-04:00) Asuncion
60 (GMT-03:30) Newfoundland
65 (GMT-03:00) Brasilia
69 (GMT-03:00) Buenos Aires
70 (GMT-03:00) Cayenne, Fortaleza
71 (GMT-03:00) Salvador
72 (GMT-03:00) Saint-Pierre-et-Miquelon
73 (GMT-03:00) Grønland
74 (GMT-03:00) Montevideo
75 (GMT-02:00) Det sentrale Atlanterhav
76 (GMT-02:00) Coordinated Universal Time-02
77 (GMT-03:00) Araguaina
80 (GMT-01:00) Azorene
83 (GMT-01:00) Cabo Verde-øyene
84 (GMT+01:00) Casablanca
85 (GMT+00:00) Dublin, Edinburgh, Lisboa, London
90 (GMT+00:00) Monrovia, Reykjavik
92 (GMT) Coordinated Universal Time
95 (GMT+01:00) Beograd, Bratislava, Budapest, Ljubljana, Praha
100 (GMT+01:00) Sarajevo, Skopje, Warszawa, Zagreb
105 (GMT+01:00) Brussel, København, Madrid, Paris
110 (GMT+01:00) Amsterdam, Berlin, Bern, Roma, Stockholm, Wien
113 (GMT+01:00) Vestlige Sentral-Afrika
115 (GMT+02:00) Chisinau
120 (GMT+02:00) Kairo
125 (GMT+02:00) Helsinki, Kiev, Riga, Sofia, Tallinn, Vilnius
129 (GMT+02:00) Amman
130 (GMT+02:00) Aten, Bucuresti
131 (GMT+02:00) Beirut
133 (GMT+02:00) Damaskus
134 (GMT+03:00) Istanbul
135 (GMT+02:00) Jerusalem
140 (GMT+02:00) Harare, Pretoria
141 (GMT+02:00) Windhoek
142 (GMT+02:00) Gaza, Hebron
145 (GMT+03:00) Moskva, St. Petersburg
150 (GMT+03:00) Kuwait, Riyadh
151 (GMT+03:00) Minsk
155 (GMT+03:00) Nairobi
158 (GMT+03:00) Bagdad
159 (GMT+02:00) Kaliningrad
160 (GMT+03:30) Teheran
165 (GMT+04:00) Abu Dhabi, Muscat
169 (GMT+04:00) Baku
170 (GMT+04:00) Jerevan
172 (GMT+04:00) Port Louis
173 (GMT+04:00) Tbilisi
174 (GMT+04:00) Izjevsk, Samara
175 (GMT+04:30) Kabul
176 (GMT+04:00) Astrakhan, Uljanovsk
180 (GMT+05:00) Jekaterinburg
184 (GMT+05:00) Islamabad, Karachi
185 (GMT+05:00) Tasjkent
190 (GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi
193 (GMT+05:45) Katmandu
195 (GMT+06:00) Astana
196 (GMT+06:00) Dhaka
197 (GMT+06:00) Omsk
200 (GMT+05:30) Sri Jayawardenepura
201 (GMT+07:00) Novosibirsk
203 (GMT+06:30) Yangon (Rangoon)
205 (GMT+07:00) Bangkok, Hanoi, Djakarta
207 (GMT+07:00) Krasnojarsk
208 (GMT+07:00) Barnaul, Gorno-Altajsk
209 (GMT+07:00) Hovd
210 (GMT+08:00) Beijing, Chongqing, Hongkong, Urumqi
211 (GMT+07:00) Tomsk
215 (GMT+08:00) Kuala Lumpur, Singapore
220 (GMT+08:00) Taipei
225 (GMT+08:00) Perth
227 (GMT+08:00) Irkutsk
228 (GMT+08:00) Ulan Bator
229 (GMT+09:00) Pyongyang
230 (GMT+09:00) Seoul
231 (GMT+08:45) Eucla
235 (GMT+09:00) Osaka, Sapporo, Tokyo
240 (GMT+09:00) Jakutsk
241 (GMT+09:00) Tsjita
245 (GMT+09:30) Darwin
250 (GMT+09:30) Adelaide
255 (GMT+10:00) Canberra, Melbourne, Sydney
260 (GMT+10:00) Brisbane
265 (GMT+10:00) Hobart
270 (GMT+10:00) Vladivostok
274 (GMT+10:30) Lord Howe-øya
275 (GMT+10:00) Guam, Port Moresby
276 (GMT+11:00) Bougainville-øya
277 (GMT+11:00) Norfolkøya
278 (GMT+11:00) Sakhalin
279 (GMT+11:00) Chokurdakh
280 (GMT+11:00) Salomonøyene, Ny Caledonia
281 (GMT+11:00) Magadan
284 (GMT+12:00) Coordinated Universal Time+12
285 (GMT+12:00) Fijiøyene
290 (GMT+12:00) Auckland, Wellington
295 (GMT+12:00) Anadyr, Petropavlovsk-Kamtsjatskij
299 (GMT+12:45) Chatham-øyer
300 (GMT+13:00) Nuku'alofa
301 (GMT -05.00) Chetumal
302 (UTC+02:00) Khartoum
303 (GMT-03:00) Punta Arenas
304 (GMT+04:00) Volgograd
305 (GMT-07:00) Yukon