Partajați prin


Editați calendarele orelor de lucru folosind API-uri

Organizațiile trebuie adesea să creeze, să editeze sau să șteargă programul de lucru în calendarele resurselor lor. Calendarele arată orele de lucru, timpul liber și pauzele care determină disponibilitatea unei resurse atunci când se programează munca. Resursele respective trebuie să fie programate în anumite fusuri orare, ar putea sau nu să observe închiderea firmei și pot avea capacitate variabilă. Pentru informații despre definirea orelor de lucru în aplicația Field Service, accesați Adăugați orele de lucru la o resursă care poate fi rezervată.

Pe lângă utilizarea aplicației Field Service, puteți utiliza următoarele API-uri pentru a modifica regulile calendarului pentru tipurile de înregistrări selectate:

  • API-ul Save Calendar (msdyn_SaveCalendar) creează sau actualizează înregistrări de calendar pentru o entitate selectată, pe baza intrărilor transmise ca solicitare.
  • API-ul Delete Calendar (msdyn_DeleteCalendar) șterge toate regulile interne de calendar ale unui calendar dintr-o entitate selectată, pe baza intrărilor transmise ca solicitare.
  • API-ul Save/Delete Calendar V2 (msdyn_SaveCalendar/msdyn_DeleteCalendar, pass flag UseV2) permite repetarea mai multor ore de lucru simultan, modificând logica regulilor care se suprapun. Pentru mai multe informații, consultați Ce se întâmplă dacă există reguli care se suprapun?

Acest articol conține detalii despre intrarea (cererea) și ieșirea fiecărei API (răspuns) și utilizarea lor, cu exemple.

Cerințe preliminare

  • Versiunea platformei 9.2.21055 sau mai sus cu versiunea Universal Resource Scheduling 3.12.45.7.
  • Utilizarea unuia dintre următoarele tipuri de înregistrări:
    • Resursa rezervabila (resursa rezervabila)
    • Cerință de resurse (msdyn_resourcerequirement)
    • Șablon oră de lucru (msdyn_workhourtemplate)
    • Proiect (msdyn_project)

Tipuri de evenimente din calendar

Când creați un calendar, definiți de câte ori apare un tip de oră de lucru —o dată, toată ziua, în fiecare săptămână sau în fiecare zi sau puteți crea o recurență personalizată. Pentru mai multe informații despre aceste evenimente din calendar, accesați exemplele de mai jos în acest articol.

Apariție

Când un tip de oră de lucru apare o singură dată în calendarul entității, se numește apariție.

De exemplu, luați în considerare o resursă care funcționează între orele 05:00 - 10:00, 26 mai 2021. Aceste API acceptă doar acest tip de apariție, care începe și se termină în aceeași zi. Pentru un alt exemplu, luați în considerare o resursă care funcționează de la 26 mai 2021 la 20:00 10:00 la 27 mai 2021. Nu puteți crea această apariție utilizând doar un apel al msdyn_SaveCalendar API; trebuie să efectuați două apeluri.

Apariție pe tot parcursul zilei

Când un tip de oră de lucru are loc pentru una sau mai multe zile întregi, începând cu miezul nopții (00:00) a datei de începere, este o apariție pe tot parcursul zilei. Durata maximă pentru apariția unei zile este de cinci ani.

De exemplu, o resursă funcționează toată ziua de la 26 mai 2021 până la sfârșitul zilei, la 30 mai 2021. Acesta este un eveniment care durează cinci zile.

Recurență săptămânală

Când un tip de oră de lucru are loc în același timp în anumite zile ale fiecărei săptămâni, se numește recurență săptămânală.

De exemplu, o resursă funcționează între orele 5:00 - 10:00 în fiecare luni, marți și miercuri.

Recurență zilnică

Când un tip de oră de lucru are loc la aceeași oră în fiecare zi, se numește recurență zilnică.

De exemplu, o resursă funcționează între orele 5:00 - 10:00 pentru fiecare zi a săptămânii.

Recurență personalizată

Când un tip de oră de lucru apare la anumite ore în anumite zile ale săptămânii, dar orele sunt diferite în zile diferite, puteți crea o recurență personalizată.

De exemplu, o resursă funcționează de la 5:00 la 10:00 în fiecare luni și de la 12:00 la 15:00 în fiecare miercuri.

Tipuri de ore de lucru

Aceste API acceptă operațiuni de creare, actualizare și ștergere pentru următoarele tipuri de ore de lucru:

Ore lucrătoare

Programul de lucru este timpul în care o entitate este disponibilă pentru a efectua lucrări.

Folosind aceste API-uri, puteți face următoarele:

  • Creați, editați sau ștergeți o apariție de oră de lucru.
  • Creați, editați sau ștergeți o apariție de recurență zilnică.
  • Creați, editați sau ștergeți o apariție de recurență săptămânală.
  • Creați, editați sau ștergeți o apariție de recurență particularizată.
  • Creați, editați sau ștergeți programul de lucru pe tot parcursul zilei.
  • Creați sau modificați capacitatea în timpul programului de lucru.
  • Editați o singură apariție de oră de lucru într-o recurență.
  • Editați Acesta și următoarele apariții într-o recurență.
  • Schimbați apariția unei ore de lucru într-o recurență.
  • Schimbați fusul orar al regulii calendarului.

Folosind acest API nu puteți face următoarele:

  • Șterge o singură apariție de oră de lucru dintr-o recurență.
  • Creați o întâmplare care se întinde pe 24 de ore, dar nu începe și nu se termină la miezul nopții (24:00).
  • Creați, editați sau ștergeți o recurență pe tot parcursul zilei.

Ora nelucrată

Sunt momente în care entitatea nu este disponibilă pentru a lucra din cauza unui motiv nespecificat.

Folosind aceste API-uri, puteți face următoarele:

  • Creați sau editați orele non-lucrătoare pe tot parcursul zilei.
  • Creați sau editați o apariție a orelor de lucru nelucrătoare.
  • Schimbați fusul orar al regulii calendarului.

Folosind aceste API-uri, puteți face următoarele:

  • Creați sau editați o recurență a orelor nelucrătoare.

Pauză

Acestea sunt momente într-o zi lucrătoare în care o entitate ia o pauză și nu este disponibilă pentru muncă. Pauzele nu pot exista fără programul de lucru; trebuie să apară între două ore de lucru într-o zi. Pauzele nu se pot suprapune cu programul de lucru.

Folosind aceste API-uri, puteți face următoarele:

  • Creați sau editați pauze în timpul programului de lucru.

Folosind aceste API-uri, puteți face următoarele:

  • Ștergeți doar pauzele de la apariția sau recurență orelor de lucru.

Indisponibilitate

Sunt momente în care o entitate nu este disponibilă pentru a lucra din cauza unei vacante. Motivul perioadei libere poate fi specificat.

Folosind aceste API-uri, puteți face următoarele:

  • Creați sau editați pauza cu o etichetă.
  • Schimbați fusul orar al regulii calendarului.

Folosind aceste API-uri, puteți face următoarele:

  • Creați sau editați o repetare a orei de oprire.

Închidere firmă

Puteți să creați entități de închidere a afacerii care definesc orele în care afacerea este închisă. Folosind msdyn_SaveCalendar API, puteți seta fiecare entitate să observe sau să ignore orele de închidere a afacerii organizației, folosind cheia opțională ObserveClosure . Când sunt setați să respecte aceste închideri, entitățile nu sunt disponibile pentru muncă.

Salvați calendarul API

Intrare

Solicitarea conține un singur atribut—CalendarEventInfo, care este de tip String . Conține alte câteva atribute care sunt toate încorporate în acest șir.

Notă

În tabelul următor, Tipul reprezintă formatul așteptat pentru a face o solicitare cu succes. Cu toate acestea, întreaga solicitare este analizată ca un singur șir.

CalendarEventInfo

Nume Tip Necesar Descriere
EntityLogicalName Șir Da Această cheie descrie entitatea de la care se apelează API-ul. Calendarul acestei entități urmează să fie creat sau editat.
CalendarId GUID Da Această cheie conține ID-ul calendarului aferent entității descrise mai sus. Când se creează oricare dintre aceste entități, se creează automat și o înregistrare calendaristică. Aceste API-uri editează înregistrarea calendarului adăugând reguli sau modificând regulile existente.
RulesAndRecurrences RulesAndRecurrences Da Această cheie este o matrice și fiecare element conține mai multe atribute, așa cum sunt listate în tabelul din secțiunea următoare. Dimensiunea matricei trebuie să fie de cel puțin una.
IsVaried Boolean No Această cheie ar trebui setată la true pentru scenariile personalizate de recurență.
IsEdit Boolean No Această cheie ar trebui setată la true pentru editarea regulilor existente.
TimeZoneCode Integer No Această cheie ia o valoare întreagă corespunzătoare fusului orar pentru regulile calendarului. Pentru mapare, accesați Coduri de fus orar, mai târziu în acest articol. Valoarea implicită este fusul orar al utilizatorului.
InnerCalendarDescription Șir No Această cheie este necesară numai dacă regula calendarului este pentru pauză. Ar trebui să conțină motivul perioadei libere.
ObserveClosure Boolean No Această cheie este specifică recurențelor. Dacă este setat la true, entitatea observă închiderea afacerii.
RecurrenceEndDate DateTime No Această cheie este specifică recurențelor. Conține data de încheiere a recurenței. Dacă marca de timp este 08:00:00 sau mai devreme, data de încheiere a recurenței este cu o zi înainte de data specificată. Dacă marca de timp este 08:00:01 sau mai târziu, data este respectată ca atare. Valoarea implicită pentru apariții este nulă. Valoarea implicită pentru recurențe este 30 decembrie 9999, 23:59:59, UTC.
RecurrenceSplit Boolean No Această cheie este specifică recurențelor. Este setat la true pentru editarea „Acesta și următoarele apariții” ale unei recurențe.
ResourceId GUID No Această cheie conține SystemUserId sau ResourceId și trebuie transmisă numai atunci când entitatea asociată cu acest apel este o resursă rezervabilă de tip SystemUser. Acest lucru este necesar pentru a verifica privilegiile OwnCalendar în fila Service Management .
UtilizareV2 Semnalizator No Trecerea acestui flag activează versiunea V2 a calendarului orelor de lucru, cu o logică îmbunătățită a regulilor care se suprapun, permițând mai multe recurențe. Pentru mai multe informații, consultați Ce se întâmplă dacă există reguli care se suprapun?

RulesAndRecurrences

Nume Tipul Obligatoriu Descriere
Reguli Reguli Da Această cheie este o matrice și fiecare element conține mai multe atribute, așa cum sunt listate în tabelul din secțiunea următoare. Dimensiunea matricei trebuie să fie de cel puțin una.
RecurrencePattern Șir No Această cheie este specifică recurențelor. În prezent acceptăm doar acest model: FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY poate fi modificat pentru a include mai puține zile; cu toate acestea, FREQ și INTERVAL nu pot fi modificate.
InnerCalendarId GUID No Această cheie este specifică editări. Dacă o regulă este în curs de editare, InnerCalendarId trebuie să fie transmis aici. Dacă un InnerCalendarId nu este trecut, API-ul creează o nouă regulă, chiar dacă este setată cheia IsEdit la adevărat.
Acțiune Integer No Această cheie este specifică recurențelor particularizate. Dacă se creează sau se editează o recurență personalizată, trebuie introduse unul dintre următoarele numere:
  • (1) Adăugarea unei zile la recurență
  • (2) Ștergerea unei zile din recurență
  • (3) Editarea numai a datelor sau orelor de început sau de sfârșit sau a capacității de editare
  • (4) Editarea oricărui lucru în afară de tastele menționate la (3)

Reguli

Nume Tip Obligatoriu Descriere
StartTime DateTime Da Această cheie conține o intrare de dată și oră în format ISO. De exemplu, \"2021-05-15T12:00:00.000Z\". Porțiunea de timp determină ora de începere a orei de lucru în fusul orar specificat mai devreme. Porțiunea de dată determină data de începere a orei de lucru. Aici, 15 mai 2021 este data apariției sau data de începere a recurenței. Dacă modelul a fost BYDAY=TU,WE, dar 15 mai (o sâmbătă) este data, API-ul va crea sau edita automat reguli pentru toate zilele de marți și miercuri care urmează datei de 15 mai. Acesta este cazul în care regula nu trebuie să aibă data corespunzătoare zilei.
EndTime DateTime Da Acesta conține o intrare de dată și oră în format ISO. De exemplu, \"2021-05-15T12:00:00.000Z\". Porțiunea de timp determină ora de încheiere a orei de lucru în fusul orar specificat mai devreme. Partea cu dată trebuie să să conțină aceeași dată ca și porțiunea cu dată a Ora de începere. Singurele excepții sunt:
  • Dacă este o apariție pe tot parcursul zilei. În acest caz, porțiunea de dată ar trebui să reflecte data de încheiere a apariției pe tot parcursul zilei.
  • Evenimentul se termină la sfârșitul zilei, adică la 24:00 a zilei următoare. În acest caz, data ar trebui să fie \"2021-05-16T00:00:00.000Z\". Pentru a specifica data de încheiere a recurenței, modificați atributul RecurrenceEndDate .
WorkHourType Integer Da Această cheie conține un număr care corespunde uneia dintre următoarele opțiuni:
  • (0) Funcționează
  • (1) Pauză
  • (2) Nefuncționează
  • (3) Indisponibilitate
Efort Integer No Această cheie determină capacitatea entității. Trebuie să fie un număr întreg. Valoarea implicită este 1.

Ieșire

Acest API POST creează sau modifică înregistrări de reguli de calendar pentru entitatea selectată. De asemenea, oferă următoarea ieșire.

Nume Tip Descriere
InnerCalendarIds Șir O matrice de InnerCalendarIds GUID-uri care sunt rezultatul operației POST.

Ștergere calendar API

Intrare

Nume Tip Necesar Descriere
EntityLogicalName Șir Da Acest câmp descrie entitatea ale cărei reguli de calendar urmează să fie șterse.
InnerCalendarId GUID Da Acest câmp descrie ID-ul InnerCalendarId care trebuie șters. Dacă există mai multe InnerCalendarIds asociate cu o singură regulă, orice ID este suficient aici. Mai multe informații despre calendarele interioare și exterioare: Entități calendaristice
CalendarId GUID Da Acest câmp descrie CalendarId al entității.
IsVaried Boolean No Acest câmp este specific recurențelor și este setat la yes dacă o regulă de recurență personalizată este ștearsă.
UtilizareV2 Semnalizator No Trecerea acestui flag activează versiunea V2 a calendarului orelor de lucru, cu o logică îmbunătățită a regulilor care se suprapun, permițând mai multe recurențe. Pentru mai multe informații, consultați Ce se întâmplă dacă există reguli care se suprapun?

Ieșire

Acest API POST șterge înregistrări de reguli de calendar pentru entitatea selectată. În plus, oferă următoarea ieșire.

Nume Tip Descriere
InnerCalendarIds Șir O matrice de InnerCalendarIds GUID-uri care sunt rezultatul operației POST.

Încărcați API-ul Calendar

Intrare

Nume: msdyn_LoadCalendars
Tip: Acțiune
Descriere: returnează calendare pentru LoadCalendarsInput dat.

Nume: msdyn_LoadCalendars.LoadCalendarsInput
Tip: Parametru
Descriere: șir în următorul format JSON:

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

Nume: msdyn_LoadCalendarsResponse
Tip: ComplexType
Descriere: conține răspuns din acțiunea msdyn_loadCalendars.

Nume: msdyn_LoadCalendarsResponse.CalendarEvents
Tip: Proprietate
Descriere: șir în următorul format JSON:

{
"calendarId": CalendarEventSlot[]
}

Unde calendarId este un ghid adecvat care reprezintă Ghidul calendarului și CalendarEventSlot este un obiect de următorul format:

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

Cum să apelați API-urile

Aceste API-uri pot fi apelate utilizând browserul.

  1. Deschideți browserul și organizația în care trebuie să faceți aceste modificări de calendar.
  2. Deschideți Instrumente pentru dezvoltatori (selectați Ctrl+Shift+I în Microsoft Edge, selectați F12 în Google Chrome).
  3. În consolă, introduceți următoarea funcție, după înlocuirea [nume-organizație] cu detaliile organizației (de exemplu, 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. După ce această funcție este definită, o puteți apela pentru a crea, edita sau șterge calendare utilizând API-urile. Introduceți următorul apel pentru a salva un calendar:
       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
                   }]
               }]
           }"
       })

Introduceți următorul apel pentru a șterge un calendar:

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

Consultați secțiunea următoare pentru exemple despre cum să efectuați diferite apeluri în funcție de nevoile dvs. Înlocuiți action apelul de funcție din pas 3 cu msdyn_SaveCalendar sau msdyn_DeleteCalendar și înlocuiți data cu CalendarEventInforelevantă.

Consultați, de asemenea, următoarea captură de ecran pentru o Power Automate apel pentru msdyn_SaveCalendar acțiune: Power Automate apelați pentru acțiunea msdyn_SaveCalendar.

Exemple de scenarii pentru utilizarea API

Să parcurgem câteva scenarii pentru care puteți utiliza aceste API-uri.

Bob și Tim sunt șoferi de camioane de livrare pentru Contoso Enterprises din Bellevue, Washington. Dispeceratul lor, Debbie, este responsabilă pentru modificarea calendarelor lor de lucru. Debbie face aceste modificări utilizând API-urile msdyn_SaveCalendar și msdyn_DeleteCalendar .

Creați o apariție de oră de lucru.

Bob este programat să circule pentru a livra colete de la 9:00 la 17:00 pe 15 mai 2021. Debbie folosește msdyn_SaveCalendar API-ul.

Solicitare

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

Răspuns

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

Editați o oră de lucru.

Programul lui Bob se schimbă apoi pentru a începe la ora 10:00 pe 15 mai 2021. Debbie folosește msdyn_SaveCalendar API-ul.

Solicitare

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

Răspuns

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

Ștergeți o apariție de oră de lucru.

Apare o urgență în familie și Bob trebuie să anuleze o zi întreagă de muncă. Debbie folosește msdyn_DeleteCalendar API-ul.

Solicitare

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

Răspuns

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

Creați o recurență zilnică cu o oră de lucru

Începând cu 20 mai 2021, Bob decide să lucreze cu Contoso toată săptămâna de la 8:00 la 17:00 și nu va mai lucra acolo pe 15 iulie 2021.

Solicitare

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

Răspuns

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

Editați o oră de lucru repetată zilnic cu o capacitate crescută

Bob decide să nu mai lucreze pentru întreaga săptămână din 15 iunie 2021 pentru a lua o pauză. Până atunci, Bob va continua programul pentru toată săptămâna, așa cum sa convenit anterior. Debbie face aceste modificări utilizând msdyn_SaveCalendar API-ul.

Solicitare

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

Răspuns

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

Creați o recurență săptămânală cu o oră de lucru

Începând cu 16 iunie 2021, Bob va lucra de la 8:00 la 17:00 miercurea și vineri și va lua o pauză de la 12:00 la 12:30 pentru prânz. Debbie folosește msdyn_SaveCalendar API-ul, dar face o greșeală și programează pauza de la 12:00 la 13:00.

Solicitare

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

Răspuns

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

Editați o pauză dintr-o oră de lucru repetată săptămânal

Apoi, Debbie corectează greșeala și modifică întreruperea de la 12:00 la 12:30, utilizând msdyn_SaveCalendar API.

Solicitare

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

Răspuns

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

Creați o recurență personalizată de o oră de lucru

Tim lucrează pentru Contoso în zilele de luni de la 8:00 AM la 5:00 PM și miercuri de la 11:00 la 3:00 PM. Tim a început să lucreze pentru Contoso pe 16 mai 2021. Debbie folosește msdyn_SaveCalendar API-ul pentru a crea programul de lucru al lui Tim.

Solicitare

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

Răspuns

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

Editați o recurență personalizată a unei ore de lucru

Programul lui Tim se schimbă apoi la programul de lucru de miercuri, între orele 17:00 și 20:00, și joi, între 10:00 și 12:00. Luni este eliminată din programul lui Tim. Debbie folosește msdyn_SaveCalendar API-ul pentru a realiza acest lucru.

Solicitare

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

Răspuns

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

Editați o apariție a orei de lucru într-o recurență

Pe 26 mai 2021, Tim poate lucra numai de la 13:00 la 19:00. Debbie folosește msdyn_SaveCalendar API-ul aici.

Solicitare

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

Răspuns

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

Ștergeți o recurență personalizată de o oră de lucru

Tim a decis să părăsească compania și trebuie să-și ștergă întregul program. Debbie folosește msdyn_DeleteCalendar API-ul aici.

Solicitare

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

Răspuns

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

Creeați timp liber

Tim își va lua trei zile libere pentru o vacanță de familie începând cu 9 iunie 2021.

Solicitare

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

Răspuns

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

Creați program de lucru pe tot parcursul zilei

Tim are o tură de 72 de ore începând cu 20 mai 2021. Debbie folosește msdyn_SaveCalendar API-ul pentru a crea programul de lucru al lui Tim.

Solicitare

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

Răspuns

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

Întrebări frecvente despre

Primesc eroarea „StartTime nu poate fi mai mare sau egal cu EndTime”.

Asigurați-vă că nu există suprapuneri în intervalele de timp ale diferitelor reguli calendaristice. Verificați datele pentru a vă asigura că StartTime nu este mai târziu de EndTime. De asemenea, verificați dacă orele respectă formatul de 24 de ore.

Pot fi utilizate API-urile pentru a actualiza entitatea „Șabloane de oră de lucru”?

Da, puteți utiliza acest API pentru a crea și actualiza șabloane de ore de lucru, în plus față de orele de lucru ale resurselor.

Primesc eroarea „A apărut o eroare la deserializarea obiectului de tip Microsoft.Dynamics.UCICalendar.Plugins.SaveCalendarContract+CalendarEventInfo. Sursa de intrare nu este formatată corect.
or
Se așteaptă starea „Element”... S-a întâlnit „Text” cu numele „”, spațiu de nume „”.

Asigurați-vă că șirul este analizat corect. S-ar putea să lipsească paranteze, virgule sau punct și virgulă.

Primesc eroarea „Model de recurență nevalid. Consultați documentația pentru modelele acceptate."

În prezent acceptăm doar acest model: FREQ=DAILY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY poate fi modificat pentru a include mai puține zile; cu toate acestea, FREQ și INTERVAL nu pot fi modificate. Asigurați-vă că nu există spații în model.

Cum obținem informații despre CalendarId și InnerCalendarId al resursei?

CalendarId poate fi preluat din atributele resursei. Efectuați acest apel pentru a obține aceste informații: [org-url]/api/data/v9.1/bookableresources([bookableresourceGUID]).

Un exemplu de apel anterior ar fi [org-url]/api/data/v9.1/bookableresources(7bb0224b-6712-ec11-94f9-000d3a6d888e).

InnerCalendarId poate fi preluat din atributele calendarului. Efectuați acest apel pentru a obține aceste informații: [org-url]/api/data/v9.1/calendars([calendar-id-from-above-call])?$expand=calendar_calendar_rules.

Un exemplu de apel anterior este [org-url]/api/data/v9.1/calendars(02481736-1b6a-4d49-9ebd-a5bd041c1c99)?$expand=calendar_calendar_rules.

Ce se întâmplă dacă există reguli care se suprapun?

Există câteva ranguri în care se încadrează regulile:

  • Locul 1 - apariția zilnică (lucru/nefuncțional) și apariția timpului liber.
  • Locul 0 - recurență săptămânală (funcțional/nefuncțional).

Reguli care se suprapun V2

  • Regulile de rangul 1 au o prioritate mai mare decât regulile de rangul 0. Dacă există două reguli (una din fiecare rang) în aceeași zi, apariția zilnică sau apariția timpului liber au prioritate față de recurența săptămânală.
  • Când există mai multe reguli de rang 0 în același interval de date:
    • Dacă orele nu se intersectează, ambele vor rămâne în calendar.
    • Dacă timpii se intersectează, regula care a fost creată/modificată cel mai recent este cea care este luată în considerare pentru calendarul resursei. Toate celelalte reguli care se intersectează în intervalul de date sunt eliminate. Dacă unele reguli de rang 0 au intersecții la unele date, dar nu la altele, regula este îmbinată pentru a păstra secțiunile care nu se intersectează, în timp ce porțiunile care se intersectează sunt eliminate.

Exemple de comportament al calendarului V2:

Exemplul 1 - Orele de lucru repetate: Date suprapuse fără zile/ore suprapuse

Pentru un anumit interval de date, un tehnician lucrează în ture de dimineață, după-amiază sau de noapte în diferite zile.

  1. Creați o primă regulă de calendar care se repetă pentru un anumit interval de date. De exemplu: Repetați Luni, Marți; 1.1-4.1; 8:00-17:00 ET.

  2. Creați o a doua regulă de calendar care se repetă pentru un interval de date care se intersectează, asigurându-vă în același timp că orele de lucru nu se intersectează cu zilele sau orele anterioare. De exemplu: Repetați miercuri, joi; 1.1-4.1; 8:00-17:00 ET sau Repetare Luni, Mar; 1.1-4.1; 17:00-20:00 ET.

Rezultat: ambele reguli ale calendarului rămân și coexistă una lângă alta.

Exemplul 2 - Orele de lucru repetate: unele date care se suprapun, cu toate zilele suprapuse și a doua regulă începe/se termină înainte sau după prima regulă

Un tehnician primește un nou program de lucru, care înlocuiește câteva săptămâni din vechiul program. Prin contract, lucrează întotdeauna în aceleași zile în fiecare săptămână.

  1. Creați o primă regulă de calendar care se repetă pentru un anumit interval de date. De exemplu: Repetați Luni, Marți; 2.1-4.1; 8:00-17:00 ET.

  2. Creați o a doua regulă de calendar care se repetă pentru un interval de date suprapus, în care toate zilele au ore de lucru suprapuse. Alegeți date de începere/sfârșire pentru această nouă regulă, care sunt înainte sau după data de început/terminare pentru prima regulă. De exemplu: Repetați Luni, Marți; 3.1-5.1; 13:00-20:00 ET.

Rezultat: prima regulă este trunchiată pentru a se potrivi cu data de început/terminare a celei de-a doua reguli. De exemplu: Repetați Luni, Marți; 2.1-2.28; 8:00-17:00 ET ȘI Se repetă Luni, Mar; 3.1-5.1; 13:00-20:00 ET.

Exemplul 3 - Orele de lucru repetate: toate datele care se suprapun, cu unele zile/ore care se suprapun

Tehnicianul este lucrător contractual pe o perioadă determinată de 2 luni. Ei au convenit să preia muncă suplimentară în câteva zile. Vor să schimbe programul de lucru de marți la o oră mai devreme/mai târziu.

  1. Creați câteva reguli de calendar care se repetă pentru un anumit interval de date. De exemplu: Repetați Luni, Marți; 2.1-4.1; 8:00-12:00 ET ȘI Repetare marți, miercuri; 2.1-4.1, 13:00-17:00 ET.

  2. Creați o nouă regulă de calendar care se repetă pentru același interval de date. Alegeți zile/ore care se suprapun parțial cu regulile originale. De exemplu: Repetați marți, joi ; 2.1-4.1; 10:00-14:00 ET.

Rezultat: noua regulă o suprascrie pe cea veche acolo unde există suprapuneri și le lasă pe celelalte neschimbate. De exemplu: Repetați luni; 2.1-4.1; 8:00-12:00 ET ȘI Repetare miercuri; 2.1-4.1; 13:00-17:00 ET ȘI Repetare marți, joi ; 2.1-4.1; 10:00-14:00 ET.

Exemplul 4 - Orele de lucru repetate: date noi de regulă incluse în regula veche, unele zile/ore suprapuse

Un tehnician lucrează între orele 8:00 și 17:00, de luni până vineri, în fiecare săptămână. Doar timp de două săptămâni, se vor ocupa de un proiect special de urgență în fiecare luni-miercuri, cu ore de lucru diferite între 6:00 și 18:00.

  1. Creați o primă regulă de calendar care se repetă pentru un anumit interval de date. De exemplu: Repetați Luni, Marți, Miercuri, Joi, Vineri; 1.1-Fără dată de încheiere; 8:00-17:00 ET.

  2. Creați o a doua regulă de calendar care se repetă în intervalul de date de mai sus, alegeți orele de lucru care se suprapun în unele zile. De exemplu: Se repetă Luni, Marți, Miercuri; 5.1-5.14; 6:00-18:00 ET.

Rezultat: calendarul ar trebui să aibă patru reguli care se repetă până la sfârșitul acestui exercițiu:

  • Trunchiați prima regulă la data de începere a celei de-a doua reguli
  • A doua regulă calendaristică
  • Creați o nouă regulă similară cu prima regulă, dar cu datele celei de-a doua reguli pentru zilele care nu se suprapun
  • Trunchiați prima regulă pentru a începe de la data de încheiere a celei de-a doua reguli, fără dată de încheiere

De exemplu: Repetați Luni, Marți, Miercuri, Joi, Vineri; 1,1–4,30; 8:00-17:00 ET ȘI Repetare Luni, Marți, Miercuri; 5.1-5.14; 6am-6pm ET ȘI Repetare joi, vineri, 5.1-5.14; 8:00-17:00 ET ȘI Repetare Luni, Marți, Miercuri, Joi, Vineri; 5.15–Fără dată de încheiere; 8:00-17:00 ET

Exemplul 5 - Orele de lucru nerepetate (ocurență, regulă de rang 1)

Un tehnician are un număr de zile de coeziune în echipă, care au prioritate față de toate celelalte ore de lucru din ziua respectivă.

  1. Creați o regulă de calendar care se repetă pentru un anumit interval de date. De exemplu: Repetați Luni, Marți, Miercuri, Joi, Vineri; 1.1-Fără dată de încheiere; 8:00-17:00 ET.

  2. Creați o regulă de calendar care nu se repetă în intervalul de date de mai sus. Alegeți orele de lucru care se suprapun în unele zile. De exemplu: Nerepetare; 6,21; 7:00-13:00 ET.

Rezultat: Calendarul ar trebui să aibă o regulă de nerepetare (ocurență) până la sfârșitul exercițiului. Regula de nerepetare anulează evenimentul de repetare suprapusă pentru întreaga zi. De exemplu: Repetați Luni, Marți, Miercuri, Joi, Vineri; 1.1-Fără dată de încheiere cu excepția 6.21; nerepetarea; 6,21; 7:00-13:00 ET.

Reguli care se suprapun V1

  • Regulile de rangul 1 au o prioritate mai mare decât regulile de rangul 0. Deci, dacă au existat două reguli (una din fiecare rang) în aceeași zi, apariția zilnică sau apariția timpului liber au prioritate față de recurența săptămânală.
  • Dacă există două reguli cu același rang, regula care a fost creată/modificată cel mai recent va fi cea care este luată în considerare pentru calendarul resursei.
  • Rețineți că aparițiile pe tot parcursul zilei sunt de rangul 1, așa că este recomandabil să luați în considerare schimbarea într-o recurență săptămânală pentru a putea adăuga orele de lucru pentru apariții și a le respecta.
  • Atunci când există o oră de lucru și se creează o pauză (timp liber) care se suprapune cu aceasta, regulile sunt divizate într-un mod care să asigure respectarea timpului liber, iar timpul rămas ca oră de lucru va rămâne așa cum este. De exemplu, dacă există ore de lucru între orele 08:00 AM și 5:00 PM pe 21 septembrie și se adaugă o apariție de timp liber de la 3:00 PM la 7:00 PM pe 21 septembrie, acest lucru va fi rezolvat astfel: programul de lucru va fi între orele 8:00 AM și 3:00 PM, iar de la 3:00 PM la 7:00 PM este timp liber. Însă dacă regulile au fost create în ordinea opusă (s-a creat mai întâi timpul liber și apoi s-au creat orele de lucru), indiferent de intervalele de timp, doar ora de lucru va fi selectată din nou. Timpul liber va fi înlocuit.

Coduri fus orar

Enum Fus orar
0 (GMT-12:00) Linia de schimbare a datei, vest
1 (GMT+13:00) Samoa
2 (GMT-10:00) Hawaii
3 (GMT-09:00) Alaska
4 (GMT-08:00) Ora coastei Pacificului (SUA și Canada)
5 (GMT-08:00) Baja California
6 (GMT-11:00) Timp Universal-11
7 (GMT-10:00) Insulele Aleutine
8 (GMT-09:30) Insulele Marchize
9 (GMT-09:00) Timp universal-09
10 (GMT-07:00) Ora regiunii muntoase (SUA și Canada)
11 (GMT-08:00) Timp universal-08
12 (GMT-07:00) Chihuahua, La Paz, Mazatlan
15 (GMT-07:00) Arizona
20 (GMT-06:00) Ora regiunii centrale (SUA și Canada)
25 (GMT-06:00) Saskatchewan
29 (GMT-06:00) Guadalajara, Mexico City, Monterrey
33 (GMT-06:00) America Centrală
34 (GMT-06:00) Insula Paștelui
35 (GMT-05:00) Ora regiunii estice (SUA și Canada)
40 (GMT-05:00) Indiana (Est)
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) Ora Coastei Atlanticului (Canada)
51 (GMT-05:00) Turks și Caicos
55 (GMT-04:00) Georgetown, La Paz, San Juan
56 (GMT-04:00) Santiago
58 (GMT-04:00) Cuiaba
59 (GMT-04:00) Asuncion
60 (GMT-03:30) Newfoundland
65 (GMT-03:00) Brasilia
69 (GMT-03:00) Buenos Aires
70 (GMT-03:00) Cayenne, Fortaleza
71 (GMT-03:00) Salvador
72 (GMT-03:00) Saint-Pierre și Miquelon
73 (GMT-03:00) Groenlanda
74 (GMT-03:00) Montevideo
75 (GMT-02:00) Atlanticul Mijlociu
76 (GMT-02:00) Timp universal standard-02
77 (GMT-03:00) Araguaina
80 (GMT-01:00) Azore
83 (GMT-01:00) Insulele Cabo Verde
84 (GMT+01:00) Casablanca
85 (GMT+00:00) Dublin, Edinburgh, Lisabona, Londra
90 (GMT+00:00) Monrovia, Reykjavik
92 (GMT) Ora universală
95 (GMT+01:00) Belgrad, Bratislava, Budapesta, Ljubljana, Praga
100 (GMT+01:00) Sarajevo, Skopje, Varșovia, Zagreb
105 (GMT+01:00) Bruxelles, Copenhaga, Madrid, Paris
110 (GMT+01:00) Amsterdam, Berlin, Berna, Roma, Stockholm, Viena
113 (GMT+01:00) Africa central-vestică
115 (GMT+02:00) Chișinău
120 (GMT+02:00) Cairo
125 (GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius
129 (GMT+02:00) Amman
130 (GMT+02:00) Atena, București
131 (GMT+02:00) Beirut
133 (GMT+02:00) Damasc
134 (GMT+03:00) Istanbul
135 (GMT+02:00) Ierusalim
140 (GMT+02:00) Harare, Pretoria
141 (GMT+02:00) Windhoek
142 (GMT+02:00) Gaza, Hebron
145 (GMT+03:00) Moscova, Sankt Petersburg
150 (GMT+03:00) Kuweit, Riad
151 (GMT+03:00) Minsk
155 (GMT+03:00) Nairobi
158 (GMT+03:00) Bagdad
159 (GMT+02:00) Kaliningrad
160 (GMT+03:30) Teheran
165 (GMT+04:00) Abu Dhabi, Muscat
169 (GMT+04:00) Baku
170 (GMT+04:00) Erevan
172 (GMT+04:00) Port Louis
173 (GMT+04:00) Tbilisi
174 (GMT+04:00) Ijevsk, Samara
175 (GMT+04:30) Kabul
176 (GMT+04:00) Astrahan, Ulianovsk
180 (GMT+05:00) Ekaterinburg
184 (GMT+05:00) Islamabad, Karachi
185 (GMT+05:00) Tașkent
190 (GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi
193 (GMT+05:45) Kathmandu
195 (GMT+06:00) Astana
196 (GMT+06:00) Dhaka
197 (GMT+06:00) Omsk
200 (GMT+05:30) Sri Jayawardenepura
201 (GMT+07:00) Novosibirsk
203 (GMT+06:30) Yangon (Rangoon)
205 (GMT+07:00) Bangkok, Hanoi, Jakarta
207 (GMT+07:00) Krasnoiarsk
208 (GMT+07:00) Barnaul, Gorno-Altaisk
209 (GMT+07:00) Hovd
210 (GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi
211 (GMT+07:00) Tomsk
215 (GMT+08:00) Kuala Lumpur, Singapore
220 (GMT+08:00) Taipei
225 (GMT+08:00) Perth
227 (GMT+08:00) Irkutsk
228 (GMT+08:00) Ulan Bator
229 (GMT+09:00) Phenian
230 (GMT+09:00) Seul
231 (GMT+08:45) Eucla
235 (GMT+09:00) Osaka, Sapporo, Tokyo
240 (GMT+09:00) Yakutsk
241 (GMT+09:00) Chita
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) Insula Lord Howe
275 (GMT+10:00) Guam, Port Moresby
276 (GMT+11:00) Insula Bougainville
277 (GMT+11:00) Insula Norfolk
278 (GMT+11:00) Sahalin
279 (GMT+11:00) Ceokurdah
280 (GMT+11:00) Insulele Solomon, Noua Caledonie
281 (GMT+11:00) Magadan
284 (GMT+12:00) Timp universal standard+12
285 (GMT+12:00) Fiji
290 (GMT+12:00) Auckland, Wellington
295 (GMT+12:00) Anadîr, Petropavlovsk-Kamceatski
299 (GMT+12:45) Insulele Chatham
300 (GMT+13:00) Nuku'alofa
301 (GMT-05:00) Chetumal
302 (UTC+02:00) Khartoum
303 (GMT-03:00) Punta Arenas
304 (GMT+04:00) Volgograd
305 (GMT-07:00) Yukon