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:
|
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:
|
WorkHourType | Heltal | Ja | Denne nøgle indeholder et nummer, der svarer til en af følgende indstillinger:
|
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.
- Åbn den browser og organisation, hvor du skal foretage kalenderændringer.
- Åbn Udviklerværktøjer (vælg Ctrl+SKift+I i Microsoft Edge, vælg F12 i Google Chrome).
- 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));
}
- 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:
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.
Opret en første tilbagevendende kalenderregel for et bestemt datointerval. Eksempel: Gentag mandag, tirsdag 1.1-4.1; 8:00-17:00 ET.
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.
Opret en første tilbagevendende kalenderregel for et bestemt datointerval. Eksempel: Gentag mandag, tirsdag 2.1-4.1; 8:00-17:00 ET.
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.
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.
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.
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.
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.
Opret en tilbagevendende kalenderregel for et bestemt datointerval. Eksempel: Gentag mandag,tirsdag,onsdag,torsdag,fredag; 1.1-Ingen slutdato; 8:00-17:00 ET.
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 |