Sdílet prostřednictvím


Úprava kalendáře pracovní doby pomocí rozhraní API

Organizace často potřebují naprogramovat vytvotřeník, upravení nebo odstranění pracovní doby v kalendářích zaměstnanců. Kalendáře obsahují pracovní dobu, volno a přestávky, které určují dostupnost zaměstnanců při plánování práce. Pro tyto zaměstnance musí být naplánována konkrétní časová pásma, která mohou nebo nemusí zohledňovat uzavření podniku a mohou mít proměnlivou kapacitu. Informace o definování pracovní doby v aplikaci Field Service najdete v části Přidání pracovní doby pro rezervovatelný zdroj.

Kromě použití aplikace Field Service můžete pomocí následujících rozhraní API upravit pravidla kalendáře pro vybrané typy záznamů:

  • Rozhraní API pro uložení kalendáře (msdyn_SaveCalendar) vytvoří nebo aktualizuje záznamy kalendáře pro vybranou entitu na základě vstupů předaných jako požadavek.
  • Rozhraní API pro odstranění kalendáře (msdyn_DeleteCalendar) odstraní veškerá pravidla vnitřního kalendáře pro vybranou entitu na základě vstupů předaných jako požadavek.
  • Save/Delete Calendar API V2 (msdyn_SaveCalendar/msdyn_DeleteCalendar, příznak předání UseV2) umožňuje opakování více pracovních hodin současně změnou logiky pro překrývající se pravidla. Více informací viz Co se stane, když se pravidla překrývají?.

Tento článek obsahuje podrobnosti o vstupu (požadavku) a výstupu (odezvě) každého rozhraní API a jejich použití s příklady.

Předpoklady

  • Verze platformy 9.2.21055 nebo vyšší s Universal Resource Scheduling verze 3.12.45.7.
  • Použití jednoho z následujících typů záznamů:
    • Rezervovatelný zdroj (bookableresource)
    • Požadavek na zdroj (msdyn_resourcerequirement)
    • Šablona pracovní doby (msdyn_workhourtemplate)
    • Projekt (msdyn_project)

Typy událostí kalendáře

Při vytváření kalendáře definujete, kolikrát se vyskytne typ pracovní hodiny - jednou, celý den, každý týden nebo každý den, nebo můžete vytvořit vlastní opakování. Další informace o těchto událostech kalendáře najdete v příkladech dále v tomto článku.

Výskyt

Když se typ pracovní hodiny v kalendáři entity objeví pouze jednou, nazývá se to výskyt.

Představte si například zaměstnance (zdroj) pracující od 5:00 do 10:00 dne 26. května 2021. Tato rozhraní API podporují pouze tento typ výskytu, který začíná a končí ve stejný den. Nebo si představte, že zaměstnanec pracuje od 26. května 2021 20:00 do 27. května 2021 10:00. Tento výskyt nemůžete vytvořit pomocí pouze jednoho volání rozhraí API msdyn_SaveCalendar; místo toho musíte uskutečnit dva hovory.

Celodenní výskyt

Když nastane typ pracovní hodiny pro jeden nebo více celých dnů počínaje půlnocí (00:00) k datu zahájení, je to celodenní výskyt. Maximální doba celodenního výskytu je pět let.

Například zaměstnanec pracuje celý den od 26. května 2021 do konce 30. května 2021. Jedná se o celodenní událost, která trvá pět dní.

Týdenní opakování

Když se typ pracovní doby vyskytuje ve vybrané dny každého týdne ve stejnou dobu, nazývá se to a týdenní opakování.

Například zaměstnanec pracuje od 5:00 do 10:00 každé pondělí, úterý a středu.

Denní opakování

Když se typ pracovní doby vyskytuje každý den, nazývá se to denní opakování.

Například zaměstnanec pracuje od 5:00 do 10:00 každý den v týdnu.

Vlastní opakování

Když se typ pracovní hodiny vyskytuje v určitých časech v určité dny v týdnu, ale časy se v různé dny liší, můžete vytvořit vlastní opakování.

Například zaměstnanec pracuje od 5:00 do 10:00 každé pondělí a od 12:00 do 15:00 každou středu.

Typy pracovní doby

Tato rozhraní API podporují operace vytvoření, aktualizace a odstranění pro následující typy pracovních hodin:

Pracovní doba

Pracovní doba je doba, během které je entita k dispozici k provedení práce.

Pomocí těchto rozhraní API můžete provádět následující:

  • Vytvořit, upravit nebo odstranit výskyt pracovní doby.
  • Vytvořit, upravit nebo odstranit denní opakování pracovní doby.
  • Vytvořit, upravit nebo odstranit týdenní opakování pracovní doby.
  • Vytvořit, upravit nebo odstranit vlastní opakování pracovní doby.
  • Vytvořit, upravit nebo odstranit celodenní pracovní dobu.
  • Vytvořit nebo upravit kapacitu v pracovní době.
  • Upravit jeden výskyt pracovní doby při opakování.
  • Upravit tento a následující výskyty při opakování.
  • Změnit výskyt pracovní doby na opakování.
  • Změnit časové pásmo kalendářního pravidla.

Pomocí tohoto rozhraní API můžete provádět následující:

  • Odstranit opakování jednoho opakování pracovní doby.
  • Vytvořit událost, která trvá 24 hodin, ale nezačíná a nekončí o půlnoci (00:00).
  • Vytvořit, upravit nebo odstranit celodenní opakování.

Nepracovní doba

Jedná se o časy, během nichž není entita k dispozici pro práci z blíže neurčeného důvodu.

Pomocí těchto rozhraní API můžete provádět následující:

  • Vytvořit nebo upravit nepracovní dobu.
  • Vytvořit nebo upravit výskyt nepracovní doby.
  • Změnit časové pásmo kalendářního pravidla.

Pomocí těchto rozhraní API nemůžete provádět následující:

  • Vytvořit nebo upravit opakování nepracovní doby.

Break

Jedná se o časy v pracovní době, během nichž si entita dělá přestávku a není k dispozici pro práci. Přestávky nemohou existovat bez pracovní doby; musí nastat mezi dvěma pracovními dobami daný den. Přestávky se nemohou překrývat s pracovní dobou.

Pomocí těchto rozhraní API můžete provádět následující:

  • Vytvořit nebo upravit přestávky během pracovní doby.

Pomocí těchto rozhraní API nemůžete provádět následující:

  • Odstranit pouze přestávky z výskytu nebo opakování pracovní doby.

Volno

Jedná se o časy, během nichž není entita k dispozici pro práci z důvodu dovolené. Důvod volna lze určit.

Pomocí těchto rozhraní API můžete provádět následující:

  • Vytvořit nebo upravit volno pomocí štítku.
  • Změnit časové pásmo kalendářního pravidla.

Pomocí těchto rozhraní API nemůžete provádět následující:

  • Vytvořit nebo upravit opakování volna.

Zavírací den

Můžete vytvářet entity zavíracího dne, které definují dobu, kdy je firma uzavřena. S pomocí rozhraní API msdyn_SaveCalendar můžete nastavit každou entitu tak, aby sledovala nebo ignorovala časy zavíracího dne pomocí volitelného klíče ObservceClosure. Když jsou nastaveny ke sledování těchto uzávěrek, entity nebudou k dispozici pro práci.

API Save Calendar

Vstup

Požadavek obsahuje pouze jeden atribut—CalendarEventInfo, což je typ řetězec. Obsahuje několik dalších atributů, které jsou všechny vloženy do tohoto řetězce.

Poznámka:

V následující tabulce Typ představuje formát, u kterého se očekává úspěšný požadavek. Celý požadavek je však analyzován jako jeden řetězec.

CalendarEventInfo

Jméno Typ Povinné Popis
EntityLogicalName String Ano Tento klíč popisuje entitu, ze které se volá API. Kalendář této entity musí být vytvořen nebo upraven.
CalendarId Identifikátor GUID Ano Tento klíč obsahuje ID kalendáře související s entitou popsanou výše. Když se vytvoří některá z těchto entit, automaticky se vytvoří také záznam kalendáře. Tato rozhraní API upravují záznam kalendáře přidáním pravidel nebo úpravou stávajících pravidel.
RulesAndRecurrences RulesAndRecurrences Ano Tento klíč je pole a každý prvek obsahuje více atributů, jak je uvedeno v tabulce v následující části. Velikost pole by měla být alespoň jedna.
IsVaried Logický No Tento klíč musí být nastaven na true pro vlastní scénáře opakování.
IsEdit Logický No Tento klíč musí být nastaven na true pro úpravy existujících pravidel.
TimeZoneCode Integer No Tento klíč přebírá celočíselnou hodnotu odpovídající časovému pásmu pravidel kalendáře. Mapování najdete v části Kódy časových pásem dále v tomto článku. Výchozí hodnota je časové pásmo uživatele.
InnerCalendarDescription String No Tento klíč je nutný, pouze pokud je pravidlo kalendáře nastaveno na volno. Měl by obsahovat důvod volna.
ObserveClosure Logický No Tento klíč je specifický pro opakování. Pokud je nastaven na true, entita sleduje zavírací dny.
RecurrenceEndDate DateTime No Tento klíč je specifický pro opakování. Obsahuje koncové datum opakování. Pokud je časové razítko 08:00:00 nebo dřívější, je koncové datum opakování jeden den před určeným datem. Pokud je časové razítko 08:00:01 nebo novější, je datum respektováno tak, jak je. Výchozí hodnota pro výskyty je null. Výchozí hodnota pro opakování je 30. prosince 9999, 23:59:59 hodin, UTC.
RecurrenceSplit Logický No Tento klíč je specifický pro opakování. Je nastaven na true pro úpravy opakování „Tento a následující výskyty“.
ResourceId Identifikátor GUID No Tento klíč obsahuje SystemUserId nebo ResourceId a předá se pouze v případě, že entita přidružená k tomuto volání je rezervovatelným zdrojem typu SystemUser. To je nutné pro kontrolu oprávnění OwnCalendar na kartě Správa služeb.
UseV2 Příznak No Předání tohoto příznaku umožňuje verzi V2 kalendáře pracovní doby s vylepšenou logikou překrývajících se pravidel, která umožňuje více opakování. Více informací viz Co se stane, když se pravidla překrývají?.

RulesAndRecurrences

Name Type Požadováno Popis
Pravidla Pravidla Ano Tento klíč je pole a každý prvek obsahuje více atributů, jak je uvedeno v tabulce v následující části. Velikost pole by měla být alespoň jedna.
RecurrencePattern String No Tento klíč je specifický pro opakování. V současné době podporujeme pouze tento vzor: FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY lze změnit tak, aby zahrnoval méně dní; nicméně, FREQ a INTERVAL nelze měnit.
InnerCalendarId Identifikátor GUID No Tento klíč je specifický pro úpravy. Pokud je upravováno pravidlo, je zde třeba předat InnerCalendarId. Pokud není předán InnerCalendarId, API vytvoří nové pravidlo, i když je klíč IsEdit nastaven na hodnotu true.
Akce Integer No Tento klíč je specifický pro vlastní opakování. Pokud se vytváří nebo upravuje vlastní opakování, mělo by se zadat jedno z následujících čísel:
  • (1) Přidání dne do opakování
  • (2) Odstranění dne z opakování
  • (3) Úprava pouze počátečních a koncových dat nebo časů nebo úprava kapacity
  • (4) Úprava čehokoli jiného než klíčů uvedených v bodě (3)

Pravidla

Jméno Typ Požaduje se Popis
Počáteční čas DateTime Ano Tento klíč obsahuje položku datetime ve formátu ISO. Například \"2021-05-15T12:00:00.000Z\". Časová část určuje čas zahájení pracovní doby v časovém pásmu určeném dříve. Část data určuje počáteční datum pracovní doby. Zde je 15. května 2021 datum výskytu nebo počáteční datum opakování. Pokud by vzor byl BYDAY=TU,WE, ale datum je 15. května (sobota), API automaticky vytvoří nebo upraví pravidla pro všechna úterý a středy po 15. květnu. To je případ, kdy pravidlo nemusí mít datum odpovídající dnu.
EndTime DateTime Ano Obsahuje položku datetime ve formátu ISO. Například \"2021-05-15T12:00:00.000Z\". Časová část určuje čas ukončení pracovní doby v časovém pásmu určeném dříve. Část data musí obsahovat stejné datum jako část data v StartTime. Jediné výjimky jsou:
  • Jde o celodenní výskyt. V tomto případě by část data měla reflektovat koncové datum celodenního výskytu.
  • Výskyt končí na konci dne, tj. 12:00 následujícího dne. V tomto případě by mělo být datum \"2021-05-16T00:00:00.000Z\". Chcete-li určit koncové datum opakování, upravte atribut RecurrenceEndDate.
WorkHourType Integer Ano Tento klíč obsahuje číslo odpovídající jedné z následujících možností:
  • (0) Pracování
  • (1) Přestávka
  • (2) Nepracování
  • (3) Volno
Úsilí Integer No Tento klíč určuje kapacitu entity. Musí to být celé číslo. Výchozí hodnota je 1.

Výstup

Toto POST API vytváří nebo upravuje záznamy pravidel kalendáře pro vybranou entitu. Poskytuje také následující výstup.

Jméno Typ Popis
InnerCalendarIds String Pole identifikátorů GUID InnerCalendarIds, které jsou výsledkem operace POST.

API Delete Calendar

Vstup

Jméno Typ Povinné Popis
EntityLogicalName String Ano Toto pole popisuje entitu, jejíž pravidla kalendáře mají být odstraněna.
InnerCalendarId Identifikátor GUID Ano Toto pole popisuje ID InnerCalendarId, které je třeba odstranit. Pokud je více InnerCalendarIds přidružených k jednomu pravidlu, postačuje zde jedno ID. Další informace o vnitřních a vnějších kalendářích: Entity kalendáře
CalendarId Identifikátor GUID Ano Toto pole popisuje CalendarId entity.
IsVaried Logický No Toto pole se specificky týká opakování a je nastaveno na yes, pokud je odstraňováno vlastní pravidlo opakování.
UseV2 Příznak No Předání tohoto příznaku umožňuje verzi V2 kalendáře pracovní doby s vylepšenou logikou překrývajících se pravidel, která umožňuje více opakování. Více informací viz Co se stane, když se pravidla překrývají?.

Výstup

Toto POST API odstraňuje záznamy pravidel kalendáře pro vybranou entitu. Poskytuje také následující výstup.

Jméno Typ Popis
InnerCalendarIds String Pole identifikátorů GUID InnerCalendarIds, které jsou výsledkem operace POST.

Načtení rozhraní API kalendáře

Vstup

Název: msdyn_LoadCalendars
Typ: Akce
Popis: Vrátí kalendáře pro daný LoadCalendarsInput.

Název: msdyn_LoadCalendars.LoadCalendarsInput
Typ: Parametr
Popis: Řetězec v následujícím formátu JSON:

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

Název: msdyn_LoadCalendarsResponse
Typ: ComplexType
Popis: Obsahuje odpověď z akce msdyn_loadCalendars.

Název: msdyn_LoadCalendarsResponse.CalendarEvents
Typ: Vlastnost
Popis: Řetězec v následujícím formátu JSON:

{
"calendarId": CalendarEventSlot[]
}

Kde calendarId je správný guid reprezentující Guid kalendáře a CalendarEventSlot je objekt následujícího formátu:

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

Jak volat rozhraní API

Tato rozhraní API lze volat pomocí prohlížeče.

  1. Otevřete prohlížeč a organizaci, ve které tyto změny kalendáře chcete provést.
  2. Otevřete vývojářské nástroje (stiskněte Ctrl+Shift+l v Microsoft Edge, stiskněte F12 v prohlížeči Google Chrome).
  3. V konzole zadejte následující funkci, ve které nahraďte [org-name] podrobnostmi o organizaci (například 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. Poté, co je tato funkce definována, můžete ji volat k vytvoření, úpravým nebo odstranění kalendářů pomocí rozhraní API. Chcete-li uložit kalendář, zadejte následující volání:
       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
                   }]
               }]
           }"
       })

Chcete-li odstranit kalendář, zadejte následující volání:

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

V následující části najdete příklady toho, jak uskutečňovat různá volání podle vašich potřeb. Nahraďte action volání funkce v kroku 3 řetězcem msdyn_SaveCalendar nebo msdyn_DeleteCalendar a nahraďte data příslušnou hodnotou CalendarEventInfo.

Podívejte se také na následující snímek obrazovky pro volání Power Automate pro akci msdyn_SaveCalendar: Volání Power Automate pro akci msdyn_SaveCalendar.

Ukázkové scénáře využití rozhraní API

Projděme si několik scénářů, ve kterých můžete tato rozhraní API použít.

Bob a Tim jsou řidiči dodávkových vozidel pro společnost Contoso Enterprises v Bellevue, Washington. Jejich dispečerka Debbie zodpovídá za provádění změn v kalendářích pracovních hodin. Debbie provádí tyto změny pomocí rozhraní API msdyn_SaveCalendar a msdyn_DeleteCalendar.

Vytvořte výskyt pracovní doby.

Plán Boba je vyjet a doručit balíčky od 9:00 do 17:00 dne 15. května 2021. Debbie používá rozhraní API msdyn_SaveCalendar.

Žádost

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

Upravte výskyt pracovní doby.

Bobův plán se poté změní, aby začal 15. května 2021 v 10:00. Debbie používá rozhraní API msdyn_SaveCalendar.

Žádost

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

Odstraňte výskyt pracovní doby.

Poté však Bob musí z rodinných důvodů zrušit celý svůj pracovní den. Debbie používá rozhraní API msdyn_DeleteCalendar.

Požádat

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

Odpověď respondenta

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

Vytvoření denního výskytu pracovní doby

Od 20. května 2021 se Bob rozhodne pracovat se společností Contoso celý týden od 8:00 do 17:00 a 15. července 2021 tam přestane pracovat.

Požádat

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

Odpověď respondenta

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

Úprava denního opakování pracovní doby se zvýšenou kapacitou

Bob se rozhodl přestat pracovat po celý týden od 15. června 2021, aby si mohl udělat přestávku. Do té doby bude Bob pokračovat v celotýdenním plánu, se kterým dříve souhlasil. Debbie provádí tyto změny pomocí rozhraní API msdyn_SaveCalendar.

Žádost

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

Vytvoření týdenního výskytu pracovní doby

Od 16. června 2021 bude Bob pracovat ve středu a pátek od 8:00 do 17:00 a od 12:00 do 12:30 bude mít přestávku na oběd. Debbie použije rozhraní API msdyn_SaveCalendar, udělá však chybu a naplánuje přestávku od 12:00 do 13:00.

Požádat

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

Odpověď respondenta

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

Úprava přestávky v týdenním opakování pracovní doby

Debbie poté napraví chybu a změní přestávku, která má nastat od 12:00 do 12:30, pomocí API msdyn_SaveCalendar.

Žádost

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

Reakce

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

Vytvoření vlastního výskytu pracovní doby

Tim pracuje pro společnost Contoso v pondělí od 8:00 do 17:00 a ve středu od 11:00 do 15:00. Tim začal pracovat pro Contoso 16. května 2021. Debbie používá API msdyn_SaveCalendar pro vytvoření Timovy pracovní doby.

Žádost

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

Úprava vlastního výskytu pracovní doby

Timův plán se poté změní: pracovní doba je nyní ve středu od 17:00 do 20:00 a ve čtvrtek od 10:00 do 12:00. Pondělí je z Timova plánu odebráno. Debbie používá API msdyn_SaveCalendar k dosažení tohoto cíle.

Požádat

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

Odpověď respondenta

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

Úprava výskytu pracovní doby při opakování

26. května 2021 je Tim schopen pracovat pouze od 13:00 do 19:00. Debbie zde používá rozhraní API msdyn_SaveCalendar.

Požádat

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

Odpověď respondenta

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

Odstranění vlastního výskytu pracovní doby

Tim se rozhodl opustit společnost a musí odstranit celý rozvrh. Debbie zde používá rozhraní API msdyn_DeleteCalendar.

Požádat

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

Odpověď respondenta

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

Vytvoření volna

Tim si vezme tři dny volna na rodinnou dovolenou počínaje 9. červnem 2021.

Žádost

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

Vytvoření celodenní pracovní doby

Tim má od 20. května 2021 72hodinovou směnu. Debbie používá API msdyn_SaveCalendar pro vytvoření Timovy pracovní doby.

Požádat

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

Odpověď respondenta

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

Nejčastější dotazy

Zobrazuje se chyba „StartTime nemůže být větší nebo roven EndTime“.

Ujistěte se, že v časových intervalech různých pravidel kalendáře nejsou žádné překryvy. Pro jistotu zkontrolujte StartTime, zda není později než EndTime. Ověřte také, že časy odpovídají 24hodinovému formátu.

Lze rozhraní API použít k aktualizaci entity „Šablony pracovní doby“?

Ano, toto API můžete použít k vytváření a aktualizaci šablon pracovní doby kromě pracovní doby zdrojů.

Zobrazuje se chyba: „Došlo k chybě při deserializaci objektu typu Microsoft.Dynamics.UCICalendar.Plugins.SaveCalendarContract+CalendarEventInfo. Vstupní zdroj není správně naformátován.
or
Očekávaný stav 'Prvek'. Byl nalezen 'Text' s názvem '', obor názvů ''.“

Ujistěte se, že je řetězec správně analyzován. Mohou chybět závorky, čárky nebo středníky.

Zobrazuje se mi chyba „Neplatný vzor opakování. Podporované vzory najdete v dokumentaci."

V současné době podporujeme pouze tento vzor: FREQ=DAILY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY lze změnit tak, aby zahrnoval méně dní; nicméně, FREQ a INTERVAL nelze měnit. Ujistěte se, že ve vzoru nejsou žádné mezery.

Jak získáme informace o CalendarId a InnerCalendarId zdroje?

CalendarId lze načíst z atributů prostředků. Zavolejte a získejte tyto informace: [org-url]/api/data/v9.1/bookableresources([bookableresourceGUID]).

Příkladem předchozího hovoru by bylo [org-url]/api/data/v9.1/bookableresources(7bb0224b-6712-ec11-94f9-000d3a6d888e).

InnerCalendarId lze načíst z atributů kalendáře. Zavolejte a získejte tyto informace: [org-url]/api/data/v9.1/calendars([calendar-id-from-above-call])?$expand=calendar_calendar_rules.

Příkladem předchozího hovoru je [org-url]/api/data/v9.1/calendars(02481736-1b6a-4d49-9ebd-a5bd041c1c99)?$expand=calendar_calendar_rules.

Co se stane, když se pravidla překrývají?

Pravidla spadají do několika různých řad:

  • Úroveň 1 - denní výskyt (pracovní/nepracovní) a výskyt volna.
  • Úroveň 0 - týdenní opakování (pracovní/nepracovní).

Překrývání pravidel V2

  • Pravidla 1. úrovně mají vyšší prioritu než pravidla 0. Pokud platí dvě pravidla (jedno z každé pozice) ve stejný den, denní výskyt nebo volno má přednost před týdenním opakováním.
  • Pokud existuje více pravidel 0 ve stejném časovém období:
    • Pokud se časy neprotnou, zůstanou v kalendáři oba.
    • Pokud se časy protnou, pravidlo, které bylo naposledy vytvořeno/ upraveno, je to, které je zvažováno pro kalendář zdroje. Všechna ostatní protínající se pravidla v časovém období budou odstraněna. Pokud některá pravidla úrovně 0 mají průsečíky v některých datech, ale ne v jiných, pravidlo se spojí, aby zachovalo neprotínající se úseky, zatímco protínající se části jsou odstraněny.

Příklady chování kalendáře V2:

Příklad 1 – Opakující se pracovní doba: Překrývající se data bez překrývajících se dnů/časů

Pro dané časové období technik pracuje na ranní, odpolední nebo noční směny v různých dnech.

  1. Vytvořte první opakující se pravidlo kalendáře pro dané časové období. Například: Opakovat Po, Út; 1.1-4.1; 8:00–17:00.

  2. Vytvořte druhé opakující se pravidlo kalendáře pro protínající se časové období a zároveň zajistěte, aby se pracovní doba neprotínala s předchozími dny nebo časy. Například: Opakovat St, Čt; 1.1-4.1; 8:00–17:00 nebo Opakovat Po, Út; 1.1-4.1; 17:00–20:00.

Výsledek: Obě kalendářní pravidla zůstávají a existují vedle sebe.

Příklad 2 – Opakující se pracovní doba: Některá překrývající se data, se všemi překrývajícími se dny a druhé pravidlo začíná/končí před nebo po prvním pravidle

Technik dostane nový pracovní rozvrh, který nahradí několik týdnů jeho starého rozvrhu. Na základě smlouvy pracují vždy ve stejné dny každý týden.

  1. Vytvořte první opakující se pravidlo kalendáře pro dané časové období. Například: Opakovat Po, Út; 2.1-4.1; 8:00–17:00.

  2. Vytvořte druhé opakující se pravidlo kalendáře pro překrývající se časové období, kde všechny dny mají překrývající se pracovní dobu. Vyberte data zahájení/ukončení tohoto nového pravidla, která jsou před nebo po datu zahájení/ukončení prvního pravidla. Například: Opakovat Po, Út; 3.1-5.1; 13:00–20:00.

Výsledek: První pravidlo bude zkráceno, aby vyhovovalo datu začátku/konce druhého pravidla. Například: Opakovat Po, Út;; 2.1-2.28; 8:00–17:00 A Opakovat Po, Út; 3.1-5.1; 17:00–20:00.

Příklad 3 – Opakující se pracovní doba: všechna překrývající se data s některými překrývajícími se dny/časy

Technik je smluvním pracovníkem na dobu určitou 2 měsíců. Dohodli se, že v některých dnech přijmou další práci. Chtějí posunout úterní pracovní dobu na dřívější/pozdější čas.

  1. Vytvořte několik opakujících se pravidel kalendáře pro dané časové období. Například: Opakovat Po, Út;; 2.1-4.1; 8:00–12:00 A Opakovat Po, St; 2.1-4.1; 13:00–17:00.

  2. Vytvořte nové opakujících se pravidlo kalendáře pro stejné časové období. Vyberte dny/časy, které se částečně překrývají s původními pravidly. Například: Opakovat Út, Čt ; 2.1-4.1; 10:00–14:00.

Výsledek: Nové pravidlo přepíše staré tam, kde se překrývají, a ostatní ponechá beze změny. Například: Opakovat Po; 2.1-4.1; 8:00–12:00 A Opakovat St; 2.1-4.1; 13:00–17:00 A Opakovat Út, Čt ; 2.1-4.1; 10:00–14:00.

Příklad 4 - Opakující se pracovní doba: Nová data pravidla obsažená ve starém pravidle, některé dny/časy se překrývají

Technik pracuje každý týden od 8:00 do 17:00, Po-Pá. Jen po dobu dvou týdnů budou každé pondělí až středu vyřizovat speciální nouzový projekt s jinou pracovní dobou od 6:00 do 18:00.

  1. Vytvořte první opakující se pravidlo kalendáře pro dané časové období. Například: Opakovat Po, Út, St, Čt, Pá; 1.1 – Žádné datum ukončení; 8:00–17:00.

  2. Vytvořte druhé opakující se pravidlo kalendáře obsažené ve výše uvedeném rozsahu dat a vyberte pracovní dobu, která se v některých dnech překrývá. Například: Opakovat Po, Út, St; 5.1-5.14; 8:00–17:00.

Výsledek: Kalendář by měl mít na konci tohoto cvičení čtyři opakující se pravidla:

  • Zkrátit první pravidlo na počáteční datum druhého pravidla
  • druhé kalendářní pravidlo
  • Vytvořte nové pravidlo podobné prvnímu pravidlu, ale s daty druhého pravidla pro nepřekrývající se dny
  • zkrátit první pravidlo, aby začalo k datu konce druhého pravidla, bez data konce

Například: Opakovat Po, Út, St, Čt, Pá; 1,1–4,30; 8:00–17:00 A Opakování Po, Út, Středa; 5.1-5.14; 6:00–18:00 A Opakovat čt, pá, 5.1-5.14; 8:00–17:00 A Opakovat Po, Út, St, Čt, Pá; 5.15 – Žádné datum ukončení; 8:00–17:00

Příklad 5 – Neopakující se pracovní doba (výskyt, pravidlo pořadí 1)

Technik má několik dní soudržnosti týmu, které mají přednost před všemi ostatními instancemi pracovní doby pro daný den.

  1. Vytvořte opakující se pravidlo kalendáře pro dané časové období. Například: Opakovat Po, Út, St, Čt, Pá; 1.1 – Žádné datum ukončení; 8:00–17:00.

  2. Vytvořte neopakující se pravidlo kalendáře obsažené ve výše uvedeném časovém období. Vyberte pracovní dobu, která se v některých dnech překrývá. Například: Neopakovat; 6.21; 7:00–13:00.

Výsledek: Kalendář by měl mít na konci tohoto cvičení 1 neopakující se pravidlo (výskyt). Neopakující se pravidlo přepíše překrývající se opakující se událost po celý den. Například: Opakovat Po, Út,St,Čt,Pá; 1.1-žádné datum ukončení kromě 6.21; neopakovat se; 6.21; 7:00–13:00.

Překrývání pravidel V1

  • Pravidla 1. úrovně mají vyšší prioritu než pravidla 0. Pokud tedy platila dvě pravidla (jedno z každé pozice) ve stejný den, denní výskyt nebo volno má přednost před týdenním opakováním.
  • Pokud existují dvě pravidla stejné úrovně, bude pravidlo, které bylo naposledy vytvořeno/ upraveno, to, které je zvažováno pro kalendář zdroje.
  • Mějte na paměti, že celodenní výskyty jsou na úrovni 1, takže můžete zvážit změnu na týdenní opakování, abyste mohli přidat pracovní dobu výskytu a nechat je respektovat.
  • Když existuje pracovní doba a vytvoří se překrývající se doba volna, pravidla se rozdělí způsobem, který zajistí, že bude respektováno volno, a veškerý zbývající čas pracovní doby zůstane stejný. Pokud je například 21. září pracovní doba od 8:00 do 17:00 a 21. září se přidá čas volna od 15:00 do 19:00, bude to vyřešeno jako pracovní doba od 20:00 do 15:00 a volno od 15 do 19 hodin. Pokud by však byla pravidla vytvořena v opačném pořadí (nejprve se vytvořilo volno a poté pracovní doba), bez ohledu na časové intervaly, byla by znovu zvolena pouze pracovní doba. Volno by bylo přepsáno.

Kódy časového pásma

Výčet Časové pásmo
0 (GMT-12:00) Západní mezinárodní časová osa
1 (GMT+13:00) Nezávislý stát Samoa
2 (GMT-10:00) Havaj
3 (GMT-09:00) Aljaška
4 (GMT-08:00) Tichomoří (USA a Kanada)
5 (GMT-08:00) Baja California
6 (GMT-11:00) Standard UTC - 11
7 (GMT-10:00) Aleutské ostrovy
8 (GMT-09:30) Souostroví Markézy
9 (GMT-09:00) Standard UTC - 09
10 (GMT-07:00) Horská oblast (USA a Kanada)
11 (GMT-08:00) Standard UTC - 08
12 (GMT-07:00) Chihuahua, La Paz, Mazatlan
15 (GMT-07:00) Arizona
20 (GMT-06:00) Centrální čas (USA a Kanada)
25 (GMT-06:00) Saskatchewan
29 (GMT-06:00) Guadalajara, Mexico City, Monterrey
33 (GMT-06:00) Střední Amerika
34 (GMT-06:00) Velikonoční ostrov
35 (GMT-05:00) Východní čas (USA a Kanada)
40 (GMT-05:00) Indiana (východ)
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) Atlantický čas (Kanada)
51 (GMT-05:00) Turks a Caicos
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) Brasília
69 (GMT-03:00) Buenos Aires
70 (GMT-03:00) Cayennee, Fortaleza
71 (GMT-03:00) Salvador
72 (GMT-03:00) Saint Pierre a Miquelon
73 (GMT-03:00) Grónsko
74 (GMT-03:00) Montevideo
75 (GMT-02:00) Střední Atlantik
76 (GMT-02:00) Standard UTC - 2
77 (GMT-03:00) Araguaina
80 (GMT-01:00) Azory
83 (GMT-01:00) Ostrov Cabo Verde
84 (GMT+01:00) Casablanca
85 (GMT+00:00) Dublin, Edinburgh, Lisabon, Londýn
90 (GMT+00:00) Monrovia, Reykjavík
92 (GMT) Standard UTC
95 (GMT+01:00) Bělehrad, Bratislava, Budapešť, Lublaň, Praha
100 (GMT+01:00) Sarajevo, Skopje, Varšava, Záhřeb
105 (GMT+01:00) Brusel, Kodaň, Madrid, Paříž
110 (GMT+01:00) Amsterdam, Berlín, Bern, Řím, Stockholm, Vídeň
113 (GMT+01:00) Západní střední Afrika
115 (GMT+02:00) Kišiněv
120 (GMT+02:00) Káhira
125 (GMT+02:00) Helsinky, Kyjev, Riga, Sofie, Tallin, Vilnius
129 (GMT+02:00) Ammán
130 (GMT+02:00) Atény, Bukurešť
131 (GMT+02:00) Bejrút
133 (GMT+02:00) Damašek
134 (GMT+03:00) Istanbul
135 (GMT+02:00) Jeruzalém
140 (GMT+02:00) Harare, Pretoria
141 (GMT+02:00) Windhoek
142 (GMT+02:00) Gaza, Hebron
145 (GMT+03:00) Moskva, Sant Petěrburg
150 (GMT+03:00) Kuvajt, Rijád
151 (GMT+03:00) Minsk
155 (GMT+03:00) Nairobi
158 (GMT+03:00) Bagdád
159 (GMT+02:00) Kaliningrad
160 (GMT+03:30) Teherán
165 (GMT+04:00) Abú Dhabí, Maskat
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) Iževsk, Samara
175 (GMT+04:30) Kábul
176 (GMT+04:00) Astrachaň, Uljanovsk
180 (GMT+05:00) Jekatěrinburg
184 (GMT+05:00) Islámábád, Karáčí
185 (GMT+05:00) Taškent
190 (GMT+05:30) Čennaí, Kolkata, Mumbaí, Nové Dillí
193 (GMT+05:45) Káthmandú
195 (GMT+06:00) Astana
196 (GMT+06:00) Dháka
197 (GMT+06:00) Omsk
200 (GMT+05:30) Šrí Džajawardenepúra
201 (GMT+07:00) Novosibirsk
203 (GMT+06:30) Yangon (Rangún)
205 (GMT+07:00) Bangkok, Hanoj, Jakarta
207 (GMT+07:00) Krasnojarsk
208 (GMT+07:00) Barnaul, Gorno-Altajsk
209 (GMT+07:00) Chovdský ajmag
210 (GMT+08:00) Peking, Čchung-čching, Hongkong – zvláštní administrativní oblast, Urumqi
211 (GMT+07:00) Tomská oblast
215 (GMT+08:00) Kuala Lumpur, Singapur
220 (GMT+08:00) Tchaj-pej
225 (GMT+08:00) Perth
227 (GMT+08:00) Irkutsk
228 (GMT+08:00) Ulánbátar
229 (GMT+09:00) Pchjongjang
230 (GMT+09:00) Soul
231 (GMT+08:45) Eucla
235 (GMT+09:00) Osaka, Sapporo, Tokio
240 (GMT+09:00) Jakutsk
241 (GMT+09:00) Čita
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) Ostrov Lorda Howa
275 (GMT+10:00) Guam, Port Moresby
276 (GMT+11:00) Bougainville
277 (GMT+11:00) Norfolk
278 (GMT+11:00) Sachalin
279 (GMT+11:00) Čokurdach
280 (GMT+11:00) Šalamounovy ostrovy, Nová Kaledonie
281 (GMT+11:00) Magadan
284 (GMT+12:00) Standard UTC + 12
285 (GMT+12:00) Ostrovy Fidži
290 (GMT+12:00) Auckland, Wellington
295 (GMT+12:00) Anadyr, Petropavlovsk-Kamčatskij
299 (GMT+12:45) Chathamovy ostrovy
300 (GMT+13:00) Nuku'alofa
301 (GMT-05:00) Chetumal
302 (UTC+02:00) Chartúm
303 (GMT-03:00) Punta Arenas
304 (GMT+04:00) Volgograd
305 (GMT-07:00) Yukon