Deli putem


Uredite kalendare radnog vremena pomoću API-ja

Organizacije često treba programski da kreiraju, uređuju ili brišu radno vreme na kalendarima svojih resursa. Kalendari prikazuju radno vreme, slobodno vreme i pauze koje određuju dostupnost resursa kada se planira rad. Ti resursi moraju biti raspoređeni u određenim vremenskim zonama, mogu ili ne moraju poštovati zatvaranje preduzeća i mogu imati promenljiv kapacitet. Za informacije o definisanju radnih sati u aplikaciji "Usluga polja" idite na opciju " Dodavanje radnih sati" resursu koji se može rezervisati.

Pored upotrebe aplikacije Field Service, možete da koristite sledeće API-je da biste izmenili pravila kalendara za odabrane vrste zapisa:

  • API kalendara čuvanja (msdyn_SaveCalendar) kreira ili ažurira zapise kalendara u izabranom entitetu, na osnovu unosa prosleđenih kao zahtev.
  • API kalendara za brisanje (msdyn_DeleteCalendar) briše sva unutrašnja pravila kalendara izabranog entiteta, na osnovu unosa koji su prosleđeni kao zahtev.
  • API V2 kalendara čuvanja/brisanja (msdyn_SaveCalendar/msdyn_DeleteCalendar, zastavica za prolaz UseV2) omogućava istovremeno višestruko ponavljanje radnog sata menjanjem logike za pravila koja se preklapaju. Više informacija potražite u članku Šta se dešava ako postoje pravila koja se preklapaju?.

Ovaj članak sadrži detalje o unosu (zahtevu) i izlazu svakog API-ja (odgovor) i njihovoj upotrebi, sa primerima.

Preduslovi

  • Verzija platforme 9.2.21055 ili više sa verzijom Univerzalnog resursa za planiranje 3.12.45.7.
  • Korišćenje jedne od sledećih vrsta zapisa:
    • Knjigovodstveni resurs (bookableresource)
    • Zahtev resursa (msdyn_resourcerequirement)
    • Predložak radnog sata (msdyn_workhourtemplate)
    • Projekat (msdyn_project)

Tipovi kalendarskih događaja

Kada kreirate kalendar, definišete koliko puta će se pojaviti tip radnog sata – jednom, tokom celog dana, svake sedmice ili svakog dana ili možete da kreirate prilagođeno ponavljanje. Za više informacija o ovim događajima u kalendaru pogledajte primere kasnije u ovom članku.

Pojavljivanje

Kada se tip radnog sata pojavljuje samo jednom u kalendaru entiteta, to se naziva pojavljivanje .

Na primer, razmotrite resurs koji radi od 05:00 do 10:00 26. maja 2021. Ovi API-ji podržavaju samo ovu vrstu događaja, koja započinje i završava se u istom danu. Za drugi primer, razmotrite resurs koji radi od 26. maja 2021. u 20:00 do 10:00 27. maja 2021. Ne možete da kreirate ovo pojavljivanje pomoću samo jednog poziva API-ja msdyn_SaveCalendar ; umesto toga morate da obavite dva poziva.

Celodnevna pojava

Kada se vrsta radnog sata dogodi tokom jednog ili više celih dana, počevši od ponoći (12:00 časova) datuma početka, to je celodnevna pojava. Maksimalno trajanje celodnevne pojave je pet godina.

Na primer, resurs radi ceo dan od 26. maja 2021. do kraja dana 30. maja 2021. godine. Ovo je celodnevna pojava koja traje pet dana.

Sedmično ponavljanje

Kada se tip radnog sata dogodi u isto vreme izabranim danima svake sedmice, to se zove sedmično ponavljanje.

Na primer, resurs radi od 5:00 do 10:00 svakog ponedeljka, utorka i srede.

Dnevno ponavljanje

Kada se tip radnog sata javlja u isto vreme svakog dana, to se zove svakodnevno ponavljanje.

Na primer, resurs radi od 5:00 do 10:00 svakog dana u nedelji.

Prilagođeno ponavljanje

Kada se tip radnog sata dešava u određeno vreme određenih dana u sedmici, ali se vreme razlikuje u različitim danima, možete da kreirate prilagođeno ponavljanje.

Na primer, resurs radi od 5:00 do 10:00 svakog ponedeljka i od 12:00 do 15:00 svake srede.

Vrste radnih sati

Ovi API-ji podržavaju operacije kreiranja, ažuriranja i brisanja za sledeće tipove radnog vremena:

Časovi radnog vremena

Radno vreme je vreme tokom kojeg je entitet dostupan za obavljanje posla.

Koristeći ove API-je, možete učiniti sledeće:

  • Napravite, uredite ili izbrišite pojavu radnog sata.
  • Napravite, uredite ili izbrišite dnevno ponavljanje radnog sata.
  • Napravite, uredite ili izbrišite sedmično ponavljanje radnog sata.
  • Napravite, uredite ili izbrišite prilagođeno ponavljanje radnog sata.
  • Napravite, uredite ili izbrišite celodnevno radno vreme.
  • Stvorite ili uredite kapacitet u radno vreme.
  • Uredite jedan radni sat u ponavljanju.
  • Uredite ova i sledeća pojavljivanja u ponavljanju.
  • Promenite pojavljivanje radnog sata u ponavljanju.
  • Promenite vremensku zonu za pravilo kalendara.

Koristeći ove API-je, ne možete učiniti sledeće:

  • Izbrišite jedan radni sat uz ponavljanja.
  • Napravite pojavljivanje koje traje 24 sata, ali ne počinje i završava se u ponoć (00:00).
  • Napravite, uredite ili izbrišite celodnevno pojavljivanje.

Neradni sat

To su vremena tokom kojih entitet nije dostupan za rad iz neodređenog razloga.

Koristeći ove API-je, možete učiniti sledeće:

  • Kreirajte ili uredite celodnevne neradne sate.
  • Kreirajte ili uredite pojavljivanje neradnog sata.
  • Promenite vremensku zonu za pravilo kalendara.

Koristeći ove API-je, ne možete učiniti sledeće:

  • Kreirajte ili uredite ponavljanje neradnog sata.

Prekinuto

To su vremena u radnom danu tokom kojih entitet pravi pauzu i nije dostupan za rad. Pauze ne mogu postojati bez radnog vremena; moraju se desiti između dva radna sata dnevno. Pauze se ne mogu preklapati sa radnim vremenom.

Koristeći ove API-je, možete učiniti sledeće:

  • Napravite ili uredite pauze tokom radnog vremena.

Koristeći ove API-je, ne možete učiniti sledeće:

  • Izbrišite samo pauze zbog pojave ili ponavljanja radnog vremena.

Odstupanje u vremenu

To su vremena tokom kojih entitet nije dostupan za rad zbog odmora. Može se navesti razlog slobodnog vremena.

Koristeći ove API-je, možete učiniti sledeće:

  • Napravite ili uredite slobodno vreme pomoću oznake.
  • Promenite vremensku zonu za pravilo kalendara.

Koristeći ove API-je, ne možete učiniti sledeće:

  • Napravite ili uredite ponavljanje slobodnog vremena.

Prekid poslovnih aktivnosti

Možete kreirati entitete zatvaranja preduzeća koji definišu vreme zatvaranja preduzeća. Pomoću msdyn_SaveCalendar API-ja možete da podesite svaki entitet da posmatra ili zanemaruje vreme zatvaranja preduzeća pomoću opcionalnog ključa za posmatranje . Kada su podešeni da posmatraju ova zatvaranja, entiteti nisu dostupni za rad.

Sačuvaj API kalendara

Ulaz

Zahtev sadrži samo jedan atribut – CalendarEventInfo, koji je tip niske. Sadrži nekoliko drugih atributa koji su svi ugrađeni u ovaj niz.

Belešku

U sledećoj tabeli "Tip " predstavlja format za koji se očekuje da će zahtevati uspešan zahtev. Međutim, ceo zahtev je raščlanjen kao jedan niz.

CalendarEventInfo

Ime Tip Potrebne Opis
EntityLogicalName String Da Ovaj ključ opisuje entitet iz kojeg se poziva API. Kalendar ovog entiteta treba da se kreira ili uređuje.
CalendarId GUID Da Ovaj ključ sadrži ID kalendara koji se odnosi na gore opisani entitet. Kada se kreira bilo koji od ovih entiteta, zapis kalendara se takođe automatski kreira. Ovi API-ji uređuju taj kalendarski zapis dodavanjem pravila ili uređivanjem postojećih pravila.
RulesAndRecurrences RulesAndRecurrences Da Ovaj ključ je niz i svaki element sadrži više atributa kako je navedeno u tabeli u sledećem odeljku. Veličina niza treba da bude najmanje jedna.
IsVaried Bulov No Ovaj ključ bi trebalo da bude postavljen true na prilagođene scenarije ponavljanja.
IsEdit Bulov No Ovaj ključ bi trebalo da bude postavljen na true uređivanje postojećih pravila.
TimeZoneCode Integer No Ovaj ključ uzima celobrojnu vrednost koja odgovara vremenskoj zoni za kalendarska pravila. Za mapiranje, u skorije vreme u ovom članku idite na šifre vremenske zone. Podrazumevana vrednost je vremenska zona korisnika.
InnerCalendarDescription String No Ovaj ključ je potreban samo ako je pravilo kalendara za slobodno vreme. Trebalo bi da sadrži razlog za slobodno vreme.
ObserveClosure Bulov No Ovaj ključ je specifičan za ponavljanja. Ako je podešeno true, entitet posmatra zatvaranje preduzeća.
RecurrenceEndDate Datum i vreme No Ovaj ključ je specifičan za ponavljanja. Sadrži datum završetka ponavljanja. Ako je vremenska oznaka 08:00:00 ili ranije, datum završetka ponavljanja je jedan dan pre navedenog datuma. Ako je vremenska oznaka 08:00:01 ili kasnija, datum se poštuje takav kakav jeste. Podrazumevana vrednost za pojave je bez vrednosti. Podrazumevana vrednost ponavljanja je 30 Dec 9999, 23:59:59 časova, UTC.
RecurrenceSplit Bulov No Ovaj ključ je specifičan za ponavljanja. Podešen je za uređivanje true "Ovo i sledeće pojavljivanje" ponavljanja.
ResourceId GUID No Ovaj ključ sadrži ID sistema ili ID resursa i treba da bude prosleđen samo kada entitet povezan sa ovim pozivom bude knjigovodstveni resurs tipa SystemUser. Ovo je neophodno da biste proverili da li postoje privilegije ownCalendar-a na kartici "Upravljanje servisom ".
KoristiV2 zastavica No Prosleđivanje ove zastavice omogućava V2 verziju kalendara radnog sata, sa poboljšanom logikom pravila koja se preklapaju i omogućavaju višestruka ponavljanja. Više informacija potražite u članku Šta se dešava ako postoje pravila koja se preklapaju?.

RulesAndRecurrences

Imenuj Tip Zahtevano Opis
Pravila Pravila Da Ovaj ključ je niz i svaki element sadrži više atributa kako je navedeno u tabeli u sledećem odeljku. Veličina niza treba da bude najmanje jedna.
RecurrencePattern String No Ovaj ključ je specifičan za ponavljanja. Trenutno podržavamo samo ovaj obrazac: FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY može da se promeni da bi se uključilo manje dana; Međutim, FREQ i ne INTERVAL može se promeniti.
InnerCalendarId GUID No Ovaj ključ je specifičan za uređivanje. Ako se pravilo uređuje, ovde je potrebno da se prosledi InnerCalendarId . Ako InnerCalendarId nije prosleđen, API kreira novo pravilo, čak i ako je IsEdit ključ postavljen na tačno.
Akcija Integer No Ovaj ključ je specifičan za prilagođena ponavljanja. Ako se kreira ili uređuje prilagođeno ponavljanje, treba uneti jedan od sledećih brojeva:
  • (1) Dodavanje dana ponovnom pojavljivanju
  • (2) Brisanje dana od ponavljanja
  • (3) Uređivanje samo datuma ili vremena početka ili završetka ili kapaciteta uređivanja
  • (4) Uređivanje bilo čega osim ključeva navedenih u (3)

Pravila

+Ime Tip Zahtevano Opis
StartTime DateTime Da Ovaj ključ sadrži stavku datuma u ISO formatu. Na primer, \"2021-05-15T12:00:00.000Z\". Vremenski deo određuje vreme početka radnog vremena u ranije naznačenoj vremenskoj zoni. Deo datuma određuje datum početka radnog vremena. Ovde je 15. maj 2021. datum nastanka ili datum početka ponavljanja. Ako je obrazac BYDAY=TU,WE bio, ali 15. maj (subota) je datum, API će automatski kreirati ili uređivati pravila za sve utorke i sredu posle 15. To je slučaj kada pravilo ne mora imati datum koji odgovara danu.
EndTime DateTime Da Ovo sadrži stavku datuma u ISO formatu. Na primer, \"2021-05-15T12:00:00.000Z\". Vremenski deo određuje vreme završetka radnog vremena u ranije naznačenoj vremenskoj zoni. Deo datuma mora da sadrži isti datum kao deo datuma početnog vremena. Jedini izuzeci su:
  • Ako je to celodnevna pojava. U ovom slučaju, datumski deo treba da odražava datum završetka celodnevnog pojavljivanja.
  • Pojava se završava na kraju dana, odnosno u 00:00 sledećeg dana. U ovom slučaju, datum bi trebalo da bude \"2021-05-16T00:00:00.000Z\". Izmenite atribut PonavljanjeEndDate da biste naveli krajnji datum ponavljanja.
WorkHourType Integer Da Ovaj ključ sadrži broj koji odgovara jednoj od sledećih opcija:
  • (0) radi
  • (1) pauza
  • (2) Neradni
  • (3) Odsustvo
Napor Integer No Ovaj ključ određuje kapacitet entiteta. Mora biti ceo broj. Podrazumevana vrednost je 1.

Izlaz

Ovaj POST API stvara ili menja zapise pravila kalendara za izabrani entitet. Takođe daje sledeći izlaz.

Ime Tip Opis
InnerCalendarIds String Niz GUID-ova InnerCalendarIds koji su rezultat POST operacije.

Izbriši API kalendara

Ulaz

Ime Tip Potrebne Opis
EntityLogicalName String Da Ovo polje opisuje entitet čija pravila kalendara treba izbrisati.
InnerCalendarId GUID Da Ovo polje opisuje ID unutrašnjeg kalendara koji treba izbrisati. Ako postoji više InnerCalendarId-ova povezanih sa jednim pravilom, bilo koji ID je dovoljan ovde. Više informacija o unutrašnjim i unutrašnjim kalendarima:Entiteti kalendara
CalendarId GUID Da Ovo polje opisuje ID kalendara entiteta.
IsVaried Bulov No Ovo polje je specifično za ponavljanja i podešeno yes je na to da li se briše prilagođeno pravilo ponavljanja.
KoristiV2 zastavica No Prosleđivanje ove zastavice omogućava V2 verziju kalendara radnog sata, sa poboljšanom logikom pravila koja se preklapaju i omogućavaju višestruka ponavljanja. Više informacija potražite u članku Šta se dešava ako postoje pravila koja se preklapaju?.

Izlaz

Ovaj POST API briše zapise pravila kalendara za izabrani entitet. Takođe daje sledeći izlaz.

+Ime Tip Opis
InnerCalendarIds String Niz GUID-ova InnerCalendarIds koji su rezultat POST operacije.

Učitaj API kalendara

Ulaz

Ime: msdyn_LoadCalendars
Tip: Radnja
Opis: Daje kalendare za dati LoadCalendarsInput.

Ime: msdyn_LoadCalendars.LoadCalendarsInput
Tip: Parametar
Opis firme: Niska u sledećem JSON formatu:

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

Ime: msdyn_LoadCalendarsResponse
Tip: ComplexType
Opis: Sadrži odgovor iz msdyn_loadCalendars radnje.

Ime: msdyn_LoadCalendarsResponse.CalendarEvents
Tip: svojstvo
Opis firme: Niska u sledećem JSON formatu:

{
"calendarId": CalendarEventSlot[]
}

Gde je ID kalendara odgovarajući guid koji predstavlja Guid kalendara i KalendarEventSlot je objekat sledećeg formata:

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

Kako da pozovete API-je

Ovi API-ji se mogu pozvati pomoću pregledača.

  1. Otvorite pregledač i organizaciju u kojoj treba da izvršite ove promene u kalendaru.
  2. Otvorite Developer Tools (izaberite Ctrl+Shift+I in Microsoft Edge, izaberite F12 u Google Chrome-u).
  3. U konzolu unesite sledeću funkciju nakon zamene [org-name] detaljima o org (na primer, 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. Nakon što je ova funkcija definisana, možete je pozvati da kreira, uređuje ili briše kalendare pomoću API-ja. Unesite sledeći poziv da biste sačuvali kalendar:
       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
                   }]
               }]
           }"
       })

Unesite sledeći poziv da biste izbrisali kalendar:

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

Pogledajte sledeći odeljak za primere kako da upućujete različite pozive na osnovu svojih potreba. Zamenite action poziv funkcije u programu korak 3 sa msdyn_SaveCalendar ili msdyn_DeleteCalendar zamenite data odgovarajućim CalendarEventInfo.

Pogledajte i sledeći snimak ekrana za poziv Power Automate na akciju msdyn_SaveCalendar : Power Automate poziv za msdyn_SaveCalendar akciju.

Primeri scenarija za upotrebu API-ja

Prođimo kroz neke scenarije za koje možete koristiti ove API-je.

Bob i Tim su vozači kamiona za isporuku za Contoso Enterprises u gradu Belevju, Vašington. Njihova otpravnica, Debi, odgovorna je za unošenje promena u njihove kalendare radnog vremena. Debi pravi ove promene koristeći msdyn_SaveCalendarmsdyn_DeleteCalendar API i API.

Napravite pojavu radnog vremena.

Bob bi trebalo da se vozi radi isporuke paketa od 9:00 do 17:00 15. maja 2021. Debi koristi msdyn_SaveCalendar API.

Zahtev

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

Odgovor

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

Uredite pojavu radnog vremena.

Bobov raspored se zatim menja i počinje u 10:00 ujutru 15. maja 2021. Debi koristi msdyn_SaveCalendar API.

Zahtev

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

Odgovor

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

Izbrišite pojavu radnog vremena.

Pojavi se hitan slučaj u porodici, i Bob mora da otkaže ceo radni dan. Debi koristi msdyn_DeleteCalendar API.

Zahtev

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

Odgovor

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

Napravite dnevno ponavljanje radnog vremena

Počevši od 20. maja 2021. godine, Bob odlučuje da radi sa Kontosom cele nedelje od 8 do 17 časova, a tamo će prestati da radi 15. jula 2021. godine.

Zahtev

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

Odgovor

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

Uredite dnevno ponavljanje radnog vremena sa povećanim kapacitetom

Bob odlučuje da prestane da radi celu nedelju 15. juna 2021. godine kako bi napravio pauzu. Do tada, Bob će nastaviti celodneći raspored kao što je ranije dogovoreno. Debi pravi ove promene pomoću msdyn_SaveCalendar API-ja.

Zahtev

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

Odgovor

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

Napravite sedmično ponavljanje radnog vremena

Počevši od 16. juna 2021. godine, Bob će raditi od 8 do 17 časova sredom i petkom, a praviće pauzu od 12:00 do 12:30 časova na ručku. Debi koristi msdyn_SaveCalendar API, ali pravi grešku, i zakazuje pauzu od 12:00 do 13:00.

Zahtev

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

Odgovor

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

Uredite pauzu iz sedmičnog ponavljanja radnog vremena

Debi zatim ispravlja grešku i menja pauzu da bi se dogodila od 12:00 do 12:30 pomoću msdyn_SaveCalendar API-ja.

Zahtev

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

Odgovor

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

Napravite prilagođeno ponavljanje radnog vremena

Tim radi za Contoso ponedeljkom od 8:00 do 17:00 i sredom od 11:00 do 15:00. Tim je počeo da radi fo Kontoso 16. maja 2021. Debi koristi msdyn_SaveCalendar API da stvori Timovo radno vreme.

Zahtev

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

Odgovor

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

Uredite prilagođeno ponavljanje radnog vremena

Timov raspored se zatim menja u radno vreme od srede 17:00 do 20:00, a četvrtak od 10:00 do 12:00 časova. Ponedeljak je uklonjen iz Timovog rasporeda. Debi koristi msdyn_SaveCalendar API da to postigne.

Zahtev

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

Odgovor

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

Uredite jedan radni sat u ponavljanju

26. maja 2021. Tim može da radi samo od 13:00 do 19:00. Debi koristi msdyn_SaveCalendar API ovde.

Zahtev

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

Odgovor

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

Izbrišite prilagođeno ponavljanje radnog vremena

Tim je odlučio da napusti kompaniju i mora da izbriše ceo njihov raspored. Debi koristi msdyn_DeleteCalendar API ovde.

Zahtev

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

Odgovor

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

Kreiranje slobodnih dana

Tim će uzeti tri slobodna dana za porodični odmor koji počinje 9. juna 2021.

Zahtev

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

Odgovor

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

Stvorite celodnevno radno vreme

Tim ima smenu od 72 sata počev od 20. maja 2021. Debi koristi msdyn_SaveCalendar API da stvori Timovo radno vreme.

Zahtev

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

Odgovor

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

Najčešća pitanja o usluzi

Dobijam grešku: "Vreme početka ne može biti veće ili jednako EndTime-u."

Uverite se da nema preklapanja u vremenskim intervalima različitih pravila kalendara. Proverite datume da biste se uverili da Vreme početka nije kasnije od endTime-a . Takođe proverite da li vremena slede 24-časovni format.

Da li API mogu da se koriste za ažuriranje entiteta "Predlošci radnih sati"?

Da, možete koristiti ovaj API za kreiranje i ažuriranje predložaka radnog vremena pored radnog vremena resursa.

Shvatam grešku: "Došlo je do greške eserijalizacije objekta tipa Microsoft.Dynamics.UCICalendar.Plugins.SaveCalendarContract+CalendarEventInfo. Ulazni izvor nije ispravno oblikovan.
or
Očekujući stanje 'Element'.. Naišao sam na 'Tekst' sa imenom '', prostor za ime ''."

Uverite se da je niz pravilno raščlanjen. Možda nedostaju uglaste zagrade, zarezi ili tačke i zarezi.

Dobijam grešku, "Nevažeći obrazac ponavljanja. Pogledajte dokumentaciju za podržane obrasce."

Trenutno podržavamo samo ovaj obrazac: FREQ=DAILY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY može da se promeni da bi se uključilo manje dana; Međutim, FREQ i ne INTERVAL može se promeniti. Uverite se da u uzorku nema razmaka.

Kako da dobijemo informacije o ID-u kalendara i Unutrašnjem kalendaru resursa?

Može CalendarId se preuzeti iz atributa resursa. Obavite ovaj poziv da biste dobili ove informacije: [org-url]/api/data/v9.1/bookableresources([bookableresourceGUID])

Primer prethodnog poziva bi bio [org-url]/api/data/v9.1/bookableresources(7bb0224b-6712-ec11-94f9-000d3a6d888e).

Može InnerCalendarId se preuzeti iz atributa kalendara. Obavite ovaj poziv da biste dobili ove informacije: [org-url]/api/data/v9.1/calendars([calendar-id-from-above-call])?$expand=calendar_calendar_rules

Primer prethodnog poziva je [org-url]/api/data/v9.1/calendars(02481736-1b6a-4d49-9ebd-a5bd041c1c99)?$expand=calendar_calendar_rules.

Šta se dešava ako postoje pravila koja se preklapaju?

Postoji nekoliko različitih činova pod koje spadaju pravila:

  • Rang 1 - svakodnevno pojavljivanje (radno/neradno) i pojavljivanje vanvremena.
  • Rang 0 - sedmično ponavljanje (radi/ne radi).

V2 pravila koja se preklapaju

  • Pravila za rang 1 imaju veći prioritet od pravila za rang 0. Ako postoje dva pravila (po jedno od svakog ranga) u istom danu, svakodnevno pojavljivanje ili pojavljivanje vremenskog rasporeda preuzima prioritet u odnosu na sedmično ponavljanje.
  • Kada postoji više pravila ranga 0 u istom rasponu od datuma:
    • Ako se vremena ne ukrštaju, obe će ostati u kalendaru.
    • Ako se vremena ukrštaju, pravilo koje je nedavno kreirano/izmenjeno je ono koje se smatra kalendarom resursa. Sva ostala pravila ukrštanja u rasponu datuma se uklanjaju. Ako neka pravila ranga 0 imaju preseke na neke datume, ali ne i na drugim, pravilo se splića da bi se zadržali odeljci koji se ne ukrštaju, dok se delovi ukrštanja uklanjaju.

Primeri ponašanja V2 kalendara:

Primer 1 - Ponavljajući radni sati: Preklapanje datuma bez preklopnih dana/vremena

Za dati datum, tehničar radi jutarnje, popodnevne ili noćne smene tokom različitih dana.

  1. Kreirajte prvo ponavljajuće pravilo kalendara za dati opseg datuma. Na primer: Repeat Mon, Tue; 1.1-4.1; 8am-5pm ET.

  2. Kreirajte drugo pravilo kalendara koje se ponavlja za opseg datuma ukrštanja, a istovremeno obezbedite da se radno vreme ne ukršta sa prethodnim danima ili vremenom. Na primer: Repeat Wed, Thu; 1.1-4.1; 8am-5pm ET ili Repeat Mon, Tue; 1.1-4.1; 5pm-8pm ET.

Rezultat: Oba pravila kalendara ostaju i koegzistiraju jedna pored druge.

Primer 2 - Ponavljajući radni sati: Neki preklapajući datumi, sa svim preklopnim danima i drugim pravilom počinje/završava se pre ili posle prvog pravila

Tehničar dobija novi radni raspored, koji zamenjuje neke nedelje njihovog starog rasporeda. Po ugovoru uvek rade iste dane svake nedelje.

  1. Kreirajte prvo ponavljajuće pravilo kalendara za dati opseg datuma. Na primer: Repeat Mon, Tue; 2.1-4.1; 8am-5pm ET.

  2. Kreirajte drugo ponavljajuće pravilo kalendara za preklopni opseg datuma, gde svi dani imaju preklapajuće radne sate. Odaberite datum početka/završetka za ovo novo pravilo koje je pre ili posle datuma početka/završetka za pravilo pesnice. Na primer: Repeat Mon, Tue; 3.1-5.1; 1pm-8pm ET.

Rezultat: Prvo pravilo se odseca da bi se prilagodilo datumu početka/završetka drugog pravila. Na primer: Repeat Mon, Tue; 2.1-2.28; 8am-5pm ET AND Repeat Mon, Tue; 3.1-5.1; 1pm-8pm ET.

Primer 3 - Ponavljajući radni sati: Svi preklopni datumi, sa nekim preklopnim danima/vremenom

Tehničar je radnik po ugovoru na fiksni 2-mesečni period. Oni su se dogovorili da preuzmu dodatne radove već nekoliko dana. Oni žele da prebace radno vreme utorkom na ranije/kasnije vreme.

  1. Kreirajte neka ponavljajuća pravila kalendara za dati opseg datuma. Na primer: Repeat Mon, Tue; 2.1-4.1; 8am-12pm ET AND Repeat Tue, Wed; 2.1-4.1, 1pm-5pm ET.

  2. Kreirajte novo pravilo kalendara koje se ponavlja za isti opseg datuma. Odaberite dane/vreme koji se delimično preklapaju sa originalnim pravilima. Na primer: Repeat Tue, Thurs ; 2.1-4.1; 10am-2pm ET.

Rezultat: Novo pravilo zamenjuje staro tamo gde postoje preklapanja, a ostale ostavlja nepromenjenim. Na primer: Repeat Mon; 2.1-4.1; 8am-12pm ET AND Repeat Wed; 2.1-4.1; 1pm-5pm ET AND Repeat Tue, Thurs ; 2.1-4.1; 10am-2pm ET.

Primer 4 - Ponavljajući radni sati: Novi datumi pravila sadržani u starom pravilu, neki preklopni dani/vreme

Tehničar radi 8 ujutru-5 uveče, Mon-Fri svake nedelje. Samo na dve nedelje, oni će voditi specijalni projekat za hitne slučajeve svaki Mon-Wed sa različitim radnim vremenom 6 ujutru-6 uveče.

  1. Kreirajte prvo ponavljajuće pravilo kalendara za dati opseg datuma. Na primer: Repeat Mon, Tue,Wed,Thu,Fri; 1.1-No End Date; 8am-5pm ET.

  2. Kreirajte drugo ponavljajuće pravilo kalendara koje se nalazi u gorenavedenom opsegu datuma, odaberite radne sate koji se preklapaju u nekim danima. Na primer: Repeat Mon, Tue,Wed; 5.1-5.14; 6am-6pm ET.

Rezultat: Kalendar bi do kraja ove vežbe trebalo da ima četiri pravila koja se ponavljaju:

  • Skraćiti prvo pravilo do datuma početka drugog pravila
  • Drugo pravilo kalendara
  • Kreiranje novog pravila sličnog prvom pravilu, ali sa datumima drugog pravila za dane koji se ne preklapaju
  • Skratiti prvo pravilo za početak od datuma završetka drugog pravila, bez datuma završetka

Na primer: Repeat Mon, Tue,Wed,Thu,Fri; 1.1–4.30; 8am-5pm ET AND Repeat Mon, Tue,Wed; 5.1-5.14; 6am-6pm ET AND Repeat Thu, Fri, 5.1-5.14; 8am-5pm ET AND Repeat Mon, Tue,Wed,Thu,Fri; 5.15–No End Date; 8am-5pm ET

Primer 5 - Radno vreme koje se ne ponavlja (pojavljivanje, pravilo ranga 1)

Tehničar ima niz dana kohezije tima, koji imaju prednost u odnosu na sve ostale slučajeve radnog sata za danas.

  1. Kreirajte ponavljajuće pravilo kalendara za dati opseg datuma. Na primer: Repeat Mon, Tue,Wed,Thu,Fri; 1.1-No End Date; 8am-5pm ET.

  2. Kreirajte pravilo kalendara koje se ne ponavlja, a koje se nalazi u gorenavedenjem opsegu datuma. Odaberite radno vreme koje se preklapa u nekim danima. Na primer: Ne ponavljam; 6.21; 7am-1pm ET.

Rezultat: Kalendar bi do kraja vežbe trebalo da ima 1 pravilo koje se ne ponavlja (pojavljivanje). Pravilo koje se ne ponavlja zamenjuje događaj koji se ponavlja preklapa ceo dan. Na primer: Repeat Mon, Tue,Wed,Thu,Fri; 1.1-No End Date except 6.21; non-repeat; 6.21; 7am-1pm ET.

V1 pravila koja se preklapaju

  • Pravila za rang 1 imaju veći prioritet od pravila za rang 0. Dakle, ako su istog dana postojala dva pravila (po jedno od svakog ranga). Svakodnevno pojavljivanje ili pojavljivanje vremenskog rasporeda preuzima prioritet u odnosu na sedmično ponavljanje.
  • Ako postoje dva pravila istog ranga, pravilo koje je nedavno kreirano/izmenjeno biće ono koje se uzima u obzir za kalendar resursa.
  • Imajte na umu da su celodnevni događaji ranga 1, pa biste mogli razmisliti o tome da ga promenite u nedeljno ponavljanje kako biste mogli da dodate radno vreme i da ih poštujete.
  • Kada postoji radno vreme, a kreirano je pojavljivanje slobodnog vremena koje se preklapa, pravila se dele na način koji obezbeđuje poštovanje slobodnog vremena, a preostalo radno vreme ostaje takvo kakvo je. Na primer, ako postoji radno vreme od 8:00 do 17:00 21. septembra, a pojavljivanje slobodnog vremena se dodaje od 15:00 do 19:00 21. septembra, ovo bi se rešilo kao radno vreme od 8:00 do 15:00 i slobodno vreme od 15:00 do 19:00. Međutim, ako bi se pravila kreirala suprotnim redosledom (prvo je kreirano slobodno vreme, a zatim je kreirano radno vreme) bez obzira na vremenske rokove, samo bi se ponovo izabralo radno vreme. Slobodno vreme bi se poništilo.

Šifre vremenskih zona

Prebrojavanje Vremenska zona
0 (GMT-12:00) Međunarodna zapadna datumska linija
1 (GMT+13:00) Samoa
2 (GMT-10:00) Havaji
3 (GMT-09:00) Aljaska
4 (GMT-08:00) Pacifičko vreme (SAD i Kanada)
5 (GMT-08:00) Baha Kalifornija
6 (GMT-11:00) Coordinated Universal Time-11
7 (GMT-10:00) Aleutska ostrva
8 (GMT-09:30) Ostrva Markiz
9 (GMT-09:00) Coordinated Universal Time-09 (Koordinisano univerzalno vreme-09)
10 (GMT-07:00) Planinsko vreme (SAD i Kanada)
11. (GMT-08:00) Coordinated Universal Time-08 (Koordinisano univerzalno vreme-08)
12 (GMT-07:00) Čihuahua, La Paz, Mazatlan
15 (GMT-07:00) Arizona
20 (GMT-06:00) Centralno vreme (SAD i Kanada)
25 (GMT-06:00) Saskačevan
29 (GMT-06:00) Gvadalahara, Meksiko Siti, Monterej
33 (GMT-06:00) Centralna Amerika
34 (GMT-06:00) Uskršnje ostrvo
35 (GMT-05:00) Istočno vreme (SAD i Kanada)
40 (GMT-05:00) Indijana (istok)
43 (GMT-05:00) Haiti
44 (GMT-05:00) Havana
45 (GMT-05:00) Bogota, Lima, Kito, Rio Branko
47 (GMT-04:00) Karakas
50 (GMT-04:00) Atlantsko vreme (Kanada)
51 (GMT-05:00) Turks i Kaikos
55 (GMT-04:00) Džordžtaun, La Paz, San Huan
56 (GMT-04:00) Santjago
58 (GMT-04:00) Kujaba
59 (GMT-04:00) Asunsion
60 (GMT-03:30) Njufaundlend
65 (GMT-03:00) Brazilija
69 (GMT-03:00) Buenos Ajres
70 (GMT-03:00) Kajen, Fortaleza
71 (GMT-03:00) Salvador
72 (GMT-03:00) Sen Pjer i Mikelon
73 (GMT-03:00) Grenland
74 (GMT-03:00) Montevideo
75 (GMT-02:00) Srednji Atlantik
76 (GMT-02:00) Coordinated Universal Time-02
77 (GMT-03:00) Aragvaina
80 (GMT-01:00) Azorska ostrva
83 (GMT-01:00) Ostrva Kabo Verde
84 (GMT+01:00) Kazablanka
85 (GMT+00:00) Dablin, Edinburg, Lisabon, London
90 (GMT+00:00) Monrovija, Rejkjavik
92 (GMT) UTC vreme
95 (GMT+01:00) Beograd, Bratislava, Budimpešta, Ljubljana, Prag
100 (GMT+01:00) Sarajevo, Skoplje, Varšava, Zagreb
105 (GMT+01:00) Brisel, Kopenhagen, Madrid, Pariz
110 (GMT+01:00) Amsterdam, Berlin, Bern, Rim, Stokholm, Beč
113 (GMT+01:00) Zapadna centralna Afrika
115 (GMT+02:00) Kišinjev
120 (GMT+02:00) Kairo
125 (GMT+02:00) Helsinki, Kijev, Riga, Sofija, Talin, Viljnus
129 (GMT+02:00) Aman
130 (GMT+02:00) Atina, Bukurešt
131 (GMT+02:00) Bejrut
133 (GMT+02:00) Damask
134 (GMT+03:00) Istanbul
135 (GMT+02:00) Jerusalim
140 (GMT+02:00) Harare, Pretorija
141 (GMT+02:00) Vindhuk
142 (GMT+02:00) Gaza, Hebron
145 (GMT+03:00) Moskva, Sankt Peterburg
150 (GMT+03:00) Kuvajt, Rijad
151 (GMT+03:00) Minsk
155 (GMT+03:00) Najrobi
158 (GMT+03:00) Bagdad
159 (GMT+02:00) Kalinjingrad
160 (GMT+03:30) Teheran
165 (GMT+04:00) Abu Dabi, Muskat
169 (GMT+04:00) Baku
170 (GMT+04:00) Jerevan
172 (GMT+04:00) Port Luis
173 (GMT+04:00) Tbilisi
174 (GMT+04:00) Iževsk, Samara
175 (GMT+04:30) Kabul
176 (GMT+04:00) Astrahan, Uljanovsk
180 (GMT+05:00) Ekaterinburg
184 (GMT+05:00) Islamabad, Karači
185 (GMT+05:00) Taškent
190 (GMT+05:30) Čenaj, Kolkata, Mumbaj, Nju Delhi
193 (GMT+05:45) Katmandu
195 (GMT+06:00) Astana
196 (GMT+06:00) Daka
197 (GMT+06:00) Omsk
200 (GMT+05:30) Šri Džajavardenepura
201 (GMT+07:00) Novosibirsk
203 (GMT+06:30) Jangon (Rangun)
205 (GMT+07:00) Bangkok, Hanoj, Džakarta
207 (GMT+07:00) Krasnojarsk
208 (GMT+07:00) Barnaul, Gorno-Altajsk
209 (GMT+07:00) Hovd
210 (GMT+08:00) Peking, Čungking, Hongkong, Urumki
211 (GMT+07:00) Tomsk
215 (GMT+08:00) Kuala Lumpur, Singapur
220 (GMT+08:00) Tajpej
225 (GMT+08:00) Pert
227 (GMT+08:00) Irkutsk
228 (GMT+08:00) Ulan Bator
229 (GMT+09:00) Pjongjang
230 (GMT+09:00) Seul
231 (GMT+08:45) Eukla
235 (GMT+09:00) Osaka, Saporo, Tokio
240 (GMT+09:00) Jakutsk
241 (GMT+09:00) Čita
245 (GMT+09:30) Darvin
250 (GMT+09:30) Adelejd
255 (GMT+10:00) Kanbera, Melburn, Sidnej
260 (GMT+10:00) Brizbejn
265 (GMT+10:00) Hobart
270 (GMT+10:00) Vladivostok
274 (GMT+10:30) Ostrvo Lord Houv
275 (GMT+10:00) Guam, Port Morezbi
276 (GMT+11:00) Ostrvo Bugenvil
277 (GMT+11:00) Ostrvo Norfok
278 (GMT+11:00) Sahalin
279 (GMT+11:00) Čokurdah
280 (GMT+11:00) Solomonska Ostrva, Nova Kaledonija
281 (GMT+11:00) Magadan
284 (GMT+12:00) Coordinated Universal Time+12
285 (GMT+12:00) Fidži
290 (GMT+12:00) Okland, Velington
295 (GMT+12:00) Anadir, Petropavlovsk Kamčatski
299 (GMT+12:45) Čatamska ostrva
300 (GMT+13:00) Nukualofa
301 (GMT-05:00) Četumal
302 (UTC+02:00) Kartum
303 (GMT-03:00) Punta Arenas
304 (GMT+04:00) Volgograd
305 (GMT-07:00) Jukon