Del via


Redigere arbejdstidskalendere ved hjælp af API'er

Organisationer har ofte brug for at oprette, redigere eller slette arbejdstimer via programmering i kalenderne for deres ressourcer. Kalendere viser arbejdstimer, fritid og pauser, der bestemmer tilgængeligheden af en ressource, når der planlægges arbejde. Disse ressourcer skal planlægges i bestemte tidszoner, måske eller måske ikke overholde lukketider, og de kan have variabel kapacitet. Du kan finde oplysninger om definition af arbejdstimer i appen Field Service ved at gå til Føje arbejdstimer til en ressource, der kan reserveres.

Ud over at bruge appen Field Service kan du bruge følgende API'er til at ændre kalenderregler for valgte posttyper:

  • I Gem kalender-API (msdyn_SaveCalendar) oprettes eller opdateres kalenderposter for et valgt objekt baseret på de input, der er sendt som anmodningen.
  • I API'en Slet kalender (msdyn_DeleteCalendar) slettes alle interne kalenderregler for en kalender på et valgt objekt baseret på de input, der er overført som anmodningen.
  • Gem/slet kalender-API V2 (msdyn_SaveCalendar/msdyn_DeleteCalendar, pass flag UseV2) tillader flere gentagelser af arbejdstime ved at ændre logikken for overlappende regler. Du kan finde flere oplysninger i Hvad sker der, hvis der er overlappende regler?.

Dette artikel indeholder detaljer om hvert API's input (anmodning) og output (svar) samt deres brug, sammen med eksempler.

Forudsætninger

  • Platformversion 9.2.21055 eller højere med Universal Resource Scheduling version 3.12.45.7.
  • Brug af en af følgende posttyper:
    • Ressource, der kan reserveres (bookableresource)
    • Ressourcekrav (msdyn_resourcerequirement)
    • Skabelon til arbejdstime (msdyn_workhourtemplate)
    • Projekt (msdyn_project)

Kalenderbegivenhedstyper

Når du opretter en kalender, definerer du, hvor mange gange en arbejdstimetype skal forekomme: én gang, hele dagen, hver uge eller hver dag, eller du kan oprette en brugerdefineret gentagelse. Du kan finde flere oplysninger om disse kalenderhændelser ved at gå til eksemplerne senere i denne artikel.

Forekomst

Når en arbejdstimetype kun indtræffer én gang i objektets kalender, kaldes den en forekomst.

Overvej f.eks. en ressource, der arbejder fra 5:00 til 10:00 den 26. maj 2021. Disse API'er understøtter kun denne type forekomst, som starter og slutter inden for samme dag. I forbindelse med et andet eksempel kan du overveje en ressource, der arbejder fra 26. maj 2021 kl. 20:00 til 10:00 den 27. maj 2021. Du kan ikke oprette denne forekomst ved kun at bruge ét kald til msdyn_SaveCalendar-API'en. Du skal i stedet foretage to kald.

En heldagsforekomst

Når der opstår en arbejdstimetype i en eller flere hele dage med start ved midnat (00:00) på startdatoen, er det en heldagsforekomst. En heldagsforekomst må højst vare fem år.

En ressource arbejder f.eks. hele dagen fra 26. maj 2021 til slutningen af dagen den 30. maj 2021. Dette er en heldagsforekomst, der varer fem dage.

Ugentlig gentagelse

Når en arbejdstimetype indtræffer på samme tid på udvalgte dage hver uge, kaldes det en ugentlig gentagelse.

En ressource arbejder f.eks. fra kl. 5:00 til 10:00 hver mandag, tirsdag og onsdag.

Daglig gentagelse

Når en arbejdstimetype indtræffer på samme tid hver dag, kaldes det en daglig gentagelse.

En ressource arbejder f.eks. fra kl. 5:00 til 10:00 alle ugedage.

Brugerdefineret gentagelse

Når der opstår en arbejdstimetype på bestemte tidspunkter på bestemte dage om ugen, men tidspunkterne er forskellige på forskellige dage, kan du oprette en brugerdefineret gentagelse.

En ressource arbejder f.eks. fra kl. 5:00 til 10:00 hver mandag og fra 12:00 til 15:00 hver onsdag.

Arbejdstimetyper

Disse API'er understøtter handlinger til oprettelse, opdatering og sletning af følgende typer arbejdstimer:

Arbejdstimer

Arbejdstimer er tidspunkter, hvor et objekt er tilgængeligt til at udføre arbejde.

Du kan bruge disse API'er til at gøre følgende:

  • Oprette, redigere eller slette en forekomst af en arbejdstime.
  • Oprette, redigere eller slette en daglig gentagelse af en arbejdstime.
  • Oprette, redigere eller slette en ugentlig gentagelse af en arbejdstime.
  • Oprette, redigere eller slette en brugerdefineret gentagelse af en arbejdstime.
  • Oprette, redigere eller slette heldagsarbejdstimer.
  • Oprette eller redigere kapacitet på arbejdstimer.
  • Redigere en enkelt forekomst af arbejdstimen i en gentagelse.
  • Redigere Denne og følgende forekomster i en gentagelse.
  • Ændre en arbejdstimeforekomst til en gentagelse.
  • Ændre tidszonen for kalenderreglen.

Du kan ikke bruge denne API til at gøre følgende:

  • Slette en enkelt forekomst af arbejdstimen i en gentagelse.
  • Oprette en forekomst, der spænder over 24 timer, men som ikke starter og slutter ved midnat (00:00).
  • Oprette, redigere eller slette en heldagsgentagelse.

Ikke-arbejdsrelaterede timer

Det er tidspunkter, hvor objektet ikke er tilgængeligt for arbejde af en ikke-angivet årsag.

Du kan bruge disse API'er til at gøre følgende:

  • Oprette eller redigere heldagsarbejdstimer, der ikke er arbejdsrelaterede.
  • Oprette eller redigere en forekomst af en ikke-arbejdstime.
  • Ændre tidszonen for kalenderreglen.

Du kan ikke bruge disse API'er til at gøre følgende:

  • Oprette eller redigere en gentagelse af en ikke-arbejdstime.

Pause

Det er tidspunkter på en arbejdsdag, hvor et objekt tager en pause og ikke er tilgængelig for arbejde. Pauser kan ikke eksistere uden arbejdstimer. De skal finde sted mellem to arbejdstimer om dagen. Pauser kan ikke overlappe med arbejdstimer.

Du kan bruge disse API'er til at gøre følgende:

  • Oprette eller redigere pauser under arbejdstimer.

Du kan ikke bruge disse API'er til at gøre følgende:

  • Kun slette pauser fra en forekomst eller gentagelse af arbejdstimer.

Fri

Det er tidspunkter, hvor objektet ikke er tilgængeligt for arbejde på grund af ferie. Årsagen til fritiden kan angives.

Du kan bruge disse API'er til at gøre følgende:

  • Oprette eller redigere fritid med en etiket.
  • Ændre tidszonen for kalenderreglen.

Du kan ikke bruge disse API'er til at gøre følgende:

  • Oprette eller redigere gentagelse af fritid.

Lukketider

Du kan oprette forretningslukkeobjekter, der definerer de tidspunkter, hvor virksomheden er lukket. Ved hjælp af API'en msdyn_SaveCalendar kan du angive, at alle objekter skal overholde eller ignorere organisationens lukketider ved hjælp af den valgfrie ObserverClosure-nøgle. Når de er indstillet til at overholde lukketiderne, er objekterne ikke tilgængelige for arbejde.

Gem kalender-API

Input

Anmodningen indeholder kun én attribut, - CalendarEventInfo, som er en String-type. Den indeholder flere andre attributter, der alle er integreret i denne streng.

Bemærk

I følgende tabel repræsenterer Type det format, der forventes at oprette en vellykket anmodning. Men hele anmodningen fortolkes som en enkelt streng.

CalendarEventInfo

Navn Type Obligatorisk Beskrivelse
EntityLogicalName String Ja Denne nøgle beskriver det objekt, API'en kaldes fra. Kalenderen for dette objekt skal oprettes eller redigeres.
CalendarId GUID Ja Denne nøgle indeholder det kalender-id, der er relateret til det objekt, der er beskrevet ovenfor. Når der oprettes et eller flere af disse objekter, oprettes der også automatisk en kalenderpost. Disse API'er redigerer den pågældende kalenderpost ved at tilføje regler eller redigere eksisterende regler.
RulesAndRecurrences RulesAndRecurrences Ja Denne nøgle er en matrix, og hvert element indeholder flere attributter som angivet i tabellen i følgende sektion. Matrixstørrelsen skal være mindst én.
IsVaried Boolean Nej Denne nøgle skal angives til true i brugerdefinerede gentagelsesscenarier.
IsEdit Boolean Nej Denne nøgle skal angives til true for redigering af eksisterende regler.
TimeZoneCode Heltal Nej Denne nøgle tager en heltalsværdi, der svarer til tidszonen for kalenderreglerne. Gå til Tidszonekoder senere i denne artikel for tilknytningen. Standardværdien er brugerens tidszone.
InnerCalendarBeskrivelse String Nej Denne nøgle skal kun bruges, hvis kalenderreglen gælder fritid. Den bør indeholde årsagen til fritiden.
ObserveClosure Boolean Nej Denne nøgle er specifik for gentagelser. Hvis den er angivet til true, overholdes lukketiden.
RecurrenceEndDate Datetime Nej Denne nøgle er specifik for gentagelser. Den indeholder slutdatoen for gentagelsen. Hvis tidsstemplet er 08:00:00 eller tidligere, er slutdatoen for gentagelsen én dag før den angivne dato. Hvis tidsstemplet er 08:00:01 eller senere, overholdes datoen, som den er. Standardværdien for forekomster er null. Standardværdien for gentagelser er 30. december 9999, 23:59:59 UTC.
RecurrenceSplit Boolean Nej Denne nøgle er specifik for gentagelser. Den er indstillet til true til redigering af "Denne og følgende forekomst" af en gentagelse.
ResourceId GUID Nej Denne nøgle indeholder SystemUserId eller ResourceId og kan kun overføres, når det objekt, der er knyttet til dette kald, er en ressource af typen SystemUser, der kan reserveres. Dette er nødvendigt for at kontrollere, om der er rettigheder for OwnCalendar, under fanen Servicestyring.
UseV2 Mærke Nej Hvis dette flag videregives, aktiverer du V2-versionen af arbejdstimekalenderen med en forbedret overlappende regellogik, der giver mulighed for flere gentagelser. Du kan finde flere oplysninger i Hvad sker der, hvis der er overlappende regler?.

RulesAndRecurrences

Navn Type Påkrævet Beskrivelse
Regler Regler Ja Denne nøgle er en matrix, og hvert element indeholder flere attributter som angivet i tabellen i følgende sektion. Matrixstørrelsen skal være mindst én.
RecurrencePattern String Nej Denne nøgle er specifik for gentagelser. Vi understøtter i øjeblikket kun dette mønster: FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY kan ændres til at inkludere færre dage, men FREQ og INTERVAL kan ikke ændres.
InnerCalendarId GUID Nej Denne nøgle er specifik for redigering. Hvis en regel redigeres, skal InnerCalendarId overføres her. Hvis et InnerCalendarId ikke overføres, opretter API'en en ny regel, selvom IsEdit-nøglen er angivet til sand.
Handling Heltal Nej Denne nøgle er specifik for brugerdefinerede gentagelser. Hvis der oprettes eller redigeres en brugerdefineret gentagelse, skal et af følgende numre angives:
  • (1) Tilføjelse af en dag i gentagelsen
  • (2) Sletning af en dag i gentagelsen
  • (3) Redigering af kun start- eller slutdatoer eller klokkeslæt eller redigering af kapacitet
  • (4) Redigering af alt andet end de nøgler, der er nævnt i (3)

Regler

Navn Type Obligatorisk Beskrivelse
StartTime Dato/klokkeslæt Ja Denne nøgle indeholder en datetime-post i ISO-format. F.eks., \"2021-05-15T12:00:00.000Z\". Tidsdelen bestemmer starttiderne for arbejdstimen i den tidszone, der er angivet tidligere. Datodelen bestemmer startdatoen for arbejdstimen. Her er 15. maj 2021 er datoen for forekomsten eller startdatoen for gentagelsen. Hvis mønsteret var BYDAY=TU,WE, men 15. maj (en lørdag) er datoen, opretter eller redigerer API'en automatisk regler for alle tirsdage og onsdage efter den 15. maj. Det er tilfældet, hvor reglen ikke behøver at have den dato, der svarer til dagen.
EndTime Dato/klokkeslæt Ja Denne indeholder en datetime-post i ISO-format. F.eks., \"2021-05-15T12:00:00.000Z\". Tidsdelen bestemmer sluttiden for arbejdstimen i den tidszone, der er angivet tidligere. Datodelen skal indeholde samme dato som datodelen i StartTime. De eneste undtagelser er:
  • Hvis det er en heldagsforekomst. I dette tilfælde skal datodelen afspejle slutdatoen for heldagsforekomsten.
  • Forekomsten slutter sidst på dagen, dvs. kl. 00:00 den følgende dag. I dette tilfælde skal datoen være \"2021-05-16T00:00:00.000Z\". Hvis du vil angive slutdatoen for gentagelsen, skal du ændre attributten RecurrenceEndDate.
WorkHourType Heltal Ja Denne nøgle indeholder et nummer, der svarer til en af følgende indstillinger:
  • (0) Arbejder
  • (1) Pause
  • (2) Ikke-arbejdsrelateret
  • (3) Fri
Indsats Heltal Nej Denne nøgle bestemmer objektets kapacitet. Den skal være et helt tal. Standardværdien er 1.

Output

Med denne POST-API oprettes eller ændres kalenderregelposter for det valgte objekt. Det giver også følgende output.

Navn Type Beskrivelse
InnerCalendarIds String En matrix med InnerCalendarIds-GUID'er, der er resultatet af POST-handlingen.

Slet kalender-API

Input

Navn Type Obligatorisk Beskrivelse
EntityLogicalName String Ja I dette felt beskrives det objekt, hvis kalenderregler skal slettes.
InnerCalendarId GUID Ja I dette felt beskrives id'et for det InnerCalendarId, der skal slettes. Hvis der er knyttet flere InnerCalendarIds til en enkelt regel, er ét id tilstrækkeligt her. Flere oplysninger om indre og ydre kalendere: Kalenderobjekter
CalendarId GUID Ja I dette felt beskrives objektets CalendarId.
IsVaried Boolean Nej Dette felt er specifikt for gentagelser og angives til yes, hvis der slettes en brugerdefineret gentagelsesregel.
UseV2 Mærke Nej Hvis dette flag videregives, aktiverer du V2-versionen af arbejdstimekalenderen med en forbedret overlappende regellogik, der giver mulighed for flere gentagelser. Du kan finde flere oplysninger i Hvad sker der, hvis der er overlappende regler?.

Output

Med denne POST-API slettes kalenderregelposter for det valgte objekt. Det giver også følgende output.

Navn Type Beskrivelse
InnerCalendarIds String En matrix med InnerCalendarIds-GUID'er, der er resultatet af POST-handlingen.

Indlæse kalender-API

Input

Navn: msdyn_LoadCalendars
Type: handling
Beskrivelse: Returnerer kalendere for givet 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
Beskrivelse: Indeholder svaret fra handlingen msdyn_loadCalendars.

Navn: msdyn_LoadCalendarsResponse.CalendarEvents
Type: egenskab
Beskrivelse: Streng i følgende JSON-format:

{
"calendarId": CalendarEventSlot[]
}

Hvor calendarId er et korrekt GUID, der repræsenterer GUID for kalenderen, og CalendarEventSlot er et objekt med følgende format:

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

Sådan kaldes API'er

Disse API'er kan kaldes ved hjælp af browseren.

  1. Åbn den browser og organisation, hvor du skal foretage kalenderændringer.
  2. Åbn Udviklerværktøjer (vælg Ctrl+SKift+I i Microsoft Edge, vælg F12 i Google Chrome).
  3. Angiv følgende funktion i konsollen, når du har erstattet [org-name] med organisationsdetaljer (f.eks. 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 funktion er defineret, kan du kalde den for at oprette, redigere eller slette kalendere ved hjælp af API'er. Angiv følgende kald for at gemme 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
                   }]
               }]
           }"
       })

Angiv følgende kald for at slette en kalender:

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

I følgende afsnit kan du se eksempler på, hvordan du foretager forskellige kald ud fra dine behov. Erstat action i funktionskald i trin 3 med msdyn_SaveCalendar eller msdyn_DeleteCalendar, og erstat data med den relevante CalendarEventInfo.

Se også følgende skærmbillede for et Power Automate-kald til msdyn_SaveCalendar-handlingen: Power Automate-kald til handlingen msdyn_SaveCalendar.

Eksempelscenarier for API-brug

Lad os gennemgå nogle scenarier, som du kan bruge disse API'er til.

Bob og Tim er chauffører for Contoso Enterprises i Bellevue, Washington. Deres afsender, Debbie, er ansvarlig for at foretage ændringer af deres kalendere med arbejdstimer. Debbie foretager disse ændringer ved hjælp af msdyn_SaveCalendar og msdyn_DeleteCalendar API'er.

Opret en forekomst af en arbejdstime.

Elias er planlagt til at køre rundt for at levere pakker fra 9:00 til 17:00 den 15. maj 2021. Debbie bruger msdyn_SaveCalendar-API'en.

Anmodning

{
 "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}]}]}"
}

Svar

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

Rediger en forekomst af en arbejdstime.

Elias' plan ændres derefter til at starte kl. 10:00 den 15. maj 2021. Debbie bruger msdyn_SaveCalendar-API'en.

Anmodning

{
 "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\"}]}"
}

Svar

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

Slet en forekomst af en arbejdstime.

Der opstår en familiekrise, og Bob skal annullere en hel arbejdsdag. Debbie bruger msdyn_DeleteCalendar-API'en.

Request

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

Svar

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

Opret en daglig gentagelse af en arbejdstime

Fra og med d. 20. maj 2021 beslutter Bob sig for at arbejde sammen med Contoso hele ugen fra 8:00 til 17:00, og han holder op med at arbejde der d. 15. juli 2021.

Request

{
 "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 en daglig gentagelse af en arbejdstime med øget kapacitet

Bob beslutter sig for at holde op med at arbejde hele ugen den 15. juni 2021 for at tage en pause. Indtil da fortsætter Bob den tidsplan for hele ugen, som tidligere er blevet aftalt. Debbie foretager disse ændringer ved hjælp af msdyn_SaveCalendar-API'en.

Anmodning

{
 "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\"}]}"
}

Svar

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

Opret en ugentlig gentagelse af en arbejdstime

Fra oh med d. 16. juni 2021 arbejder Bob fra kl. 8:00 til 18:00 på onsdage og fredage og tager en pause fra 12:00-12:30 til frokost. Debbie bruger API'en msdyn_SaveCalendar, men hun laver en fejl og planlægger pausen fra 12:00 til 13:00.

Request

{
  "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 ugentlig gentagelse af en arbejdstime

Debbie retter derefter sin fejl og ændrer pausen fra 12:00 til 12:30 ved hjælp af API'en msdyn_SaveCalendar.

Anmodning

{
  "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\"]"
}

Opret en brugerdefineret gentagelse af en arbejdstime

Tim arbejder for Contoso mandage fra kl. 8:00 til 17:00, og onsdage fra 11:00 til 15:00. Tim startede med at arbejde for Contoso d. 16. maj 2021. Debbie bruger msdyn_SaveCalendar-API'en til at oprette Tims arbejdstimer.

Anmodning

{
"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\"}]}"
}

Svar

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

Rediger en brugerdefineret gentagelse af en arbejdstime

Tims plan ændres derefter til arbejdstimer fra onsdage fra 17:00 til 20:00 og torsdag 10:00 til 12:00. Mandag fjernes fra Tims plan. Debbie bruger msdyn_SaveCalendar-API'en til at opnå dette.

Request

{
"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 en forekomst af en arbejdstime i en gentagelse

Den 26. maj 2021 kan Tim kun arbejde fra 13:00 til 19:00. Debbie bruger msdyn_SaveCalendar-API'en her.

Request

{
 "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 brugerdefineret gentagelse af en arbejdstime

Tim beslutter sig for at forlade virksomheden og skal slette hele sin tidsplan. Debbie bruger msdyn_DeleteCalendar-API'en her.

Request

{
 "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\"]"
}

Oprette fritid

Tim tager tre fridage i forbindelse med en familieferie med start 9. juni 2021.

Anmodning

{
 "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}]}]}"
}

Svar

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

Oprette heldagsarbejdstimer

Tim har en 72 timers vagt med start den 20. maj 2021. Debbie bruger msdyn_SaveCalendar-API'en til at oprette Tims arbejdstimer.

Request

{
 "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\"]"
}

Ofte stillede spørgsmål om

Jeg får fejlmeddelelsen "StartTime må ikke være større eller lig med EndTime."

Sørg for, at der ikke er overlap i tidsrubrikkerne for de forskellige kalenderregler. Kontrollér datoerne for at sikre dig, at StartTime ikke er senere end EndTime. Du skal også kontrollere, at tidspunkterne følger 24 timers formatet.

Kan API'erne bruges til at opdatere objektet "Arbejdstidsskabeloner"?

Ja, du kan bruge denne API til at oprette og opdatere arbejdstidsskabeloner ud over ressourcens arbejdstimer.

Jeg får vist fejlmeddelelsen "Der opstod en fejl under de-serialisering af objektet af typen Microsoft.Dynamics.UCICalendar.Plugins.SaveCalendarContract+CalendarEventInfo. Inputkilden er ikke formateret korrekt.
or
Forventer tilstanden 'Element'.. Der opstod 'Tekst' med navnet '', navneområdet ''."

Kontrollér, at strengen er fortolket korrekt. Der mangler måske klammeparenteser, kommaer eller semikolon.

Jeg får fejlmeddelelsen "Ugyldigt gentagelsesmønster. Se dokumentationen for understøttede mønstre".

Vi understøtter i øjeblikket kun dette mønster: FREQ=DAILY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY kan ændres til at inkludere færre dage, men FREQ og INTERVAL kan ikke ændres. Kontrollér, at der ikke er mellemrum i mønsteret.

Hvordan får vi oplysninger om CalendarId og InnerCalendarId for ressourcen?

Kan CalendarId hentes fra ressourceattributter. Foretag dette opkald for at få disse oplysninger: [org-url]/api/data/v9.1/bookableresources([bookableresourceGUID]).

Et eksempel på det forrige opkald kunne være [org-url]/api/data/v9.1/bookableresources(7bb0224b-6712-ec11-94f9-000d3a6d888e).

Kan InnerCalendarId hentes fra kalenderattributter. Foretag dette opkald for at få disse oplysninger: [org-url]/api/data/v9.1/calendars([calendar-id-from-above-call])?$expand=calendar_calendar_rules.

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

Hvad sker der, hvis der er overlappende regler?

Der er et par forskellige rangordner, som reglerne falder ind under:

  • Rangorden 1 - daglig forekomst (arbejde/ikke-arbejde) og fritid.
  • Rangorden 0 - ugentlig gentagelse (arbejde/ikke-arbejde).

V2 overlappende regler

  • Rangorden 1-reglerne har en højere prioritet end Rangorden 0-regler. Hvis der er to regler (én af hver rang) på samme dag, vil den daglige forekomst eller fritiden have forrang frem for den ugentlige gentagelse.
  • Når der er flere Rang 0-regler inden for samme datointerval:
    • Hvis tiderne ikke skærer hinanden, forbliver de begge i kalenderen.
    • Hvis tiderne skærer hinanden, vil den regel, der senest er oprettet/ændret, være den, der tages i betragtning i ressourcens kalender. Alle andre regler, der skærer hinanden i datointervallet, fjernes. Hvis nogle rang 0-regler har skæringer på visse datoer, men ikke på andre, bliver reglen opdelt for at bevare de sektioner, der ikke overlapper, mens de overlappende dele fjernes.

Eksempler på funktionsmåde for V2-kalender:

Eksempel 1 – Gentagne arbejdstimer: Overlappende datoer uden overlappende dage/klokkeslæt

For et bestemt datointerval arbejder en tekniker morgen-, eftermiddags- eller natteskift på tværs af forskellige dage.

  1. Opret en første tilbagevendende kalenderregel for et bestemt datointerval. Eksempel: Gentag mandag, tirsdag 1.1-4.1; 8:00-17:00 ET.

  2. Opret en anden gentaget kalenderregel for et overlappende datointerval, samtidig med at du sikrer, at arbejdstimerne ikke skærer hinanden i forhold til de foregående dage eller tidspunkter. Eksempel: Gentag onsdag, torsdag; 1.1-4.1; 8:00-17:00 ET eller Gentag mandag, tirsdag, 1.1-4.1; 17:00-20:00 ET.

Resultat: Begge kalenderregler bevares, og de kan eksistere side om side med hinanden.

Eksempel 2 - Gentagne arbejdstimer: Nogle overlappende datoer, hvor alle overlappende dage og anden regel starter/slutter før eller efter den første regel

En tekniker får en ny arbejdsplan, som erstatter nogle uger af deres gamle tidsplan. Efter kontrakt arbejder de altid de samme dage hver uge.

  1. Opret en første tilbagevendende kalenderregel for et bestemt datointerval. Eksempel: Gentag mandag, tirsdag 2.1-4.1; 8:00-17:00 ET.

  2. Opret endnu en gentaget kalenderregel for et overlappende datointerval, hvor alle dage har overlappende arbejdstimer. Vælg start-/slutdatoer for denne nye regel, der er før eller efter start-/slutdatoen for den første regel. Eksempel: Gentag mandag, tirsdag 3.1-5.1; 13:00-20:00 ET.

Resultat: Den første regel afkortes for at imødekomme start-/slutdatoen for den anden regel. Eksempel: Gentag mandag, tirsdag; 2.1-2.28; 8:00-17:00 ET OG Gentag mandag, tirsdag, 3.1-5.1; 13:00-20:00 ET.

Eksempel 3 – Gentagne arbejdstimer: Alle overlappende datoer med visse overlappende dage/tider

Teknikeren er kontraktmedarbejder for en fast periode på to måneder. Denne har accepteret at tage yderligere arbejde på nogle dage. Teknikeren ønsker at skifte tirsdagens arbejdstimer til et tidligere/senere tidspunkt.

  1. Opret nogle tilbagevendende kalenderregler for et bestemt datointerval. Eksempel: Gentag mandag, tirsdag; 2.1-4.1; 8:00-12:00 ET OG Gentag tirsdag, onsdag, 2.1-4.1, 13:00-17:00 ET.

  2. Opret en ny kalenderregel for det samme datointerval. Vælg dage/tidspunkter, der delvist overlapper de oprindelige regler. Eksempel: Gentag tirsdag, torsdag; 2.1-4.1; 10:00-14:00 ET.

Resultat: Den nye regel overskriver den gamle, hvor der er overlapninger, og ændrer ikke de andre. Eksempel: Gentag mandag, 2.1-4.1; 8:00-12:00 ET OG Gentag onsdag; 2.1-4.1; 13:00-17:00 ET OG Gentag tirsdag,torsdag; 2.1-4.1; 10:00-14:00 ET.

Eksempel 4 - Gentagne arbejdstimer: Nye regeldatoer, der er indeholdt i den gamle regel, nogle overlappende dage/tider

En tekniker arbejder fra 8:00-17:00, man-fre hver uge. I kun to uger skal teknikeren håndtere et specialprojekt hver man-ons med forskellige arbejdstider 6-18.

  1. Opret en første tilbagevendende kalenderregel for et bestemt datointerval. Eksempel: Gentag mandag,tirsdag,onsdag,torsdag,fredag; 1.1-Ingen slutdato; 8:00-17:00 ET.

  2. Opret en anden gentaget kalenderregel, der er indeholdt i ovenstående datointerval, vælg de arbejdstimer, der overlapper visse dage. Eksempel: Gentag mandag,tirsdag,onsag 5.1-5.14; 6:00-18:00 ET.

Resultat: Kalenderen skal have fire tilbagevendende regler, når denne øvelse er slut:

  • afkort den første regel til startdatoen for den anden regel
  • den anden kalenderregel
  • opret en ny regel, der ligner den første regel, men med datoerne for den anden regel for de dage, der ikke overlapper
  • afkort den første regel til at starte fra slutdatoen for den anden regel, uden slutdato

F.eks.: Gentag mandag,tirsdag,onsdag,torsdag,fredag; 1.1-4.30; 8:00-17:00 ET OG Gentag mandag,tirsdag,onsdag; 5.1-5.14 6-18 ET OG Gentag torsdag,fredag, 5.1-5.14; 8:00-17:00 ET OG Gentag mandag,tirsdag,onsdag,torsdag,fredag; 5.15 – Ingen slutdato; 8:00-17:00 ET

Eksempel 5 – Ikke-tilbagevendende arbejdstimer (forekomst, rang 1 regel)

En tekniker har en række sammenhængende teamdage, som har forrang for alle andre forekomster af arbejdstimer for dagen.

  1. Opret en tilbagevendende kalenderregel for et bestemt datointerval. Eksempel: Gentag mandag,tirsdag,onsdag,torsdag,fredag; 1.1-Ingen slutdato; 8:00-17:00 ET.

  2. Opret en kalenderregel, der ikke gentages, og som er indeholdt i ovenstående datointerval. Vælg arbejdstimer, der overlapper nogle dage. Eksempel: Ikke-gentaget; 6.21; 7:00-13:00 ET.

Resultat: Kalenderen skal have 1 ikke-tilbagevendende regel (forekomst), når denne øvelse er slut. Reglen, der ikke gentages, tilsidesætter den overlappende tilbagevendende hændelse for hele dagen. F.eks. Gentag mandag,tirsdag,onsdag,torsdag,fredag; 1.1-Ingen slutdato undtagen 6.21; ikke-gentaget; 6.21; 7:00-13:00 ET.

V1 overlappende regler

  • Rangorden 1-reglerne har en højere prioritet end Rangorden 0-regler. Så hvis der var to regler (én af hver rang) på samme dag, vil den daglige forekomst eller fritiden have forrang frem for den ugentlige gentagelse.
  • Hvis der findes to regler af samme rangorden, vil den regel, der senest er oprettet/ændret, være den, der tages i betragtning i ressourcens kalender.
  • Husk på, at en hel dags forekomster er af Rangorden 1, så du kan overveje at ændre den til en ugentlig gentagelse for at kunne tilføje arbejdstimer for forekomster og få dem respekteret.
  • Når der findes en arbejdstid, og der oprettes en forekomst af en fridag, overlapper de regler, der er opdelt på en måde, som sikrer, at fritiden overholdes, og al resterende tid, som arbejdstimerne forbliver, som de er. Hvis der f.eks. er arbejdstimer fra 8:00 - 17:00 den 21. september, og der tilføjes en fridagsforekomst fra 15:00 til 19:00 den 21. september, vises dette som arbejdstider som 18:00 til 08:00 til 15:00 og fritid fra 15:00 til 19:00. Men hvis reglerne blev oprettet i en ordre, hvor der blev angivet forskellige værdier (fritid, der blev oprettet først, og derefter blev arbejdstimerne oprettet) uanset tidspunkterne, ville det kun være arbejdstimerne, der ville blive valgt igen. Fritiden vil blive tilsidesat.

Tidszonekoder

Enum Tidszone
0 (GMT-12:00) International datolinje, vest
1 (GMT+13:00) Samoa
2 (GMT-10:00) Hawaii
3 (GMT-09:00) Alaska
4 (GMT-08:00) Pacific Time (USA og Canada)
5 (GMT-08:00) Baja California
6 (GMT-11:00) UTC-11
7 (GMT-10:00) Aleuterne
8 (GMT-09:30) Marquesas-øerne
9 (GMT-09:00) UTC-tid-09
10 (GMT-07:00) Mountain Time (USA og Canada)
11 (GMT-08:00) UTC-tid-08
12 (GMT-07:00) Chihuahua, La Paz, Mazatlan
15 (GMT-07:00) Arizona
20 (GMT-06:00) Central Time (USA og Canada)
25 (GMT-06:00) Saskatchewan
29 (GMT-06:00) Guadalajara, Mexico City, Monterrey
33 (GMT-06:00) Mellemamerika
34 (GMT-06:00) Påskeøen
35 (GMT-05:00) Østlig tid (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) Atlantic time (Canada)
51 (GMT-05:00) Turks- og Caicosøerne
55 (GMT-04:00) Georgetown, La Paz, San Juan
56 (GMT-04:00) Santiago
58 (GMT-04:00) Cuiaba
59 (GMT-04:00) Asunción
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 og Miquelon
73 (GMT-03:00) Grønland (Kongeriget Danmark)
74 (GMT-03:00) Montevideo
75 (GMT-02:00) Mid-Atlantic
76 (GMT-02:00) UTC-tid-02
77 (GMT-03:00) Araguaína
80 (GMT-01:00) Azorerne
83 (GMT-01:00) Cabo Verde
84 (GMT+01:00) Casablanca
85 (GMT+00:00) Dublin, Edinburgh, Lissabon, London
90 (GMT+00:00) Monrovia, Reykjavik
92 (GMT) UTC-tid
95 (GMT+01:00) Beograd, Bratislava, Budapest, Ljubljana, Prag
100 (GMT+01:00) Sarajevo, Skopje, Warszawa, Zagreb
105 (GMT+01:00) Bruxelles, København, Madrid, Paris
110 (GMT+01:00) Amsterdam, Berlin, Bern, Bruxelles, Rom, Wien
113 (GMT+01:00) V. Centralafrika
115 (GMT+02:00) Chisinau
120 (GMT+02:00) Cairo
125 (GMT+02:00) Helsinki, Kiev, Riga, Sofia, Tallinn, Vilnius
129 (GMT+02:00) Amman
130 (GMT+02:00) Athen, Bukarest
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) Yerevan
172 (GMT+04:00) Port Louis
173 (GMT+04:00) Tbilisi
174 (GMT+04:00) Isjevsk, Samara
175 (GMT+04:30) Kabul
176 (GMT+04:00) Astrakhan, Uljanovsk
180 (GMT+05:00) Ekaterinburg
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) Krasnoyarsk
208 (GMT+07:00) Barnaul, Gorno-Altaysk
209 (GMT+07:00) Hovd
210 (GMT+08:00) Beijing, Chongjin, SAR Hongkong, Ürümqi
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) Ulaanbaatar
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) Tjita
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 Island
275 (GMT+10:00) Guam, Port Moresby
276 (GMT+11:00) Bougainville
277 (GMT+11:00) Norfolk Island
278 (GMT+11:00) Sakhalin
279 (GMT+11:00) Chokurdakh
280 (GMT+11:00) Salomonøerne, Ny Kaledonien
281 (GMT+11:00) Magadan
284 (GMT+12:00) UTC-tid+12
285 (GMT+12:00) Fiji
290 (GMT+12:00) Auckland, Wellington
295 (GMT+12:00) Anadyr, Petropavlovsk-Kamtjatskij
299 (GMT+12:45) Chatham-øerne
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