Jaa


Työtuntikalenterien muokkaaminen ohjelmointirajapintojen avulla

Organisaatioiden on voitava luoda, muokata tai poistaa työtunteja ohjelmallisesti resurssien kalentereissa. Kalentereissa on näkyvissä työtunnit, poissaolot ja tauot, joiden perusteella määritetään resurssin saatavuus työtä aikataulutettaessa. Kyseiset resurssit on aikataulutettava tietyillä aikavyöhykkeillä, niissä joko otetaan tai ei oteta huomioon palvelukatkot ja niiden kapasiteetti voi olla vaihteleva. Lisätietoja työtuntien määrittämisestä Field Service -sovelluksessa on kohdassa Työtuntien lisääminen varattavissa olevaan resurssiin.

Field Service -sovelluksen lisäksi seuraavilla ohjelmointirajapinnoilla voidaan muokata valittujen tietuetyyppien kalenterisääntöjä:

  • Kalenterien tallennuksen ohjelmointirajapinta (msdyn_SaveCalendar) luo tai päivittää valitun entiteetin kalenteritietueet pyyntönä välitettyjen syötteiden perusteella.
  • Kalenterin poistamisen ohjelmointirajapinta (msdyn_DeleteCalendar) poistaa kaikki kalenterin sisäiset säännöt valitun entiteetin kalenterista pyyntönä välitettyjen syötteiden perusteella.
  • Kalenterin tallennuksen tai poiston ohjelmointirajapinnan versio 2 (msdyn_SaveCalendar/msdyn_DeleteCalendar, välitä merkintä UseV2) mahdollistaa samanaikaista työaikaa muuttamalla päällekkäisten sääntöjen logiikkaa. Lisätietoja on kohdassa Mitä tapahtuu, jos järjestelmässä on päällekkäisiä sääntöjä?.

Tässä artikkelissa käsitellään kummankin ohjelmointirajapinnan syötettä (pyyntö) ja tulosta (vastausta) sekä niiden käyttöä esimerkkien avulla.

Edellytykset

  • Ympäristön versio 9.2.21055 tai uudempi ja Universal Resource Schedulingin versio 3.12.45.7.
  • Käytössä on jokin seuraavista tietuetyypeistä:
    • Varattavissa oleva resurssi (bookableresource)
    • Resurssutarpeet (msdyn_resourcerequirement)
    • Työtuntimalli (msdyn_workhourtemplate)
    • Projekti (msdyn_project)

Kalenteritapahtumatyypit

Kalenteria luotaessa määritetään, kuinka monta kertaa työaikatyyppi on toiminnassa – kerran, koko päivän ajan, joka viikko tai joka päivä. Myös mukautetun toistuvuuden luominen on mahdollista. Lisätietoja näistä kalenteritapahtumista on myöhemmin tässä artikkelissa käsiteltävissä esimerkeissä.

Esiintymiskerta

Jos työtuntityyppi esiintyy vain kerran entiteetin kalenterissa, sitä kutsutaan esiintymäksi.

Käytetään esimerkkinä vaikkapa resurssia, jonka työaika 26.5.2021 on 5.00–10.00. Nämä ohjelmointirajapinnat tukevat vain tällaista samana päivänä alkavaa ja päättyvää esiintymätyyppiä. Toisessa esimerkissä resurssin työaika alkaa 26.5.2021 klo 20.00 ja päättyy 27.5.2021 klo 10.00. Tätä esiintymää ei voi luoda käyttämällä vain yhtä msdyn_SaveCalendar-ohjelmointirajapinnan kutsua vaan kutsuja on oltava kaksi.

Koko päivän esiintymä

Jos työtuntityyppi kestää vähintään yhden päivän alkaen alkamispäivänä keskiyöllä (0.00), se on koko päivän esiintymä. Koko päivän esiintymän enimmäiskesto on viisi vuotta.

Resurssi esimerkiksi työskentelee koko päivän alkaen 26.5.2021 ja päättyen 30.5.2021. Tämä koko päivän esiintymä kestää viisi päivää.

Viikoittainen toisto

Työtuntityyppiä, joka esiintyy samaan aikaan valittuina päivinä joka viikko, kutsutaan viikoittaiseksi toistoksi.

Resurssin työaika voi olla esimerkiksi 5.00–10.00 joka maanantai, tiistai ja keskiviikko.

Päivittäinen toisto

Työtuntityyppiä, joka esiintyy samaan aikaan joka päivä, kutsutaan päivittäiseksi toistoksi.

Resurssin työaika voi olla esimerkiksi 5.00–10.00 viikon jokaisena päivänä.

Mukautettu toisto

Jos työtuntityyppi esiintyy tiettyinä aikoina tiettyinä viikonpäivinä mutta ajat vaihtelevat päivittäin, voidaan luoda mukautettu toisto.

Resurssin työaika voi olla esimerkiksi 5.00–10.00 joka maanantai ja 12.00–15.00 joka keskiviikko.

Työtuntityypit

Nämä ohjelmointirajapinnat tukevat seuraavien työtuntityyppien toimintojen luontia, päivitystä ja poistoa:

Työtunnit

Työaika on ne ajat, jolloin entiteetti on käytettävissä työn suorittamista varten.

Näillä ohjelmointirajapinnoilla voi suorittaa seuraavat toimet:

  • Työtuntiesiintymään luonti, muokkaus tai poisto.
  • Työtunnin päivittäisen toiston luonti, muokkaus tai poisto.
  • Työtunnin viikoittaisen toiston luonti, muokkaus tai poisto.
  • Työtunnin mukautetun toiston luonti, muokkaus tai poisto.
  • Koko päivän työtuntien luonti, muokkaus tai poisto.
  • Työtuntien kapasiteetin luonti tai muokkaus.
  • Yksittäisen työtuntiesiintymän muokkaus toistossa.
  • Tämän ja seuraavien esiintymien muokkaus toistossa.
  • Työntuntiesiintymän muutos toistoksi.
  • Kalenterisäännön aikavyöhykkeen muutos.

Tällä ohjelmointirajapinnalla ei voi suorittaa seuraavia toimia:

  • Yksittäisen työtuntiesiintymän poisto toistosta.
  • Sellaisen 24 tuntia käsittävän esiintymän luonti, jonka alkamis- ja päättymisaika ei ole keskiyöllä (0.00).
  • Koko päivän toiston luonti, muokkaus tai poisto.

Muu kuin työaika

Entiteetti ei ole käytettävissä työhön näinä aikoina määrittämättömistä syistä.

Näillä ohjelmointirajapinnoilla voi suorittaa seuraavat toimet:

  • Koko päivä, muu kuin työaika -kohdan luonti tai muokkaus.
  • Muu kuin työaika -esiintymään luonti tai muokkaus.
  • Kalenterisäännön aikavyöhykkeen muutos.

Näillä ohjelmointirajapinnoilla ei voi suorittaa seuraavia toimia:

  • Muu kuin työaika -kohdan toiston luonti tai muokkaus.

Tauko

Nämä ovat työpäivään sijoittuvia ajankohtia, jolloin entiteetti on tauolla eikä ole käytettävissä töitä varten. Taukoja ei voi olla ilman työtunteja, sillä ne sijoittuvat päivän aikana kahden työtunnin väliin. Tauot eivät voi olla päällekkäisiä työtuntien kanssa.

Näillä ohjelmointirajapinnoilla voi suorittaa seuraavat toimet:

  • Työtuntien aikaisten taukojen luonti tai muokkaus.

Näillä ohjelmointirajapinnoilla ei voi suorittaa seuraavia toimia:

  • Taukojen poisto vain työtuntien esiintymästä tai toistosta.

Poissaolo

Entiteetti ei ole käytettävissä työhön näinä aikoina loman vuoksi. Poissaolon syy voidaan määrittää.

Näillä ohjelmointirajapinnoilla voi suorittaa seuraavat toimet:

  • Poissaolon ja sen selitteen luonti tai muokkaus.
  • Kalenterisäännön aikavyöhykkeen muutos.

Näillä ohjelmointirajapinnoilla ei voi suorittaa seuraavia toimia:

  • Poissaolon tuntitoiston luonti, muokkaus tai poisto.

Palvelukatko

Voit luoda palvelukatkoentiteettejä, jotka määrittävät yrityksen sulkemisajankohdan. Kukin entiteetti voidaan määrittää msdyn_SaveCalendar-ohjelmointirajapinnan avulla noudattamaan tai ohittamaan organisaatioon palvelukatkoajankohdat käyttämällä valinnaista ObserveClosure-avainta.. Kun ne on määritetty noudattamaan näitä palvelukatkoja, entiteetit eivät ole käytettävissä töihin.

Kalenterin tallentamisen ohjelmointirajapinta

Syöte

Pyynnössä on vain yksi merkkijono-tyyppinen määrite CalendarEventInfo. Siinä on useita muita määritteitä, jotka on kaikki upotettu tähän merkkijonoon.

Huomautus

Seuraavassa taulukossa Tyyppi ilmaisee muodon, jolla pyynnön voidaan odottaa onnistuvan. Koko pyyntö kuitenkin jäsennetään yhtenä merkkijonona.

CalendarEventInfo

Nimi Tyyppi Pakollinen Kuvaus
EntityLogicalName String Kyllä Tämä avain kuvailee entiteetin, josta ohjelmointirajapintaa kutsutaan. Tämän entiteetin kalenterin entiteetti on luotava tai sitä on muokattava.
CalendarId GUID Kyllä Tämä avain sisältää edellä kuvattuun entiteettiin liittyvä kalenteritunnuksen. Kun jokin näistä entiteeteistä luodaan, myös kalenteritietue luodaan automaattisesti. Nämä ohjelmointirajapinnat muokkaavat kyseistä kalenteritietuetta lisäämään sääntöjä tai muokkaamalla aiemmin luotuja sääntöjä.
RulesAndRecurrences RulesAndRecurrences Kyllä Tämä avain on matriisi, ja kussakin elementissä on useita määritteitä, joiden luettelo on seuraavassa osassa olevassa taulukossa. Matriisin koon on oltava vähintään yksi.
IsVaried Boolean No Tämän avaimen arvoksi on määritettävä true mukautetuissa toistoskenaarioissa.
IsEdit Boolean No Tämän avaimen arvoksi on määritettävä true muokattaessa aiemmin luotuja sääntöjä.
TimeZoneCode Integer No Tämä avain käyttää kokonaislukuarvoa, joka vastaa kalenterisääntöjen aikavyöhykettä. Lisätietoja yhdistämismäärityksistä on myöhemmin tämän artikkelin kohdassa Aikavyöhykekoodit. Oletusarvo on käyttäjän aikavyöhyke.
InnerCalendarDescription String No Tätä avainta tarvitaan vain, jos kalenterisääntö koskee poissaoloa. Sen pitäisi sisältää poissaolon syyn.
ObserveClosure Boolean No Tämä avain koskee toistoja. Jos sen arvoksi on määritetty true, entiteetin on noudatettava palvelukatkoja.
RecurrenceEndDate DateTime No Tämä avain koskee toistoja. Se sisältää toiston päättymispäivän. Jos aikaleima on 08:00:00 tai sitä aikaisempi ajankohta, toiston päättymispäivämäärä on yksi päivä ennen määritettyä päivämäärää. Jos aikaleima on 08:00:01 tai sitä myöhäisempi ajankohta, päivämäärää noudatetaan sellaisenaan. Esiintymien oletusarvo on tyhjäarvo. Toistojen oletusarvo on 30.12.9999, 23:59:59, UTC.
RecurrenceSplit Boolean No Tämä avain koskee toistoja. Määritetään arvoon true toiston Tämä ja tulevat tapahtumat -asetuksen muokkausta varten.
ResourceId GUID No SystemUserId tai ResourceId sisältyy tähän arvoon, ja ase voidaan välittää vain, jos tähän kutsuun liitetty entiteetti on varattavissa oleva resurssi, jonka tyyppi on SystemUser. Tämä on välttämätöntä, jotta OwnCalendar-oikeudet voidaan tarkistaa Palvelujen hallinta -välilehdessä.
UseV2 Merkintä No Kun tämä merkintä välitetään, otetaan käyttöön työvuorokalenterin versio 2, joka sisältää useat toistot sallivien päällekkäisten sääntöjen logiikan. Lisätietoja on kohdassa Mitä tapahtuu, jos järjestelmässä on päällekkäisiä sääntöjä?.

RulesAndRecurrences

Name Type Pakolliset Kuvaus
Säännöt Säännöt Kyllä Tämä avain on matriisi, ja kussakin elementissä on useita määritteitä, joiden luettelo on seuraavassa osassa olevassa taulukossa. Matriisin koon on oltava vähintään yksi.
RecurrencePattern String No Tämä avain koskee toistoja. Vain seuraavaa toistumiskaavaa tuetaan tällä hetkellä: FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY voidaan muuttaa sisältämään vähemmän päiviä. Arvoja FREQ ja INTERVAL ei voi kuitenkaan muuttaa.
InnerCalendarId GUID No Tämä avain koskee muokkausta. Jos sääntöä muokataan, InnerCalendarId on välitettävä tänne. Jos InnerCalendarId-arvoa ei välitetä, ohjelmointirajapinta luo uuden säännön, vaikka IsEdit-avaimen arvoksi on määritetty tosi.
Toimi Integer No Tämä avain koskee mukautettuja toistoja. Jos mukautettua toistoa luodaan tai sitä muokataan, jokin seuraavista luvuista on annettava:
  • (1) Toistoon lisätään päivä
  • (2) Toistosta poistetaan päivä
  • (3) Vain alkamis- tai päättymispäivää tai vastaavia aikoja muokataan tai kapasiteettia muokataan
  • (4) Muokataan jotain muuta avainta kuin kohdassa (3) mainittua avainta

Säännöt

Nimi Laji Pakollinen Kuvaus
Aloitusaika DateTime Kyllä Tämä avain sisältää päivämäärä- ja aikamerkinnän ISO-muodossa. Esimerkki: \"2021-05-15T12:00:00.000Z\". Aikaosa määrittää työtunnin alkamisajan aiemmin määritetyllä aikavyöhykkeellä. Päivämääräosa määrittää työtunnin alkamispäivän. Tässä 15.5.2021 on tapahtuman päivämäärä tai toiston alkamispäivä. Jos toistuvuuskaavio oli BYDAY=TU,WE mutta päivämäärä on 15.5. (lauantai), ohjelmointirajapinta luo tai muokkaa automaattisesti säännöt kaikille 15.5. jälkeisille tiistaille ja keskiviikoille. Näin tapahtuu, kun säännöllä ei ole tarvitse olla päivää vastaavaa päivämäärää.
EndTime DateTime Kyllä Tämä sisältää päivämäärä- ja aikamerkinnän ISO-muodossa. Esimerkki: \"2021-05-15T12:00:00.000Z\". Aikaosa määrittää työtunnin päättymisajan aiemmin määritetyllä aikavyöhykkeellä. Päivämääräosan onsisällettävä sama päivämäärä kuin mikä on StartTime-päivämääräosassa. Ainoastaan seuraavat poikkeukset ovat mahdollisia:
  • Kyse on koko päivän esiintymästä. Siinä tapauksessa päivämäärän osan on vastattava koko päivän esiintymän päättymispäivämäärää.
  • Esiintymä päättyy kyseisen päivän päättyessä eli 0.00 seuraavana päivänä. Siinä tapauksen päivämäärän on oltava \"2021-05-16T00:00:00.000Z\". Määritä toiston päättymispäivä muokkaamalla RecurrenceEndDate-määritettä.
WorkHourType Integer Kyllä Tämä avain sisältää luvun, joka vastaa yhtä seuraavista vaihtoehdoista:
  • (0) Töissä
  • (1) Tauko
  • (2) Ei töissä
  • (3) Poissaolo
Työmäärä Integer No Tämä avain määrittää entiteetin kapasiteetin. Sen on oltava kokonaisluku. Oletusarvo on 1.

Tuloste

Tämä POST API luo valitun entiteetin kalenterisääntötietueita tai muokkaa niitä. Lisäksi sen tuloste on seuraava.

Nimi Tyyppi Kuvaus
InnerCalendarIds String Niiden InnerCalendarIds-GUID-tunnusten matriisi, jotka oli POST-toiminnon tulos.

Kalenterin poistamisen ohjelmointirajapinta

Syöte

Nimi Tyyppi Pakollinen Kuvaus
EntityLogicalName String Kyllä Tämä kenttää kuvaa entiteetin, jonka kalenterisäännöt ollaan poistamassa.
InnerCalendarId GUID Kyllä Tämä kenttä kuvaa poistettavan InnerCalendarId-määritteen tunnuksen. Jos yhteen sääntöön on liitetty useita InnerCalendarIds-määritteitä, mitä tahansa voi käyttää tässä. Lisätietoja sisäisistä ja ulkoisista kalentereista: Kalenterientiteetit
CalendarId GUID Kyllä Tämä kenttä kuvaa entiteetin CalendarId-määritettä.
IsVaried Boolean No Tämä kenttä koskee toistoja ja sen arvoksi on määritetty yes, jos mukautettua toistosääntöä ollaan poistamassa.
UseV2 Merkintä No Kun tämä merkintä välitetään, otetaan käyttöön työvuorokalenterin versio 2, joka sisältää useat toistot sallivien päällekkäisten sääntöjen logiikan. Lisätietoja on kohdassa Mitä tapahtuu, jos järjestelmässä on päällekkäisiä sääntöjä?.

Tuloste

Tämä POST API poistaa valitun entiteetin kalenterisääntötietueet. Lisäksi sen tuloste on seuraava.

Nimi Laji Kuvaus
InnerCalendarIds String Niiden InnerCalendarIds-GUID-tunnusten matriisi, jotka oli POST-toiminnon tulos.

Kalenterin ohjelmointirajapinnan lataaminen

Syöte

Nimi: msdyn_LoadCalendars
Tyyppi: Toiminto
Kuvaus: Palauttaa annetun LoadCalendarsInput-kohteen kalenterit.

Nimi: msdyn_LoadCalendars.LoadCalendarsInput
Tyyppi: Parametri
Kuvaus: Merkkijono seuraavassa JSON-muodossa:

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

Nimi: msdyn_LoadCalendarsResponse
Tyyppi: ComplexType
Kuvaus: Sisältää msdyn_loadCalendars-toiminnon vastauksen.

Nimi: msdyn_LoadCalendarsResponse.CalendarEvents
Tyyppi: Ominaisuus
Kuvaus: Merkkijono seuraavassa JSON-muodossa:

{
"calendarId": CalendarEventSlot[]
}

Kun calendarId on Calendar-kohteen oikea GUID ja CalendarEventSlot on objekti seuraavassa muodossa:

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

Ohjelmointirajapintojen kutsuminen

Näitä ohjelmointirajapintoja voidaan kutsua selaimen avulla.

  1. Avaa selain ja organisaatio, jossa on tehtävä kalenterimuutoksia.
  2. Avaa kehittäjien työkalut (valitse Microsoft Edgessä Ctrl+Vaihto+I tai paina F12-näppäintä Google Chromessa).
  3. Anna konsolissa seuraava funktio sen jälkeen kun [org-name]-kohdan tilalle on vaihdettu organisaation tiedot (kuten 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. Kun tämä funktio on määritetty, sen kutsumalla voidaan luoda, muokata ja poistaa kalentereita ohjelmointirajapintojen avulla. Tallenna kalenteri kirjoittamalla seuraava kutsu:
       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
                   }]
               }]
           }"
       })

Poista kalenteri kirjoittamalla seuraava kutsu:

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

Seuraavassa osassa on esimerkkejä erilaisten, omia tarpeita vastaavien kutsujen tekemisestä. Vaihda kohdan action tilalle funktiokutsun vaiheessa 3 msdyn_SaveCalendar tai msdyn_DeleteCalendar ja vaihda kohdan data tilalle soveltuva CalendarEventInfo.

Katso myös seuraava näyttökuva msdyn_SaveCalendar-toiminnon Power Automate -kutsusta: msdyn_SaveCalendar-toiminnon Power Automate -kutsu.

Esimerkkejä ohjelmointirajapinnan käyttöskenaarioista

Käydään seuraavaksi läpi skenaarioita, joissa näitä ohjelmistorajapintoja käytetään.

Bob ja Tim ovat jakeluautonkuljettajia Contoso Enterprisesilla Bellevuessa, Washingtonissa. Heidän aikatauluttaja Debbie vastaa muutosten tekemisestä heidän työtuntikalentereihin. Debbie tekee nämä muutokset käyttämällä msdyn_SaveCalendar- ja msdyn_DeleteCalendar-ohjelmointirajapintoja.

Työtuntiesiintymän luominen

Bob on aikataulutettu toimittamaan paketteja 9.00–17.00 15.5.2021. Debbie käyttää msdyn_SaveCalendar-ohjelmointirajapintaa.

Pyyntö

{
 "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-15T09:00:00.000Z\",\"EndTime\":\"2021-05-15T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}]}]}"
}

Response

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

Työtuntiesiintymän muokkaaminen

Bobin aikataulu muuttuu sitten alkamaan 10.00 15.5.2021. Debbie käyttää msdyn_SaveCalendar-ohjelmointirajapintaa.

Pyyntö

{
 "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"IsEdit\":\"true\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-15T10:00:00.000Z\",\"EndTime\":\"2021-05-15T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}], \"InnerCalendarId\":\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"}]}"
}

Response

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

Työtuntiesiintymän poistaminen

Perheessä on hätätilanne ja Bobin on peruutettava koko työpäivä. Debbie käyttää msdyn_DeleteCalendar-ohjelmointirajapintaa.

Pyydä

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

Response

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

Päivittäisen toiston luominen

20.5.2021 alkaen Bob päättää työskennellä Contosolla viikon jokaisena päivänä klo 8.00–17.00 ja lopettaa työskentelyn siellä 15.7.2021.

Pyydä

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

Response

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

Työtunnin päivittäisen toiston muokkaaminen kapasiteetin kasvaessa

Bob päättää lopettaa työnteon koko viikoksi 15.6.2021 alkaen pitääkseen tauon. Siihen saakka Bob jatkaa sen koko viikon aikataulun mukaisesti, jonka hän aiemmin hyväksyi. Debbie tekee nämä muutokset käyttämällä msdyn_SaveCalendar-ohjelmointirajapintaa.

Pyyntö

{
 "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RecurrenceEndDate\":\"2021-06-15T00:00:00.000Z\",\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-20T08:00:00.000Z\",\"EndTime\":\"2021-05-20T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"InnerCalendarId\":\"20f6cfa7-cfbe-eb11-a81d-000d3a6e4359\",\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA\"}]}"
}

Response

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

Viikoittaisen toiston luominen

Alkaen 16.6.2021 Bob työskentelee klo 8.00–17.00 keskiviikkoisin ja perjantaisin ja pitää klo 12.00–12.30 lounastauon. Debbie käyttää msdyn_SaveCalendarohjelmointirajapintaa, mutta aikatauluttaa tauon virheellisesti ajalle 12.00–13.00.

Pyydä

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

Response

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

Tauon muokkaaminen työtunnin viikoittaisesta toistosta

Debbie korjaa sitten virheensä ja muuttaa tauon ajankohdaksi 12.00–12.30 msdyn_SaveCalendar-ohjelmointirajapinnan avulla.

Pyyntö

{
  "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"IsEdit\":\"true\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-06-15T08:00:00.000Z\",\"EndTime\":\"2021-06-15T12:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}, {\"StartTime\":\"2021-06-15T12:00:00.000Z\",\"EndTime\":\"2021-06-15T12:30:00.000Z\",\"Effort\":null,\"WorkHourType\":1}, {\"StartTime\":\"2021-06-15T12:30:00.000Z\",\"EndTime\":\"2021-06-15T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"InnerCalendarId\":\"1f894441-d0be-eb11-a81d-000d3a6e4359\",\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=WE,TH,FR\"}]}"
}

Response

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

Mukautetun toiston luominen

Tim työskentelee Contosossa maanantaisin 8–17 ja keskiviikkoisin klo 11–15. Tim aloitti Contosolla työskentelyn 16.5.2021. Debbie luo Timin työtunnit käyttämällä msdyn_SaveCalendar-ohjelmointirajapintaa.

Pyyntö

{
"CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"IsVaried\":true,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-16T08:00:00.000Z\",\"EndTime\":\"2021-05-16T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":1,\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=MO\"},{\"Rules\":[{\"StartTime\":\"2021-05-16T11:00:00.000Z\",\"EndTime\":\"2021-05-16T15:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":1,\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=WE\"}]}"
}

Response

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

Mukautetun toiston muokkaaminen

Timin aikataulu muuttuu siten, että hänen työtuntinsa ovat nyt keskiviikkoisin 17.00–20.00 ja torstaisin 10.00–12.00. Maanantai poistetaan Timin aikataulusta. Debbie tekee tämän msdyn_SaveCalendar-ohjelmointirajapinnan avulla.

Pyydä

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

Response

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

Työtuntiesiintymän muokkaus toistossa

Tim voi olla 26.5.2021 töissä vain 13.00–19.00. Debbie käyttää msdyn_SaveCalendar-ohjelmointirajapintaa tässä.

Pyydä

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

Response

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

Mukautetun toiston poistaminen

Tim on päättänyt lähteä yrityksestä, ja hänen on poistettava koko aikataulunsa. Debbie käyttää msdyn_DeleteCalendar-ohjelmointirajapintaa tässä.

Pyydä

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

Response

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

Poissaolon luominen

Tim on lomalla kolme päivää 9.6.2021 alkaen.

Pyyntö

{
 "CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"InnerCalendarDescription\":\"Family Vacation\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-06-15T00:00:00.000Z\",\"EndTime\":\"2021-06-17T00:00:00.000Z\",\"Effort\":1,\"WorkHourType\":3}]}]}"
}

Response

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

Koko päivän työtuntien luominen

Timillä on 72 tunnin vuoro 20.5.2021 alkaen. Debbie luo Timin työtunnit käyttämällä msdyn_SaveCalendar-ohjelmointirajapintaa.

Pyydä

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

Response

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

Usein kysytyt kysymykset

Näkyviin tulee seuraava virhe: "StartTime ei voi olla suurempi tai yhtä suuri kuin EndTime".

Varmista, ettei eri kalenterisääntöjen välillä ole päällekkäisiä ajankohtia. Tarkistamalla päivämäärät voit varmistaa, ettei StartTime ole myöhemmin kuin EndTime. Varmista myös, että aika ilmoitetaan 24-tunnin muodossa.

Voiko ohjelmointirajapintojen avulla päivittää Työtuntimallit-kohteen?

Kyllä, tämän ohjelmointirajapinnan avulla voit luoda ja päivittää työtuntimalleja resurssin työaikojen lisäksi.

Näyttöön tulee seuraava virhe: "Virhe poistettaessa Microsoft.Dynamics.UCICalendar.Plugins.SaveCalendarContract+CalendarEventInfo-kohdetta. Syötelähdettä ei ole muotoiltu oikein.
tai
Odotetaan tilaa 'Element'. Kohdattiin teksti, jonka nimi on '', namespace ''."

Varmista, että merkkijono on jäsennetty oikein. Kyse voi olla puuttuvista sulkeista, pilkuista tai puolipisteistä.

Näkyviin tulee seuraava virhe: "Virheellinen toistumismalli. Lisätietoja on tuettujen toistumiskaavojen ohjeissa."

Vain seuraavaa toistumiskaavaa tuetaan tällä hetkellä: FREQ=DAILY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY voidaan muuttaa sisältämään vähemmän päiviä. Arvoja FREQ ja INTERVAL ei voi kuitenkaan muuttaa. Varmista, ettei toistumiskaavassa ole välilyöntejä.

Mistä saa tietoja CalendarId- ja InnerCalendarId-resursseista?

CalendarId voidaan hakea resurssimääritteistä. Saat nämä tiedot soittamalla: [org-url]/api/data/v9.1/bookableresources([bookableresourceGUID]).

Esimerkki edellisestä puhelusta on [org-url]/api/data/v9.1/bookableresources(7bb0224b-6712-ec11-94f9-000d3a6d888e).

InnerCalendarId voidaan hakea kalenterimääritteistä. Saat nämä tiedot soittamalla: [org-url]/api/data/v9.1/calendars([calendar-id-from-above-call])?$expand=calendar_calendar_rules.

Esimerkki edellisestä puhelusta on [org-url]/api/data/v9.1/calendars(02481736-1b6a-4d49-9ebd-a5bd041c1c99)?$expand=calendar_calendar_rules.

Mitä tapahtuu, jos päällekkäisiä sääntöjä on?

Säännöt kuuluvat pariin eri luokkaan:

  • Sijoitus 1 – päivittäinen esiintymä (työ/ei-työskentely) ja poissaoloaikaesiintymä.
  • Sijoitus 0 – viikoittain toistuva (työ/ei-työskentely).

Version 2 päällekkäiset säännöt

  • Sijoitus 1 -säännöissä on suurempi prioriteetti kuin sijoituksen 0-säännöillä. jos samana päivänä on kaksi sääntöä (yksi kustakin listasta), päivittäinen esiintymä tai poissaoloesiintymä on etusijalla viikoittaiseen toistumiseen nähden.
  • Jos samassa päivämäärävälissä on useita sijoituksen 0 sääntöjä:
    • Jos ajat eivät leikkaa, molemmat säilytetään kalenterissa.
    • Jos ajat leikkaavat, viimeksi luotu tai muokattu sääntö säilytetään resurssin kalenterissa. Kaikki muut päivämäärävälin leikkaavat säännöt poistetaan. Jos jonkin sijoituksen 0 säännöt leikkaavat joidenkin päivämäärien kanssa, mutta eivät kaikkien, säännöt liitetään, jotta muut kuin leikkaavat osat voidaan säilyttää. Leikkaavat osat poistetaan.

Seuraavassa on esimerkkejä version 2 kalenteritoiminnasta:

Esimerkki 1 – Toistuva työaika: Päällekkäiset päivämäärät ilman päällekkäisiä päiviä tai aikoja

Tietyn päivämäärävälin ajan teknikko työskentelee aamu-, iltapäivä tai yövuoroissa eri päivinä.

  1. Luo ensimmäinen toistuva kalenterisääntö tietylle päivämäärävälille. Esimerkki: Toista ma, ti 1.1.–1.4. klo 8–17 ET.

  2. Luo toinen toistuva kalenterisääntö leikkaavalle päivämäärävälille. Näin varmistetaan, että työaika ei leikkaa edellisten päivien tai aikojen kanssa. Esimerkki: Toista ke, to 1.1.–1.4. klo 8–17 ET tai Toista ma, ti 1.1.–1.4. klo 17-8 ET.

Tulos: Kumpikin kalenterisääntö säilytetään, ja niitä käytetään rinnakkain.

Esimerkki 2 — Toistuva työaika: Joitakin päällekkäisiä päivämääriä ja päiviä, toinen sääntö alkaa tai loppuu ennen ensimmäistä sääntöä tai sen jälkeen

Teknikko saa uuden työaikataulun, joka korvaa joitakin viikkoja vanhasta aikataulusta. Palvelusopimuksen mukaan he työskentelevät aina viikon samoina päivinä.

  1. Luo ensimmäinen toistuva kalenterisääntö tietylle päivämäärävälille. Esimerkki: Toista ma, ti 1.2.–1.4. klo 8–17 ET.

  2. Luo päällekkäistä päivämääräväliä varten toinen toistuva kalenterisääntö, jossa kaikilla päivillä on päällekkäistä työaikaa. Valitse tälle uudelle säännölle aloitus- tai päättymispäivämäärät, jotka ovat ennen ensimmäisen säännön aloitus- tai päättymispäivämäärää tai sitä ennen. Esimerkki: Toista ma, ti 1.3.–1.5. klo 13–20 ET.

Tulos: Ensimmäinen sääntö katkaistaan toisen säännön alkamis- tai päättymispäivämäärän mukaan. Esimerkki: Toista ma, ti 1.2.–28.2. klo 8–17 ET JA Toista ma, ti 1.3.–1.5. klo 13-20 ET.

Esimerkki 3 – Toistuva työaika: Kaikki päällekkäiset päivämäärät ja joitakin päällekkäisiä päiviä tai aikoja

Teknikko on sopimustyöntekijä kahden kuukauden ajanjakson ajan. Lisätyöstä joinakin päivinä on sovittu. Tiistain työaika halutaan siirtää aiemmaksi tai myöhemmäksi ajankohdaksi.

  1. Luo joitakin toistuvia kalenterisääntöjä annetulle päivämäärävälille. Esimerkki: Toista ma, ti 1.2.–1.4. klo 8–12 ET JA Toista ti, ke 1.2.–1.4. klo 13-17 ET.

  2. Luo uusi toistuva kalenterisääntö samalle päivämäärävälille. Valitse päivät tai ajat, jotka ovat osittain päällekkäisiä alkuperäisten sääntöjen kanssa. Esimerkki: Toista ti, to 1.2.–1.4. klo 10-14 ET.

Tulos: Uusi sääntö korvaa vanhan, jos päällekkäisyyksiä esiintyy, ja jättää muut ennalleen. Esimerkki: Toista ma 1.2.–1.4. klo 8–12 ET JA Toista ke 1.2–1.4. klo 13–17 ET JA Toista ti, to 1.2.–1.4. klo 10–14 ET.

Esimerkki 4 – Toistuva työaika: Vanhan säännön uudet päivämäärät, joitakin päällekkäisiä päiviä tai aikoja

Teknikko työskentelee joka viikko ma–pe klo 8–17. Kahden viikon ajan he käsittelevät erityistä, kiireellistä projektia ma–ke eri työaikoina klo 6–18.

  1. Luo ensimmäinen toistuva kalenterisääntö tietylle päivämäärävälille. Esimerkki: Toista ma, ti, ke, to, pe 1.1. - ei päättymispäivämäärää, klo 8–17 ET.

  2. Luo toinen toistuva kalenterisääntö, joka sisältyy yllä mainittuun päivämääräväliin, ja valitse työaika, joka sisältää muutamia päällekkäisiä päiviä. Esimerkki: Toista ma, ti, ke 1.5.–14.5. klo 6–18 ET.

Tulos: Kalenterissa on oltava neljä toistuvaa sääntöä tämän harjoituksen loppuun mennessä seuraavasti:

  • ensimmäisen säännön katkaiseminen toisen säännön aloituspäivämäärän mukaan
  • toinen kalenterisääntö
  • uuden, ensimmäistä sääntöä vastaavan säännön luominen, jolla on toisen säännön päivämäärät muita kuin päällekkäisiä päiviä varten
  • ensimmäisen säännön katkaiseminen alkamaan toisen säännön päättymispäivämäärästä ilman päättymispäivämäärää.

Esimerkki: Toista ma, ti, ke, to, pe 1.1.–30.4. klo 8–17 ET JA Toista ma, ti, ke 1.5.–14.5. klo 6–18 ET JA Toista to, pe 1.5.–14.5. klo 8-17 ET JA Toista ma, ti, ke, to, pe 15.5. - ei päättymispäivämäärää, klo 8–17 ET

Esimerkki 5 – Ei-toistuva työaika (esiintymä, sijoituksen 1 sääntö)

Teknikolla on useita ryhmän yhtenäisyyspäiviä, jotka ohittavat kaikki muun työajan esiintymät kyseisenä päivänä.

  1. Luo toistuva kalenterisääntö tietylle päivämäärävälille. Esimerkki: Toista ma, ti, ke, to, pe 1.1. - ei päättymispäivämäärää, klo 8–17 ET.

  2. Luo ei-toistuva kalenterisääntö, joka sisältyy yllä mainittuun päivämääräväliin. Valitse työaika, joka on päällekkäinen joinakin päivinä. Esimerkki: Ei toistoa 21.6. klo 7–13 ET.

Tulos: Kalenterissa on oltava 1 ei-toistuva sääntö (esiintymä) harjoituksen loppuun mennessä seuraavasti: Ei-toistuva sääntö korvaa päällekkäisen toistuvan tapahtuman koko päivän ajan. Esimerkki: Toista ma, ti, ke, to, pe 1.1. - ei päättymispäivämäärää paitsi 21.6., ei toistoa 21.6. klo 7–13 ET.

Version 1 päällekkäiset säännöt

  • Sijoitus 1 -säännöissä on suurempi prioriteetti kuin sijoituksen 0-säännöillä. Joten jos samana päivänä oli kaksi sääntöä (yksi kustakin listasta), päivittäinen esiintymä tai poissaoloesiintymä on etusijalla viikoittaiseen toistumiseen nähden.
  • Jos saman sijoituksen sääntöjä on kaksi, viimeksi luodun tai muokatun säännön katsotaan olevan resurssin kalenterissa.
  • Muista, että koko päivän esiintymät ovat sijoituksessa 1, joten haluat ehkä muuttaa ne viikoittain toistuvaksi, jotta voit lisätä esiintymän työtunteja ja noudattaa niitä.
  • Kun työtunti on olemassa ja esiintymä luodaan päällekkäisenä, säännöt jakautuvat siten, että vapaata ei noudateta ja jäljellä oleva työaika jää sellaiseksi kuin se on. Jos työaika on esimerkiksi 21.9. 8–17 ja poissaoloaika lisätään kello 15–19 21. syyskuuta, tämä ratkaistaan työaikana klo 8–15 ja poissaoloaikana 15–19. Jos säännöt on kuitenkin luotu päinvastaisessa järjestyksessä (ensimmäiseksi luodaan poissaoloaika ja sen jälkeen työaika) aikasäännöistä riippumatta, vain työaika valitaan uudelleen. Poissaoloaika ohitetaan.

Aikavyöhykekoodit

Luettelointi Aikavyöhyke
0 (GMT-12:00) Läntinen kansainvälinen päivämääräraja
1 (GMT+13:00) Samoa
2 (GMT-10:00) Havaiji
3 (GMT-09:00) Alaska
4 (GMT-08:00) Tyynenmeren normaaliaika (Yhdysvallat ja Kanada)
5 (GMT-08:00) Baja California
6 (GMT-11:00) UTC-aika-11
7 (GMT-10:00) Aleutit
8 (GMT-09:30) Marquesassaaret
9 (GMT-09:00) UTC-aika-09
10 (GMT-07:00) Kalliovuorten normaaliaika (Yhdysvallat ja Kanada)
11 (GMT-08:00) UTC-aika-08
12 (GMT-07:00) Chihuahua, La Paz, Mazatlan
15 (GMT-07:00) Arizona
20 (GMT-06:00) Keskinen normaaliaika (Yhdysvallat ja Kanada)
25 (GMT-06:00) Saskatchewan
29 (GMT-06:00) Guadalajara, Mexico City, Monterrey
33 (GMT-06:00) Keski-Amerikka
34 (GMT-06:00) Pääsiäissaaret
35 (GMT-05:00) Itäinen normaaliaika (Yhdysvallat ja Kanada)
40 (GMT-05:00) Indiana (itä)
43 (GMT-05:00) Haiti
44 (GMT-05:00) Havanna
45 (GMT-05:00) Bogota, Lima, Quito, Rio Branco
47 (GMT-04:00) Caracas
50 (GMT-04:00) Atlantin normaaliaika (Kanada)
51 (GMT-05:00) Turks- ja Caicossaaret
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 ja Miquelon
73 (GMT-03:00) Grönlanti
74 (GMT-03:00) Montevideo
75 (GMT-02:00) Keski-Atlantti
76 (GMT-02:00) UTC-aika-02
77 (GMT-03:00) Araguaína
80 (GMT-01:00) Azorit
83 (GMT-01:00) Cabo Verde
84 (GMT+01:00) Casablanca
85 (GMT+00:00) Dublin, Edinburgh, Lissabon, Lontoo
90 (GMT+00:00) Monrovia, Reykjavik
92 (GMT) UTC-aika
95 (GMT+01:00) Belgrad, Bratislava, Budapest, Ljubljana, Praha
100 (GMT+01:00) Sarajevo, Skopje, Varsova, Zagreb
105 (GMT+01:00) Bryssel, Kööpenhamina, Madrid, Pariisi
110 (GMT+01:00) Amsterdam, Berliini, Bern, Rooma, Tukholma, Wien
113 (GMT+01:00) Läntinen Keski-Afrikka
115 (GMT+02:00) Chișinău
120 (GMT+02:00) Kairo
125 (GMT+02:00) Helsinki, Kiev, Riika, Sofia, Tallinna, Vilna
129 (GMT+02:00) Amman
130 (GMT+02:00) Ateena, Bukarest
131 (GMT+02:00) Beirut
133 (GMT+02:00) Damaskos
134 (GMT+03:00) Istanbul
135 (GMT+02:00) Jerusalem
140 (GMT+02:00) Harare, Pretoria
141 (GMT+02:00) Windhoek
142 (GMT+02:00) Gaza, Hebron
145 (GMT+03:00) Moskova, Pietari
150 (GMT+03:00) Kuwait, 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) Jerevan
172 (GMT+04:00) Port Louis
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) Jekaterinburg
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) Katmandu
195 (GMT+06:00) Astana
196 (GMT+06:00) Dhaka
197 (GMT+06:00) Omsk
200 (GMT+05:30) Sri Jayawardenepura
201 (GMT+07:00) Novosibirsk
203 (GMT+06:30) Yangon (Rangoon)
205 (GMT+07:00) Bangkok, Hanoi, Jakarta
207 (GMT+07:00) Krasnojarsk
208 (GMT+07:00) Barnaul, Gorno-Altaisk
209 (GMT+07:00) Hovd
210 (GMT+08:00) Beijing, Chongqing, Hongkong, 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) Ulaanbaatar
229 (GMT+09:00) Pyongyang
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) Tš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) Lord Howen saari
275 (GMT+10:00) Guam, Port Moresby
276 (GMT+11:00) Bougainvillen saari
277 (GMT+11:00) Norfolkinsaari
278 (GMT+11:00) Sahalin
279 (GMT+11:00) Tšokurdah
280 (GMT+11:00) Salomonsaaret, Uusi-Kaledonia
281 (GMT+11:00) Magadan
284 (GMT+12:00) UTC-aika+12
285 (GMT+12:00) Fidži
290 (GMT+12:00) Auckland, Wellington
295 (GMT+12:00) Anadyr, Petropavlovsk-Kamtšatski
299 (GMT+12:45) Chathamsaaret
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