Zdieľať cez


Úprava kalendárov pracovnej doby pomocou rozhraní API

Organizácie často musia programovo vytvárať, upravovať alebo mazať pracovnú dobu v kalendároch svojich zdrojov. Kalendáre zobrazujú pracovnú dobu, voľno a prestávky, ktoré určujú dostupnosť zdroja, keď sa plánuje práca. Tieto zdroje musia byť naplánované v konkrétnych časových pásmach, môžu alebo nemusia dodržiavať mimoprevádzkovú dobu a môžu mať premenlivú kapacitu. Informácie o definovaní pracovného času v aplikácii Field Service nájdete na Pridanie pracovného času do rezervovateľného zdroja.

Okrem použitia aplikácie Field Service môžete na úpravu pravidiel kalendára pre vybrané typy záznamov použiť nasledujúce rozhrania API:

  • Rozhranie API na uloženie kalendára (msdyn_SaveCalendar) vytvára alebo aktualizuje záznamy kalendára o vybranej entite na základe vstupov odovzdaných ako žiadosť.
  • Rozhranie API na vymazanie kalendára (msdyn_DeleteCalendar) odstráni všetky vnútorné pravidlá kalendára kalendára na vybranej entite na základe vstupov odovzdaných ako požiadavka.
  • Rozhranie API na uloženie/vymazanie kalendára V2 (msdyn_SaveCalendar/msdyn_DeleteCalendar, príznak povolenia UseV2) umožňuje opakovanie viacerých pracovných hodín súčasne zmenou logiky pre prekrývajúce sa pravidlá. Ďalšie informácie nájdete v časti Čo sa stane, ak existujú prekrývajúce sa pravidlá?.

Tento článok obsahuje podrobnosti o vstupe (požiadavke) a výstupe každého rozhrania API (odpoveď) a ich použití s ​​príkladmi.

Požiadavky

  • Verzia platformy 9.2.21055 alebo vyššia s verziou Universal Resource Scheduling 3.12.45.7.
  • Použitie jedného z nasledujúcich typov záznamov:
    • Rezervovateľný zdroj (bookableresource)
    • Požiadavka na zdroj (msdyn_resourcerequirement)
    • Šablóna pracovného času (msdyn_workhourtemplate)
    • Projekt (msdyn_project)

Typy udalostí kalendára

Pri vytváraní kalendára definujete, koľkokrát sa typ pracovnej doby vyskytne – raz, celý deň, každý týždeň alebo každý deň, prípadne môžete vytvoriť vlastné opakovanie. Ďalšie informácie o týchto udalostiach kalendára nájdete v príkladoch ďalej v tomto článku.

Výskyt

Ak sa typ pracovnej hodiny vyskytuje v kalendári entity iba raz, nazýva sa to výskyt.

Zvážte napríklad zdroj, ktorý funguje 26. mája 2021 od 5.00 do 10.00. Tieto rozhrania API podporujú iba tento typ výskytu, ktorý sa začína a končí v ten istý deň. Ako ďalší príklad zvážte zdroj fungujúci od 26. mája 2021 8.00 do 27. mája 10.00. Tento výskyt nemôžete vytvoriť použitím iba jedného volania msdyn_SaveCalendar API; musíte namiesto toho uskutočniť dva hovory.

Celodenný výskyt

Keď sa typ pracovnej hodiny vyskytne počas jedného alebo viacerých celých dní, počnúc polnocou (00:00) počiatočného dátumu, ide o celodenný výskyt. Maximálna dĺžka celodenného výskytu je päť rokov.

Napríklad zdroj funguje celý deň od 26. mája 2021 do konca dňa 30. mája 2021. Toto je celodenný výskyt, ktorý trvá päť dní.

Týždenné opakovanie

Ak sa typ pracovnej hodiny vyskytuje v rovnaký čas vo vybraných dňoch každého týždňa, nazýva sa to týždenné opakovanie.

Napríklad zdroj funguje od 5.00 do 10.00 každý pondelok, utorok a stredu.

Denné opakovanie

Ak sa typ pracovnej doby vyskytuje každý deň v rovnakom čase, nazýva sa to denné opakovanie.

Napríklad zdroj funguje od 5.00 do 10.00 každý deň v týždni.

Vlastné opakovanie

Keď sa typ pracovnej hodiny vyskytne v určitých časoch v určitých dňoch v týždni, ale časy sa v rôznych dňoch líšia, môžete vytvoriť vlastné opakovanie.

Napríklad zdroj funguje každý pondelok od 5.00 do 10.00 a každú stredu od 12.00 do 15.00.

Typy pracovnej doby

Tieto rozhrania API podporujú operácie vytvárania, aktualizácie a odstraňovania pre nasledujúce typy pracovnej doby:

Pracovná doba

Pracovná doba je čas, počas ktorého je subjekt k dispozícii na vykonanie práce.

Pomocou týchto rozhraní API môžete robiť nasledovné:

  • Vytvoriť, upraviť alebo odstrániť výskyt pracovnej doby.
  • Vytvoriť, upraviť alebo odstrániť denný výskyt pracovnej doby.
  • Vytvoriť, upraviť alebo odstrániť týždenný výskyt pracovnej doby.
  • Vytvoriť, upraviť alebo odstrániť vlastný výskyt pracovnej doby.
  • Vytvoriť, upraviť alebo odstrániť celodennú pracovnú dobu.
  • Vytvoriť alebo upraviť kapacitu počas pracovnej doby.
  • Upraviť výskyt jednej pracovnej doby v opakovaní.
  • Upravte Tento a nasledujúci výskyt v opakovaní.
  • Zmeniť výskyt pracovnej doby na opakovanie.
  • Zmeniť časové pásmo pre pravidlo kalendára.

Pomocou tohto rozhrania API môžete robiť nasledovné:

  • Odstrániť výskyt jednej pracovnej doby z opakovania.
  • Vytvorte výskyt, ktorý trvá 24 hodín, ale nezačína sa a nekončí o polnoci (00.00).
  • Vytvoriť, upraviť alebo odstrániť celodenný výskyt.

Nepracovná hodina

Toto sú obdobia, počas ktorých je subjekt z bližšie neurčeného dôvodu práceneschopný.

Pomocou týchto rozhraní API môžete robiť nasledovné:

  • Vytvárajte alebo upravujte celodenné mimopracovné hodiny.
  • Vytvorte alebo upravte výskyt mimopracovnej hodiny.
  • Zmeniť časové pásmo pre pravidlo kalendára.

Pomocou týchto rozhraní API nemôžete robiť nasledovné:

  • Vytvorte alebo upravte opakovanie mimopracovnej hodiny.

Break

Toto sú časy počas pracovného dňa, počas ktorých si subjekt robí prestávku a nie je k dispozícii na prácu. Prestávky nemôžu existovať bez pracovnej doby; musia sa vyskytnúť medzi dvoma pracovnými dobami za deň. Prestávky sa nemôžu prekrývať s pracovnou dobou.

Pomocou týchto rozhraní API môžete robiť nasledovné:

  • Vytvoriť alebo prestávky počas pracovnej doby.

Pomocou týchto rozhraní API nemôžete robiť nasledovné:

  • Odstrániť iba prestávky z výskytu alebo opakovania pracovnej doby.

Voľno

Toto sú obdobia, počas ktorých je subjekt práceneschopný z dôvodu dovolenky. Dôvod voľna je možné uviesť.

Pomocou týchto rozhraní API môžete robiť nasledovné:

  • Vytvoriť alebo upraviť voľno pomocou štítku.
  • Zmeniť časové pásmo pre pravidlo kalendára.

Pomocou týchto rozhraní API nemôžete robiť nasledovné:

  • Vytvoriť alebo upraviť opakovanie voľna.

Mimoprevádzková doba

Môžete vytvoriť entity uzatvorenia firmy , ktoré definujú časy zatvorenia firmy. Pomocou msdyn_SaveCalendar API môžete nastaviť každú entitu tak, aby sledovala alebo ignorovala časy uzávierky podnikania organizácie pomocou voliteľného kľúča ObserveClosure . Keď sú nastavené na dodržiavanie týchto uzávierok, entity nie sú k dispozícii na prácu.

Rozhranie API Save Calendar

Vstup

Požiadavka obsahuje iba jeden atribút – CalendarEventInfo, čo je typ String . Obsahuje niekoľko ďalších atribútov, ktoré sú všetky vložené do tohto reťazca.

Poznámka

V nasledujúcej tabuľke Typ predstavuje formát, od ktorého sa očakáva úspešná žiadosť. Celá požiadavka je však analyzovaná ako jeden reťazec.

CalendarEventInfo

Názov Typ Požadovaný Popis
EntityLogicalName String Áno Tento kľúč popisuje entitu, z ktorej sa volá API. Je potrebné vytvoriť alebo upraviť kalendár tejto entity.
CalendarId GUID Áno Tento kľúč obsahuje ID kalendára súvisiaceho s entitou popísanou vyššie. Keď sa vytvorí ktorákoľvek z týchto entít, automaticky sa vytvorí aj záznam v kalendári. Tieto rozhrania API upravujú záznam v kalendári pridaním pravidiel alebo úpravou existujúcich pravidiel.
RulesAndRecurrences RulesAndRecurrences Áno Tento kľúč je pole a každý prvok obsahuje viac atribútov, ako je uvedené v tabuľke v nasledujúcej časti. Veľkosť poľa by mala byť aspoň jeden.
IsVaried Boolean No Tento kľúč by mal byť nastavený na true pre vlastné scenáre opakovania.
IsEdit Boolean No Na úpravu existujúcich pravidiel by mal byť tento kľúč nastavený na true .
TimeZoneCode Integer No Tento kľúč nadobúda celočíselnú hodnotu zodpovedajúcu časovému pásmu pre pravidlá kalendára. Mapovanie nájdete v časti Kódy časových pásiem, ktoré sa nachádzajú ďalej v tomto článku. Predvolená hodnota je časové pásmo používateľa.
InnerCalendarDescription String No Tento kľúč je potrebný, iba ak je pravidlo kalendára určené pre voľno. Malo by obsahovať dôvod voľna.
ObserveClosure Boolean No Tento kľúč je špecifický pre opakovania. Ak je nastavená na true, účtovná jednotka pozoruje ukončenie podnikania.
RecurrenceEndDate Dátum a čas No Tento kľúč je špecifický pre opakovania. Obsahuje dátum ukončenia opakovania. Ak je časová známka 08:00:00 alebo skôr, dátum ukončenia opakovania je jeden deň pred zadaným dátumom. Ak je časová známka 08:00:01 alebo neskôr, bude sa dátum rešpektovať tak, ako je. Predvolená hodnota pre výskyty je null. Predvolená hodnota pre opakovania je 30. decembra 9999, 23:59:59 hodín, UTC.
RecurrenceSplit Boolean No Tento kľúč je špecifický pre opakovania. Je nastavený na true pre úpravu "Tento a nasledujúci výskyt" opakovania.
ResourceId GUID No Tento kľúč obsahuje SystemUserId alebo ResourceId a má sa odovzdať len vtedy, keď je entita spojená s týmto volaním rezervovateľný zdroj typu Používateľ systému. Je to potrebné na kontrolu privilégií OwnCalendar na karte Správa služieb .
UseV2 Vlajka No Odovzdaním tohto príznaku sa aktivuje verzia V2 kalendára pracovných hodín s vylepšenou logikou prekrývajúcich sa pravidiel, ktorá umožňuje viacnásobné opakovania. Ďalšie informácie nájdete v časti Čo sa stane, ak existujú prekrývajúce sa pravidlá?.

RulesAndRecurrences

Name Type Požaduje sa Description
Pravidlá Pravidlá Áno Tento kľúč je pole a každý prvok obsahuje viac atribútov, ako je uvedené v tabuľke v nasledujúcej časti. Veľkosť poľa by mala byť aspoň jeden.
RecurrencePattern String No Tento kľúč je špecifický pre opakovania. V súčasnosti podporujeme iba tento vzor: FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY možno zmeniť tak, aby zahŕňala menej dní; však FREQ a INTERVAL sa nedajú zmeniť.
InnerCalendarId GUID No Tento kľúč je špecifický pre úpravy. Ak sa upravuje pravidlo, sem je potrebné odovzdať InnerCalendarId . Ak InnerCalendarId neprejde, rozhranie API vytvorí nové pravidlo, aj keď je nastavený kľúč IsEdit na pravdu.
Činnosť Integer No Tento kľúč je špecifický pre vlastné opakovania. Ak sa vytvára alebo upravuje vlastné opakovanie, malo by sa zadať jedno z nasledujúcich čísel:
  • (1) Pridanie dňa k opakovaniu
  • (2) Vymazanie dňa z opakovania
  • (3) Úpravy iba počiatočných a koncových dátumov alebo časov alebo úprava kapacity
  • (4) Úpravy čohokoľvek iného ako kľúčov uvedených v bode (3)

Pravidlá

Meno Zadať Požaduje sa Popis
StartTime Dátum a čas Áno Tento kľúč obsahuje záznam dátumu a času vo formáte ISO. Napríklad \"2021-05-15T12:00:00.000Z\". Časová časť určuje čas začiatku pracovnej doby v časovom pásme zadanom skôr. Časť s dátumom určuje dátum začatia pracovnej doby. 15. máj 2021 je tu dátum výskytu alebo začiatočný dátum opakovania. Ak bol vzor BYDAY=TU,WE, ale dátumom je 15. máj (sobota), rozhranie API automaticky vytvorí alebo upraví pravidlá pre všetky utorky a stredy nasledujúce po 15. máji. To je prípad, keď pravidlo nemusí mať dátum zodpovedajúci dňu.
EndTime Dátum a čas Áno Toto obsahuje záznam dátumu a času vo formáte ISO. Napríklad \"2021-05-15T12:00:00.000Z\". Časová časť určuje čas ukončenia pracovnej doby v časovom pásme zadanom skôr. Dátumová časť musí obsahovať rovnaký dátum ako dátumová časť Čas začiatku. Jedinými výnimkami sú:
  • Ak ide o celodenný výskyt. V takom prípade by dátumová časť mala odrážať konečný dátum celodenného výskytu.
  • Výskyt končí na konci dňa, to znamená o 12.00 nasledujúceho dňa. V tomto prípade by mal byť dátum \"2021-05-16T00:00:00.000Z\". Ak chcete určiť dátum ukončenia opakovania, upravte atribút RecurrenceEndDate .
WorkHourType Integer Áno Tento kľúč obsahuje číslo zodpovedajúce jednej z nasledujúcich možností:
  • (0) Pracuje sa
  • (1) Prestávka
  • (2) Nefunkčné
  • (3) Voľno
Úsilie Integer No Tento kľúč určuje kapacitu entity. Musí byť celé číslo. Predvolená hodnota je 1.

Výstup

Toto POST API vytvára alebo upravuje záznamy pravidiel kalendára pre vybranú entitu. Poskytuje tiež nasledujúci výstup.

Názov Typ Popis
InnerCalendarIds String Pole InnerCalendarIds GUID, ktoré sú výsledkom operácie POST.

API Delete Calendar

Vstup

Názov Typ Požadovaný Popis
EntityLogicalName String Áno Toto pole popisuje entitu, ktorej pravidlá kalendára sa majú odstrániť.
InnerCalendarId GUID Áno Toto pole popisuje ID InnerCalendarId , ktoré je potrebné odstrániť. Ak je k jednému pravidlu priradených viacero InnerCalendarId , stačí tu akékoľvek jedno ID. Viac informácií o vnútorných a vonkajších kalendároch: Etencie kalendára
CalendarId GUID Áno Toto pole popisuje CalendarId entity.
IsVaried Boolean No Toto pole je špecifické pre opakovania a je nastavené na yes , ak sa odstraňuje vlastné pravidlo opakovania.
UseV2 Vlajka No Odovzdaním tohto príznaku sa aktivuje verzia V2 kalendára pracovných hodín s vylepšenou logikou prekrývajúcich sa pravidiel, ktorá umožňuje viacnásobné opakovania. Ďalšie informácie nájdete v časti Čo sa stane, ak existujú prekrývajúce sa pravidlá?.

Výstup

Toto POST API odstraňuje záznamy pravidiel kalendára pre vybranú entitu. Okrem toho tiež poskytuje nasledujúci výstup.

Meno Zadať Popis
InnerCalendarIds String Pole InnerCalendarIds GUID, ktoré sú výsledkom operácie POST.

Načítať rozhranie API kalendára

Vstup

Názov: msdyn_LoadCalendars
Typ: Akcia
Popis: Vráti kalendáre pre daný LoadCalendarsInput.

Názov: msdyn_LoadCalendars.LoadCalendarsInput
Typ: Parameter
Popis: Reťazec v nasledujúcom formáte JSON:

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

Názov: msdyn_LoadCalendarsResponse
Typ: ComplexType
Popis: Obsahuje odpoveď z akcie msdyn_loadCalendars.

Názov: msdyn_LoadCalendarsResponse.CalendarEvents
Typ: Nehnuteľnosť
Popis: Reťazec v nasledujúcom formáte JSON:

{
"calendarId": CalendarEventSlot[]
}

Kde calendarId je správne guid reprezentujúce guid kalendára a CalendarEventSlot je objekt v nasledujúcom formáte:

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

Ako volať rozhrania API

Tieto rozhrania API je možné volať pomocou prehliadača.

  1. Otvorte prehliadač a organizáciu, v ktorej musíte vykonať tieto zmeny kalendára.
  2. Otvorte Nástroje pre vývojárov (vyberte Ctrl+Shift+I v Microsoft Edge, vyberte F12 v prehliadači Google Chrome).
  3. V konzole zadajte nasledujúcu funkciu po nahradení [názov-organizácie] podrobnosťami o organizácii (naprí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. Po definovaní tejto funkcie ju môžete zavolať na vytváranie, úpravy alebo odstraňovanie kalendárov pomocou rozhraní API. Ak chcete uložiť kalendár, zadajte nasledujúci hovor:
       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
                   }]
               }]
           }"
       })

Ak chcete odstrániť kalendár, zadajte nasledujúci hovor:

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

V nasledujúcej časti nájdete príklady toho, ako uskutočňovať rôzne volania podľa vašich potrieb. Nahraďte action volania funkcie v krok 3 za msdyn_SaveCalendar alebo msdyn_DeleteCalendar a nahraďte data za relevantné CalendarEventInfo.

Pozrite si aj nasledujúcu snímku obrazovky pre Power Automate výzvu na msdyn_SaveCalendar akciu: Power Automate zavolajte na akciu msdyn_SaveCalendar.

Vzorové scenáre použitia API

Prejdime si niekoľko scenárov, na ktoré môžete tieto rozhrania API použiť.

Bob a Tim sú vodičmi nákladných automobilov pre spoločnosť Contoso Enterprises v Bellevue, Washington. Ich dispečerka Debbie je zodpovedná za vykonávanie zmien v ich kalendároch pracovnej doby. Debbie robí tieto zmeny pomocou msdyn_SaveCalendar a msdyn_DeleteCalendar API.

Vytvorte výskyt pracovnej doby.

Bob je naplánovaný na jazdu a má doručiť balíky 15. mája 2021 od 9.00 do 17.00. Debbie používa msdyn_SaveCalendar API.

Požiadavka

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

Odpoveď

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

Upravte výskyt pracovnej doby.

Bobov plán sa potom zmení a začne sa 15. mája 2021 o 10:00. Debbie používa msdyn_SaveCalendar API.

Požiadavka

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

Odpoveď

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

Odstráňte výskyt pracovnej doby.

Nastane rodinná núdzová situácia a Bob musí zrušiť celý deň v práci. Debbie používa msdyn_DeleteCalendar API.

Požiadavka

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

Odpoveď

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

Vytvorenie denného opakovania pracovnej doby

Od 20. mája 2021 sa Bob rozhodne spolupracovať so spoločnosťou Contoso celý týždeň od 8:00 do 17:00 a 15. júla 2021 tam prestane pracovať.

Požiadavka

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

Odpoveď

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

Úprava denného opakovania pracovnej doby so zvýšenou kapacitou

Bob sa rozhodne prestať pracovať na celý týždeň od 15. júna 2021, aby si oddýchol. Dovtedy bude Bob pokračovať v celotýždňovom rozvrhu, ako bolo predtým dohodnuté. Debbie robí tieto zmeny pomocou msdyn_SaveCalendar API.

Požiadavka

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

Odpoveď

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

Vytvorenie týždenného opakovania pracovnej doby

Od 16. júna 2021 bude Bob pracovať v stredu a piatok od 8:00 do 17:00 a od 12:00 do 12:30 bude mať prestávku na obed. Debbie používa msdyn_SaveCalendar API, ale urobí chybu a naplánuje prestávku od 12:00 do 13:00.

Požiadavka

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

Odpoveď

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

Úprava prestávky v týždennom opakovaní pracovnej doby

Debbie potom chybu opraví a zmení prestávku tak, aby nastala z 12:00 na 12:30 pomocou rozhrania msdyn_SaveCalendar API.

Požiadavka

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

Odpoveď

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

Vytvorenie vlastného opakovania pracovnej doby

Tim pracuje pre spoločnosť Contoso v pondelky od 8:00 do 17:00 a v stredy od 11:00 do 15:00. Tim začal pracovať pre Contoso 16. mája 2021. Debbie používa msdyn_SaveCalendar API na vytvorenie Timovho pracovného času.

Požiadavka

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

Odpoveď

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

Úprava vlastného opakovania pracovnej doby

Timov rozvrh sa potom zmení na pracovný čas od stredy od 17:00 do 20:00 a vo štvrtok od 10:00 do 12:00. Pondelok je odstránený z Timovho plánu. Debbie na to používa msdyn_SaveCalendar API.

Požiadavka

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

Odpoveď

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

Úprava výskytu pracovnej doby v opakovaní

26. mája 2021 je Tim práceschopný iba od 13.00 do 19.00. Debbie tu používa msdyn_SaveCalendar API.

Požiadavka

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

Odpoveď

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

Odstránenie vlastného opakovania pracovnej doby

Tim sa rozhodol opustiť spoločnosť a musí vymazať celý ich rozvrh. Debbie tu používa msdyn_DeleteCalendar API.

Požiadavka

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

Odpoveď

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

Vytvorenie voľna

Tim si bude od 9. júna 2021 brať tri dni dovolenky na rodinnú dovolenku.

Požiadavka

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

Odpoveď

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

Vytvorenie celodennej pracovnej doby

Tim má od 20. mája 2021 72-hodinovú zmenu. Debbie používa msdyn_SaveCalendar API na vytvorenie Timovho pracovného času.

Požiadavka

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

Odpoveď

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

Najčastejšie otázky týkajúce sa služby

Zobrazuje sa mi chyba: „Čas začiatku nemôže byť väčší alebo rovný EndTime.“

Uistite sa, že v časových úsekoch rôznych pravidiel kalendára nie sú žiadne prekrytia. Skontrolujte dátumy a uistite sa, že Čas začiatku nie je neskorší ako Čas ukončenia. Overte tiež, či časy zodpovedajú 24-hodinovému formátu.

Môžu byť rozhrania API použité na aktualizáciu entity „Šablóny pracovného času“?

Áno, toto API môžete použiť na vytváranie a aktualizáciu šablón pracovného času okrem pracovného času zdrojov.

Zobrazuje sa mi chyba: "Vyskytla sa chyba pri deserializácii objektu typu Microsoft.Dynamics.UCICalendar.Plugins.SaveCalendarContract+CalendarEventInfo. Vstupný zdroj nie je správne naformátovaný.
or
Očakáva sa stav 'Prvok'.. Stretli ste 'Text' s názvom '', menným priestorom ''.“

Uistite sa, že je reťazec správne analyzovaný. Môžu chýbať zátvorky, čiarky alebo bodkočiarky.

Zobrazuje sa mi chyba „Neplatný vzor opakovania. Podporované vzory nájdete v dokumentácii."

V súčasnosti podporujeme iba tento vzor: FREQ=DAILY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY možno zmeniť tak, aby zahŕňala menej dní; však FREQ a INTERVAL sa nedajú zmeniť. Uistite sa, že vo vzore nie sú medzery.

Ako získame informácie o CalendarId a InnerCalendarId zdroja?

CalendarId možno získať z atribútov prostriedkov. Zavolajte a získajte tieto informácie: [org-url]/api/data/v9.1/bookableresources([bookableresourceGUID]).

Príklad predchádzajúceho hovoru by bol [org-url]/api/data/v9.1/bookableresources(7bb0224b-6712-ec11-94f9-000d3a6d888e).

InnerCalendarId je možné získať z atribútov kalendára. Zavolajte a získajte tieto informácie: [org-url]/api/data/v9.1/calendars([calendar-id-from-above-call])?$expand=calendar_calendar_rules.

Príklad predchádzajúceho hovoru je [org-url]/api/data/v9.1/calendars(02481736-1b6a-4d49-9ebd-a5bd041c1c99)?$expand=calendar_calendar_rules.

Čo sa stane, ak sa pravidlá prekrývajú?

Pravidlá spadajú do niekoľkých rôznych klasifikácií:

  • Poradie 1 - denný výskyt (pracujúci/nepracujúci) a výskyt voľna.
  • Poradie 0 - týždenné opakovanie (pracovné/nepracovné).

V2 prekrývajúce sa pravidlá

  • Pravidlá klasifikácie 1 majú vyššiu prioritu ako pravidlá klasifikácie 0. Ak existujú dve pravidlá (jedno z každého poradia) v ten istý deň, denný výskyt alebo výskyt voľna má prednosť pred týždenným opakovaním.
  • Ak existuje viacero pravidiel hodnotenia 0 v rámci rovnakého obdobia:
    • Ak sa časy nepretnú, v kalendári zostanú oba.
    • Ak sa časy pretínajú, pravidlo, ktoré bolo vytvorené/upravené naposledy, je pravidlo, ktoré sa berie do úvahy pre kalendár zdroja. Všetky ostatné pretínajúce sa pravidlá v rozsahu dátumov sa odstránia. Ak niektoré pravidlá kategórie 0 majú v niektorých dátumoch priesečníky, ale v iných nie, pravidlo sa spojí, aby sa zachovali nepretínajúce sa časti, zatiaľ čo pretínajúce sa časti sa odstránia.

Príklady správania kalendára V2:

Príklad 1 – Opakujúce sa pracovné hodiny: Prekrývajúce sa dátumy bez prekrývajúcich sa dní/časov

V danom dátumovom rozpätí pracuje technik v ranných, popoludňajších alebo nočných zmenách v rôznych dňoch.

  1. Vytvorte prvé opakujúce sa pravidlo kalendára pre daný rozsah dátumov. Napríklad: Opakovať Po, Ut; 1.1-4.1; 8:00 – 17:00 ET.

  2. Vytvorte druhé opakujúce sa pravidlo kalendára pre pretínajúci sa rozsah dátumov a zároveň zabezpečte, aby sa pracovné hodiny nepretínali s predchádzajúcimi dňami alebo časmi. Napríklad: Repeat St, Thu; 1.1-4.1; 8:00 – 17:00 ET alebo Opakovať Po, Ut; 1.1-4.1; 17:00 – 20:00 ET.

Výsledok: Obe pravidlá kalendára zostávajú zachované a existujú vedľa seba.

Príklad 2 – Opakujúci sa pracovný čas: Niektoré prekrývajúce sa dátumy, pričom všetky prekrývajúce sa dni a druhé pravidlo začína/končí pred alebo po prvom pravidle

Technik dostane nový pracovný rozvrh, ktorý nahradí niekoľko týždňov jeho starého rozvrhu. Na základe zmluvy pracujú vždy v rovnaké dni každý týždeň.

  1. Vytvorte prvé opakujúce sa pravidlo kalendára pre daný rozsah dátumov. Napríklad: Opakovať Po, Ut; 2.1-4.1; 8:00 – 17:00 ET.

  2. Vytvorte druhé opakujúce sa pravidlo kalendára pre prekrývajúci sa rozsah dátumov, kde majú všetky dni prekrývajúce sa pracovné hodiny. Vyberte dátumy začiatku/ukončenia tohto nového pravidla, ktoré sú pred alebo po dátume začiatku/ukončenia prvého pravidla. Napríklad: Opakovať Po, Ut; 3.1-5.1; 13:00 – 20:00 ET.

Výsledok: Prvé pravidlo sa skráti, aby vyhovovalo dátumu začiatku/ukončenia druhého pravidla. Napríklad: Opakovať Po, Ut; 2.1-2.28; 8:00 – 17:00 ET A Opakovať Po, Ut; 3.1-5.1; 13:00 – 20:00 ET.

Príklad 3 - Opakujúci sa pracovný čas: Všetky prekrývajúce sa dátumy, s niektorými prekrývajúcimi sa dňami/časmi

Technik je pracovníkom na dohodu na dobu určitú 2 mesiace. Dohodli sa, že v niektorých dňoch prijmú ďalšiu prácu. Utorkový pracovný čas chcú posunúť na skorší/neskorší čas.

  1. Vytvorte niekoľko opakujúcich sa pravidiel kalendára pre daný rozsah dátumov. Napríklad: Opakovať Po, Ut; 2.1-4.1; 8:00 – 12:00 ET A Opakovať utorok, streda; 2.1-4.1, 13:00 – 17:00 ET.

  2. Vytvorte nové opakujúce sa pravidlo kalendára pre rovnaký rozsah dátumov. Vyberte dni/časy, ktoré sa čiastočne prekrývajú s pôvodnými pravidlami. Napríklad: Opakovať Ut, Štvrtok ; 2.1-4.1; 10:00 – 14:00 ET.

Výsledok: Nové pravidlo prepíše staré tam, kde sa prekrývajú, a ostatné ponechá nezmenené. Napríklad: Opakovať po; 2.1-4.1; 8:00 – 12:00 ET A Opakovať v stredu; 2.1-4.1; 13:00 – 17:00 ET A Opakovať ut, štvrtok; 2.1-4.1; 10:00 – 14:00 ET.

Príklad 4 - Opakujúci sa pracovný čas: Nové dátumy pravidiel obsiahnuté v starom pravidle, niektoré prekrývajúce sa dni/časy

Technik pracuje každý týždeň od 8:00 do 17:00 v pondelok až piatok. Len dva týždne budú každý pondelok až stredu riešiť špeciálny núdzový projekt s rôznymi pracovnými časmi od 6:00 do 18:00.

  1. Vytvorte prvé opakujúce sa pravidlo kalendára pre daný rozsah dátumov. Napríklad: Opakovať Po, Ut, Stred, Štvrtok, Pia; 1.1 – Bez dátumu ukončenia; 8:00 – 17:00 ET.

  2. Vytvorte druhé opakujúce sa pravidlo kalendára obsiahnuté vo vyššie uvedenom rozsahu dátumov a vyberte pracovné hodiny, ktoré sa v niektorých dňoch prekrývajú. Napríklad: Opakovať Po, Ut, Streda; 5.1-5.14; 6:00 – 18:00 ET.

Výsledok: Kalendár by mal mať na konci tohto cvičenia štyri opakujúce sa pravidlá:

  • Skrátiť prvé pravidlo na dátum začiatku druhého pravidla
  • Druhé kalendárne pravidlo
  • Vytvorte nové pravidlo podobné prvému pravidlu, ale s dátumami druhého pravidla pre neprekrývajúce sa dni
  • Skrátiť prvé pravidlo na začiatok od dátumu ukončenia druhého pravidla bez dátumu ukončenia

Napríklad: Opakovať Po, Ut, Stred, Štvrtok, Pia; 1,1 – 4,30; 8:00 – 17:00 ET A Opakovať Po, Ut, Streda; 5.1-5.14; 6:00 – 18:00 ET A Opakovať štvrtok, piatok, 5.1-5.14; 8:00 – 17:00 ET A Opakovať Po, Ut, Stred, Štvrtok, Pia; 5.15 – Bez dátumu ukončenia; 8:00 – 17:00 ET

Príklad 5 – Neopakujúci sa pracovný čas (výskyt, pravidlo 1. stupňa)

Technik má niekoľko dní súdržnosti tímu, ktoré majú prednosť pred všetkými ostatnými pracovnými hodinami v danom dni.

  1. Vytvorte opakujúce sa pravidlo kalendára pre daný rozsah dátumov. Napríklad: Opakovať Po, Ut, Stred, Štvrtok, Pia; 1.1 – Bez dátumu ukončenia; 8:00 – 17:00 ET.

  2. Vytvorte neopakujúce sa pravidlo kalendára obsiahnuté v rozsahu dátumov vyššie. Vyberte si pracovný čas, ktorý sa v niektorých dňoch prekrýva. Napríklad: Neopakuje sa; 6,21; 7:00 – 13:00 ET.

Výsledok: Kalendár by mal mať do konca cvičenia 1 neopakujúce sa pravidlo (výskyt). Neopakujúce sa pravidlo prepíše prekrývajúcu sa udalosť opakovania na celý deň. Napríklad: Opakovať Po, Ut, Stred, Štvrtok, Pia; 1.1 – Nie Dátum ukončenia okrem 6.21; neopakovať sa; 6,21; 7:00 – 13:00 ET.

V1 prekrývajúce sa pravidlá

  • Pravidlá klasifikácie 1 majú vyššiu prioritu ako pravidlá klasifikácie 0. Ak teda v ten istý deň existovali dve pravidlá (jedno z každého poradia), denný výskyt alebo výskyt voľného času má prednosť pred týždenným opakovaním.
  • Ak existujú dve pravidlá rovnakej klasifikácie, pravidlo, ktoré bolo naposledy vytvorené/ upravené, bude pravidlo, ktoré sa zohľadňuje v kalendári zdroja.
  • Majte na pamäti, že celodenné výskyty sú klasifikácie 1, takže by ste mali zvážiť zmenu na týždenné opakovanie, aby ste mohli pridať výskyt pracovného času a dodržovať ho.
  • Keď existuje pracovný čas a vytvorí sa obdobie voľna, ktoré ho prekrýva, pravidlá sa rozdelia tak, aby sa zabezpečilo rešpektovanie voľna a zostávajúci čas v rámci pracovného času zostane taký, aký je. Ak je napríklad 21. septembra pracovný čas od 8.00 do 17.00 hod. a 21. septembra sa od 15.00 do 19.00 pridá čas voľna, vyrieši sa to ako pracovný čas od 20.00 do 15.00 a voľno od 15.00 do 19.00. Ak by však boli pravidlá vytvorené v opačnom poradí (najskôr sa vytvorilo voľno a potom sa vytvorila pracovná doba) bez ohľadu na časové intervaly, znova by sa zvolila iba pracovná doba. Voľno by bolo prepísané.

Kódy časového pásma

Enumerácia Časové pásmo
0 (GMT-12:00) Medzinárodná dátumová hranica – západ
1 (GMT+13:00) Samoa
2 (GMT-10:00) Havaj
3 (GMT-09:00) Aljaška
4 (GMT-08:00) Tichomorský čas (USA a Kanada)
5 (GMT-08:00) Baja California
6 (GMT-11:00) Koordinovaný svetový čas-11
7 (GMT-10:00) Aleuty
8 (GMT-09:30) Markézy
9 (GMT-09:00) Koordinovaný svetový čas-09
10 (GMT-07:00) Horský čas (USA a Kanada)
11 (GMT-08:00) Koordinovaný svetový čas-08
12 (GMT-07:00) Chihuahua, La Paz, Mazatlan
15 (GMT-07:00) Arizona
20 (GMT-06:00) Centrálny čas (USA a Kanada)
25 (GMT-06:00) Saskatchewan
29 (GMT-06:00) Guadalajara, Mexico City, Monterrey
33 (GMT-06:00) Stredná Amerika
34 (GMT-06:00) Veľkonoč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) Brazília
69 (GMT-03:00) Buenos Aires
70 (GMT-03:00) Cayenne, Fortaleza
71 (GMT-03:00) Salvádor
72 (GMT-03:00) Saint Pierre a Miquelon
73 (GMT-03:00) Grónsko
74 (GMT-03:00) Montevideo
75 (GMT-02:00) Stredoatlantický čas
76 (GMT-02:00) Koordinovaný svetový čas-02
77 (GMT-03:00) Araguaína
80 (GMT-01:00) Azory
83 (GMT-01:00) Cabo Verde (Kapverdy)
84 (GMT+01:00) Casablanca
85 (GMT+00:00) Dublin, Edinburgh, Lisabon, Londýn
90 (GMT+00:00) Monrovia, Reykjavík
92 (GMT) Koordinovaný svetový čas
95 (GMT+01:00) Belehrad, Bratislava, Budapešť, Ľubľana, Praha
100 (GMT+01:00) Sarajevo, Skopje, Varšava, Záhreb
105 (GMT+01:00) Brusel, Kodaň, Madrid, Paríž
110 (GMT+01:00) Amsterdam, Berlín, Bern, Rím, Štokholm, Viedeň
113 (GMT+01:00) Západ strednej Afriky
115 (GMT+02:00) Kišiňov
120 (GMT+02:00) Káhira
125 (GMT+02:00) Helsinki, Kyjev, Riga, Sofia, 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) Damask
134 (GMT+03:00) Istanbul
135 (GMT+02:00) Jeruzalem
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) Kuvajt, Rijád
151 (GMT+03:00) Minsk
155 (GMT+03:00) Nairobi
158 (GMT+03:00) Bagdad
159 (GMT+02:00) Kaliningrad
160 (GMT+03:30) Teherán
165 (GMT+04:00) Abú Zabí, 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) Astrachán, Ulianovsk
180 (GMT+05:00) Jekaterinburg
184 (GMT+05:00) Islamabad, Karáči
185 (GMT+05:00) Taškent
190 (GMT+05:30) Chennai, Kolkata (Kalkata), Mumbai (Bombaj), Dillí
193 (GMT+05:45) Káthmandu
195 (GMT+06:00) Astana
196 (GMT+06:00) Dháka
197 (GMT+06:00) Omsk
200 (GMT+05:30) Colombo
201 (GMT+07:00) Novosibirsk
203 (GMT+06:30) Yangoun (Rangún)
205 (GMT+07:00) Bangkok, Hanoj, Džakarta
207 (GMT+07:00) Krasnojarsk
208 (GMT+07:00) Barnaul, Gorno-Altajsk
209 (GMT+07:00) Chovd
210 (GMT+08:00) Peking, Čchongdžing, Hongkong, Urumčchi
211 (GMT+07:00) Tomsk
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) Chokurdakh
280 (GMT+11:00) Šalamúnove ostrovy, Nová Kaledónia
281 (GMT+11:00) Magadan
284 (GMT+12:00) Koordinovaný svetový čas+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) Chathamove 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