Share via


Werkuurkalenders bewerken via API's

Organisaties moeten vaak programmatisch werkuren maken, bewerken of verwijderen op de kalenders van hun resources. Kalenders tonen werkuren, vrije tijd en pauzes die de beschikbaarheid van een resource bepalen wanneer werk wordt gepland. Die resources moeten in specifieke tijdzones worden gepland, kunnen al dan niet te maken hebben met bedrijfssluitingen en kunnen een variabele capaciteit hebben. Ga voor informatie over het definiëren van werkuren in de Field Service-app naar Werkuren toevoegen aan een boekbare resource.

Naast het gebruik van de Field Service-app, kunt u de volgende API's gebruiken om kalenderregels te wijzigen voor geselecteerde recordtypen:

  • De API Agenda opslaan (msdyn_SaveCalendar) maakt of werkt kalenderrecords voor een geselecteerde entiteit bij, op basis van de invoer die als aanvraag is doorgegeven.
  • De API Kalender verwijderen (msdyn_DeleteCalendar) verwijdert alle interne kalenderregels van een kalender voor een geselecteerde entiteit, op basis van de invoer die als aanvraag is doorgegeven.
  • De API Kalender opslaan/verwijderen V2 (msdyn_SaveCalendar/msdyn_DeleteCalendar, pass flag UseV2) maakt meerdere herhalingen van werkuren tegelijk mogelijk door de logica voor overlappende regels te wijzigen. Zie Wat gebeurt er als er overlappende regels zijn? voor meer informatie.

Dit artikel bevat details over de invoer (aanvraag) en uitvoer (respons) van elke API en hun gebruik, met voorbeelden.

Vereisten

  • Platformversie 9.2.21055 of hoger met Universal Resource Scheduling versie 3.12.45.7.
  • Gebruik van een van de volgende recordtypen:
    • Boekbare resource (bookableresource)
    • Resourcevereisten (msdyn_resourcerequirement)
    • Werkurensjabloon (msdyn_workhourtemplate)
    • Project (msdyn_projects)

Typen kalendergebeurtenissen

Wanneer u een kalender maakt, definieert u hoe vaak een type werkuur zal voorkomen: eenmaal, de hele dag, elke week of elke dag. U kunt echter ook een aangepast terugkeerpatroon opstellen. Ga voor meer informatie over deze kalendergebeurtenissen naar de voorbeelden verderop in dit artikel.

Exemplaar

Wanneer een werkuurtype slechts één keer voorkomt in de kalender van de entiteit, wordt dit een exemplaar genoemd.

Denk bijvoorbeeld aan een resource die op 26 mei 2021 van 5:00 uur tot 10:00 uur werkt. Deze API's ondersteunen alleen dit type gebeurtenis, die op dezelfde dag begint en eindigt. Neem voor een ander voorbeeld een resource die werkt van 20:00 uur op 26 mei 2021 tot 10:00 uur op 27 mei 2021. U kunt dit exemplaar niet maken met slechts één aanroep van de API msdyn_SaveCalendar, maar moet in plaats daarvan twee aanroepen uitvoeren.

Gebeurtenis die de hele dag duurt

Wanneer een werkuurtype voor een of meer hele dagen optreedt, beginnend om middernacht (12:00 uur) van de startdatum, is het een gebeurtenis die de hele dag duurt. De maximale duur voor een gebeurtenis die de hele dag duurt bedraagt vijf jaar.

Een resource werkt bijvoorbeeld de hele dag van 26 mei 2021 tot het einde van de dag op 30 mei 2021. Dit is een gebeurtenis die de hele dag duurt die vijf dagen in beslag neemt.

Wekelijkse herhaling

Wanneer een werkuurtype op dezelfde tijd op geselecteerde dagen van elke week plaatsvindt, wordt dit een wekelijkse herhaling genoemd.

Een resource werkt bijvoorbeeld elke maandag, dinsdag en woensdag van 5:00 uur tot 10:00 uur.

Dagelijkse herhaling

Wanneer een werkuurtype elke dag op dezelfde tijd plaatsvindt, wordt dit een dagelijkse herhaling genoemd.

Een resource werkt bijvoorbeeld elke dag van de week van 5:00 uur tot 10:00 uur.

Aangepaste herhaling

Wanneer een werkuurtype op bepaalde tijden op bepaalde dagen van de week plaatsvindt, maar de tijden op verschillende dagen anders zijn, kunt u een aangepaste herhaling maken.

Een resource werkt bijvoorbeeld elke maandag van 5:00 uur tot 10:00 uur en elke woensdag van 12:00 uur tot 15:00 uur.

Werkuurtypen

Deze API's ondersteunen het maken, bijwerken en verwijderen van bewerkingen voor de volgende typen werkuren:

Werkuren

Werkuren zijn tijden waarin een entiteit beschikbaar is om werkzaamheden uit te voeren.

Met behulp van deze API's kunt u het volgende doen:

  • Een werkuurexemplaar maken, bewerken of verwijderen.
  • Een dagelijks herhaald werkuur maken, bewerken of verwijderen.
  • Een wekelijks herhaald werkuur maken, bewerken of verwijderen.
  • Een aangepast herhaald werkuur maken, bewerken of verwijderen.
  • Werkuren die de hele dag duren maken, bewerken of verwijderen.
  • Capaciteit voor werkuren maken of bewerken.
  • Een enkel werkuurexemplaar in een herhaling bewerken.
  • Deze en volgende gebeurtenissen in een herhaling bewerken.
  • Een werkuurexemplaar wijzigen in een herhaling.
  • De tijdzone van de kalenderregel wijzigen.

Met behulp van deze API kan niet het volgende worden gedaan:

  • Een enkel werkuurexemplaar verwijderen uit een herhaling.
  • Een gebeurtenis maken die 24 uur duurt, maar niet begint en eindigt om middernacht (12:00 uur).
  • Een gebeurtenis die de hele dag duur maken, bewerken of verwijderen.

Niet-werkuur

Dit zijn tijden waarin de entiteit niet beschikbaar is om te werken vanwege een niet-gespecificeerde reden.

Met behulp van deze API's kunt u het volgende doen:

  • Niet-werkuren die de hele dag duren maken of bewerken.
  • Een niet-werkuurexemplaar maken of bewerken.
  • De tijdzone van de kalenderregel wijzigen.

Met behulp van deze API's kunt u niet het volgende doen:

  • Een niet-werkuurexemplaar maken of bewerken.

Pauze

Dit zijn momenten op een werkdag waarop een entiteit pauze neemt en niet beschikbaar is voor werk. Pauzes kunnen niet bestaan zonder werkuren. Zij moeten plaatsvinden tussen twee werkuren op een dag. Pauzes mogen geen werkuren overlappen.

Met behulp van deze API's kunt u het volgende doen:

  • Pauzes tijdens werkuren maken of bewerken.

Met behulp van deze API's kunt u niet het volgende doen:

  • Alleen pauzes van een gebeurtenis of herhaling van werkuren verwijderen.

Verlof

Dit zijn tijden waarin een entiteit niet beschikbaar is om te werken vanwege vakantie. De reden voor verlof kan worden opgegeven.

Met behulp van deze API's kunt u het volgende doen:

  • Vrije tijd maken of bewerken met een label.
  • De tijdzone van de kalenderregel wijzigen.

Met behulp van deze API's kunt u niet het volgende doen:

  • Een verlofuurexemplaar maken of bewerken.

Bedrijfssluiting

U kunt entiteiten voor bedrijfssluiting maken die de tijden bepalen waarop het bedrijf is gesloten. Met de API msdyn_SaveCalendar kunt u elke entiteit instellen om de bedrijfssluitingstijden van de organisatie aan te houden of te negeren met behulp van de optionele sleutel ObserveClosure. Wanneer ze zijn ingesteld om deze sluitingen aan te houden, zijn de entiteiten niet beschikbaar voor werk.

API Kalender opslaan

Invoer

De aanvraag bevat slechts één kenmerk, namelijk CalendarEventInfo, wat een type String is. Het bevat verschillende andere kenmerken die allemaal in deze string zijn ingesloten.

Opmerking

In de volgende tabel staat Type voor de verwachte indeling voor een succesvolle aanvraag. De hele aanvraag wordt echter geparseerd als een enkele string.

CalendarEventInfo

Naam Type Vereist Beschrijving
EntityLogicalName String Ja Deze sleutel beschrijft de entiteit van waaruit de API wordt aangeroepen. De kalender van deze entiteit moet worden gemaakt of bewerkt.
CalendarId GUID Ja Deze sleutel bevat de kalender-id die betrekking heeft op de hierboven beschreven entiteit. Wanneer een van deze entiteiten wordt gemaakt, wordt ook automatisch een kalenderrecord gemaakt. Deze API's bewerken deze kalenderrecord door regels toe te voegen of bestaande regels te bewerken.
RulesAndRecurrences RulesAndRecurrences Ja Deze sleutel is een matrix en elk element bevat meerdere kenmerken zoals vermeld in de tabel in de volgende sectie. De grootte van de matrix moet minimaal één zijn.
IsVaried Booleaans Geen Deze sleutel moet worden ingesteld op true voor aangepaste herhalingsscenario's.
IsEdit Booleaans Geen Deze sleutel moet worden ingesteld op true voor het bewerken van bestaande regels.
TimeZoneCode Integer Geen Deze sleutel heeft een geheel getal als waarde dat overeenkomt met de tijdzone voor de kalenderregels. Ga voor de toewijzing naar Tijdzonecodes verderop in dit artikel. De standaardwaarde is de tijdzone van de gebruiker.
InnerCalendarDescription String Geen Deze sleutel is alleen nodig als de kalenderregel voor verlof is. Het moet de reden voor het verlof bevatten.
ObserveClosure Booleaans Geen Deze sleutel is specifiek voor herhalingen. Als deze is ingesteld op true, houdt de entiteit de bedrijfssluiting aan.
RecurrenceEndDate Datum en tijd No Deze sleutel is specifiek voor herhalingen. Dit bevat de einddatum voor de herhaling. Als de timestamp 08:00:00 of eerder is, is de einddatum van de herhaling één dag vóór de opgegeven datum. Als de timestamp 08:00:01 of later is, wordt de datum ongewijzigd aangehouden. De standaardwaarde voor exemplaren is null. De standaardwaarde voor herhalingen is 30 december 9999, 23:59.59 uur, UTC
RecurrenceSplit Booleaans Geen Deze sleutel is specifiek voor herhalingen. Deze waarde is ingesteld op true voor het bewerken van "Deze en volgende gebeurtenissen" van een herhaling.
ResourceId GUID Geen Deze sleutel bevat de SystemUserId of ResourceId en mag alleen worden doorgegeven wanneer de entiteit die aan deze aanvraag is gekoppeld een boekbare resource van het type SystemUser is. Dit is nodig om te controleren op OwnCalendar-bevoegdheden op het tabblad Servicebeheer.
UseV2 Vlag No Als u deze vlag doorgeeft, wordt de V2-versie van de werkurenkalender ingeschakeld, met een verbeterde logica voor overlappende regels die meerdere herhalingen mogelijk maakt. Zie Wat gebeurt er als er overlappende regels zijn? voor meer informatie.

RulesAndRecurrences

Meting Type Vereist Omschrijving
Regels Regels Ja Deze sleutel is een matrix en elk element bevat meerdere kenmerken zoals vermeld in de tabel in de volgende sectie. De grootte van de matrix moet minimaal één zijn.
RecurrencePattern String Geen Deze sleutel is specifiek voor herhalingen. We ondersteunen momenteel alleen dit patroon: FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY kan worden gewijzigd om minder dagen op te nemen. FREQ en INTERVAL kunnen echter niet worden gewijzigd.
InnerCalendarId GUID Geen Deze sleutel is specifiek voor bewerken. Als een regel wordt bewerkt, moet de InnerCalendarId hier worden doorgegeven. Als geen InnerCalendarId wordt doorgegeven, maakt de API een nieuwe regel, zelfs als de sleutel IsEdit is ingesteld op true.
Actie Integer Geen Deze sleutel is specifiek voor aangepaste herhalingen. Als een aangepast terugkeerpatroon wordt gemaakt of bewerkt, moet een van de volgende nummers worden ingevoerd:
  • (1) Voor het toevoegen van een dag aan de herhaling
  • (2) Voor het verwijderen van een dag uit de herhaling
  • (3) Voor het bewerken van alleen de start- of einddatums of -tijden of voor het bewerken van de capaciteit
  • (4) Voor het bewerken van iets anders dan de sleutels die worden genoemd in (3)

Regels

Naam Type Vereist Beschrijving
StartTime Datum/tijd Ja Deze sleutel bevat een datum-/tijdsvermelding in ISO-indeling. Bijvoorbeeld: \"2021-05-15T12:00:00.000Z\". Het tijdsdeel bepaalt de starttijd van het werkuur in de eerder opgegeven tijdzone. Het datumgedeelte bepaalt de startdatum van het werkuur. Hier is 15 mei 2021 de datum van de gebeurtenis of de startdatum van de herhaling. Als het patroon BYDAY=TU,WE was, maar 15 mei (een zaterdag) de datum is, maakt of bewerkt de API automatisch regels voor alle dinsdagen en woensdagen na 15 mei. Dit is het geval wanneer de regel niet de datum hoeft te hebben die overeenkomt met de dag.
EndTime Datum/tijd Ja Deze sleutel bevat een datum-/tijdsvermelding in ISO-indeling. Bijvoorbeeld: \"2021-05-15T12:00:00.000Z\". Het tijdsdeel bepaalt de eindtijd van het werkuur in de eerder opgegeven tijdzone. Het datumgedeelte moet dezelfde datum bevatten als het datumgedeelte van StartTime. De enige uitzonderingen zijn:
  • Als het een gebeurtenis is die de hele dag duurt. In dit geval moet het datumgedeelte de einddatum weergeven van de gebeurtenis die de hele dag duurt.
  • De gebeurtenis eindigt aan het einde van de dag, dat wil zeggen om 00:00 uur van de volgende dag. In dit geval moet de datum \"2021-05-16T00:00:00.000Z\" zijn. Als u de einddatum van de herhaling wilt opgeven, wijzigt u het kenmerk RecurrenceEndDate.
WorkHourType Integer Ja Deze sleutel bevat een getal dat overeenkomt met een van de volgende opties:
  • (0) Werktijd
  • (1) Pauze
  • (2) Geen werkdag
  • (3) Verlof
Effort Integer No Deze sleutel bepaalt de capaciteit van de entiteit. Dit moet een geheel getal zijn. De standaardwaarde is 1.

Uitvoer

Deze POST-API maakt of wijzigt kalenderregelrecords voor de geselecteerde entiteit. Het biedt ook de volgende uitvoer.

Naam Type Beschrijving
InnerCalendarIds String Een matrix van InnerCalendarIds GUID's die het resultaat zijn van de POST-bewerking.

API Kalender verwijderen

Invoer

Naam Type Vereist Beschrijving
EntityLogicalName String Ja Dit veld beschrijft de entiteit waarvan de kalenderregels moeten worden verwijderd.
InnerCalendarId GUID Ja Dit veld beschrijft de id van de InnerCalendarId die moet worden verwijderd. Als er meerdere InnerCalendarIds gekoppeld aan een enkele regel, is elke willekeurige id voldoende hier. Meer informatie over binnen- en buitenkalenders: Kalenderentiteiten
CalendarId GUID Ja Dit veld beschrijft de CalenderId van de entiteit.
IsVaried Booleaans Geen Dit veld is specifiek voor herhalingen en is ingesteld op yes als een aangepaste herhalingsregel wordt verwijderd.
UseV2 Vlag No Als u deze vlag doorgeeft, wordt de V2-versie van de werkurenkalender ingeschakeld, met een verbeterde logica voor overlappende regels die meerdere herhalingen mogelijk maakt. Zie Wat gebeurt er als er overlappende regels zijn? voor meer informatie.

Uitvoer

Deze POST-API verwijdert kalenderregelrecords voor de geselecteerde entiteit. Bovendien biedt het de volgende uitvoer.

Naam Type Beschrijving
InnerCalendarIds String Een matrix van InnerCalendarIds GUID's die het resultaat zijn van de POST-bewerking.

Agenda-API laden

Invoer

Naam: msdyn_LoadCalendars
Type: Actie
Beschrijving: Retourneert agenda's voor een gegeven LoadCalendarsInput.

Naam: msdyn_LoadCalendars.LoadCalendarsInput
Type: Parameter
Beschrijving: Tekenreeks in de volgende JSON-indeling:

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

Naam: msdyn_LoadCalendarsResponse
Type: ComplexType
Beschrijving: Bevat de respons van de actie msdyn_loadCalendars.

Naam: msdyn_LoadCalendarsResponse.CalendarEvents
Type: Eigenschap
Beschrijving: Tekenreeks in de volgende JSON-indeling:

{
"calendarId": CalendarEventSlot[]
}

Waarbij calendarId een juiste guid is die Guid van de agenda vertegenwoordigt en CalendarEventSlot een object is met de volgende indeling:

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

Procedure voor het aanroepen van alle API's

Deze API's kunnen worden aangeroepen via de browser.

  1. Open de browser en de organisatie waarin u deze kalenderwijzigingen moet doorvoeren.
  2. Open Developer Tools (selecteer Ctrl+Shift+I in Microsoft Edge, selecteer F12 in Google Chrome).
  3. Voer in de console de volgende functie in, na het vervangen van [org-name] door organisatiedetails (bijvoorbeeld 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. Nadat deze functie is gedefinieerd, kunt u deze aanroepen om kalenders te maken, te bewerken of te verwijderen met behulp van de API's. Voer het volgende gesprek in om een agenda op te slaan:
       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
                   }]
               }]
           }"
       })

Voer het volgende gesprek in om een agenda te verwijderen:

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

Zie het volgende gedeelte voor voorbeelden van hoe u verschillende aanroepen kunt uitvoeren op basis van uw behoeften. Vervang de action van de functieaanroep in stap 3 door msdyn_SaveCalendar of msdyn_DeleteCalendar, en vervang data door de relevante CalendarEventInfo.

Zie ook de volgende schermopname voor een Power Automate-oproep tot msdyn_SaveCalendar-actie: Power Automate-oproep voor de actie msdyn_SaveCalendar.

Voorbeeldscenario's voor API-gebruik

Laten we enkele scenario's doornemen waarvoor u deze API's kunt gebruiken.

Bob en Tim zijn vrachtwagenchauffeurs voor Contoso Enterprises in Bellevue, Washington. Hun coördinator, Debbie, is verantwoordelijk voor het aanbrengen van wijzigingen in hun werkuurkalenders. Debbie brengt deze wijzigingen aan met behulp van de API's msdyn_SaveCalendar en msdyn_DeleteCalendar.

Een werkuurexemplaar maken.

Het is de bedoeling dat Bob op 15 mei 2021 van 9.00 uur tot 17.00 uur rondrijdt om pakketten te bezorgen. Debbie gebruikt de API msdyn_SaveCalendar.

Aanvraag

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

Antwoord

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

Een werkuurexemplaar bewerken.

Het schema van Bob verandert dan en begint op 15 mei 2021 om 10:00 uur. Debbie gebruikt de API msdyn_SaveCalendar.

Aanvraag

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

Antwoord

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

Een werkuurexemplaar verwijderen.

Er doet zich een noodgeval voor in de familie en Bob moet een hele werkdag afzeggen. Debbie gebruikt de API msdyn_DeleteCalendar.

Aanvragen

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

De respons

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

Een dagelijkse werkuurherhaling maken

Vanaf 20 mei 2021 besluit Bob de hele week bij Contoso te werken van 08.00 uur tot 17.00 uur en stopt daar op 15 juli 2021.

Aanvragen

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

De respons

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

Een dagelijks terugkerend werkuur met verhoogde capaciteit bewerken

Bob besluit zijn werk de hele week van 15 juni 2021 neer te leggen om een pauze te nemen. Tot die tijd zet Bob het schema van de hele week voort, zoals eerder was overeengekomen. Debbie brengt deze wijzigingen aan met behulp van de API msdyn_SaveCalendar.

Aanvraag

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

Antwoord

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

Een wekelijkse werkuurherhaling maken

Vanaf 16 juni 2021 werkt Bob op woensdag en vrijdag van 8.00 tot 17.00 uur en neemt hij tussen 12.00 en 12.30 uur pauze voor de lunch. Debbie gebruikt de msdyn_SaveCalendar-API, maar maakt een fout en plant de pauze in van 12.00 uur tot 13.00 uur.

Aanvragen

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

De respons

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

Een pauze bewerken voor een wekelijkse werkuurherhaling

Debbie corrigeert haar fout vervolgens en wijzigt de pauze naar van 12.00 uur tot 12.30 uur met behulp van de msdyn_SaveCalendar-API.

Aanvraag

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

De respons

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

Een aangepaste werkuurherhaling maken

Tim werkt voor Contoso op maandag van 8:00 tot 17:00 uur en op woensdag van 11:00 tot 15:00 uur. Tim begon op 16 mei 2021 met zijn werkzaamheden voor Contoso. Debbie gebruikt de API msdyn_SaveCalendar om de werkuren van Tim te maken.

Aanvraag

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

Antwoord

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

Een aangepaste werkuurherhaling bewerken

Tims planning verandert maar werktijden van woensdag 17.00 uur tot 20.00 uur en donderdag 10.00 uur tot 12.00 uur. De maandag wordt uit Tims planning gehaald. Debbie gebruikt de API msdyn_SaveCalendar om voor elkaar te krijgen.

Aanvragen

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

De respons

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

Een werkuurexemplaar in een herhaling bewerken

Op 26 mei 2021 kan Tim alleen van 13:00 tot 19:00 uur werken. Debbie gebruikt hier de API msdyn_SaveCalendar.

Aanvragen

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

De respons

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

Een aangepaste werkuurherhaling verwijderen

Tim heeft besloten om ontslag te nemen en moet zijn hele planning verwijderen. Debbie gebruikt hier de API msdyn_DeleteCalendar.

Aanvragen

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

De respons

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

Verlof maken

Vanaf 9 juni 2021 neemt Tim drie dagen verlof voor een gezinsvakantie.

Aanvraag

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

Antwoord

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

Werkuren voor de hele dag maken

Tim heeft een dienst van 72 uur die begint op 20 mei 2021. Debbie gebruikt de API msdyn_SaveCalendar om de werkuren van Tim te maken.

Aanvragen

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

De respons

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

Veelgestelde vragen over

Ik krijg de foutmelding "StartTime mag niet groter of gelijk zijn aan EndTime."

Zorg ervoor dat er geen overlappingen zijn in de tijdvakken van de verschillende kalenderregels. Controleer de datums om er zeker van te zijn dat StartTime niet later is dan EndTime. Controleer ook of de tijden de 24-uursnotatie volgen.

Kunnen de API's worden gebruikt om de entiteit 'Werkuursjablonen' bij te werken?

Ja, u kunt deze API gebruiken om naast werkuren van resources ook werkuursjablonen te maken en bij te werken.

Ik krijg de foutmelding: "Er is een fout opgetreden bij het deserialiseren van het object van het type Microsoft.Dynamics.UCICalendar.Plugins.SaveCalendarContract+CalendarEventInfo. De invoerbron is niet correct geformatteerd.
or
Verwachte status 'Element'. Ontvangen 'Tekst' met naam '', naamruimte ''."

Zorg ervoor dat de string correct wordt geparseerd. Mogelijk ontbreken er haakjes, komma's of puntkomma's.

Ik krijg de foutmelding "Ongeldig herhalingspatroon. Raadpleeg de documentatie voor ondersteunde patronen."

We ondersteunen momenteel alleen dit patroon: FREQ=DAILY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY kan worden gewijzigd om minder dagen op te nemen. FREQ en INTERVAL kunnen echter niet worden gewijzigd. Zorg ervoor dat er geen spaties in het patroon zitten.

Hoe krijgen we informatie over de CalendarId en de InnerCalendarId van de resource?

De CalendarId kan worden opgehaald uit resourcekenmerken. Doe deze oproep om deze informatie te krijgen: [org-url]/api/data/v9.1/bookableresources([bookableresourceGUID]).

Een voorbeeld van de vorige oproep zou zijn: [org-url]/api/data/v9.1/bookableresources(7bb0224b-6712-ec11-94f9-000d3a6d888e).

De InnerCalendarId kan worden opgehaald uit agendakenmerken. Doe deze oproep om deze informatie te krijgen: [org-url]/api/data/v9.1/calendars([calendar-id-from-above-call])?$expand=calendar_calendar_rules.

Een voorbeeld van de vorige oproep is: [org-url]/api/data/v9.1/calendars(02481736-1b6a-4d49-9ebd-a5bd041c1c99)?$expand=calendar_calendar_rules.

Wat gebeurt er als er overlappende regels zijn?

Regels vallen onder een paar verschillende rangen:

  • Rang 1: dagelijkse gebeurtenis (werkend/niet-werkend), en vrije tijd.
  • Rang 0: wekelijkse herhaling (werkend/niet werkend).

Overlappende regels V2

  • De Rang 1-regels hebben een hogere prioriteit dan Rang 0-regels. als er twee regels zijn (één van elke rang) op dezelfde dag, krijgt de dagelijkse gebeurtenis of de vrije tijd-gebeurtenis voorrang op de wekelijkse gebeurtenis.
  • Wanneer er meerdere Rang 0-regels zijn binnen dezelfde periode:
    • Als de tijden elkaar niet kruisen, blijven ze allebei op de kalender staan.
    • Als de tijden elkaar kruisen, is de regel die het meest recent is gemaakt/gewijzigd de regel die in aanmerking komt voor de agenda van de resource. Alle andere kruisende regels in de periode worden verwijderd. Als sommige regels van rang 0 snijpunten hebben op sommige datums maar niet op andere, wordt de regel gesplitst om de niet-kruisende delen te behouden, terwijl de kruisende delen worden verwijderd.

Voorbeelden van V2-agendagedrag:

Voorbeeld 1 - Herhaalde werkuren: overlappende datums zonder overlappende dagen/tijden

Voor een bepaalde periode werkt een technicus ochtend-, middag- of nachtdiensten op verschillende dagen.

  1. Maak een eerste herhalende kalenderregel voor een bepaald datumbereik. Bijvoorbeeld: Herhaal ma, di; 1.1-4.1; 08.00-17.00 uur ET.

  2. Maak een tweede herhalende kalenderregel voor een kruisend datumbereik, en zorg ervoor dat de werkuren elkaar niet kruisen met de vorige dagen of tijden. Bijvoorbeeld: Herhaal wo, do; 1.1-4.1; 08.00-17.00 uur ET of Herhaal ma, di; 1.1-4.1; 17.00-20.00 uur ET.

Resultaat: beide kalenderregels worden gehandhaafd en blijven naast elkaar bestaan.

Voorbeeld 2 - Herhalende werkuren: sommige overlappende datums, met alle overlappende dagen en de tweede regel begint/eindigt voor of na de eerste regel

Een monteur krijgt een nieuw werkrooster, dat enkele weken van zijn oude rooster vervangt. Volgens contract werken ze altijd elke week op dezelfde dagen.

  1. Maak een eerste herhalende kalenderregel voor een bepaald datumbereik. Bijvoorbeeld: Herhaal ma, di; 2.1-4.1; 08.00-17.00 uur ET.

  2. Maak een tweede herhalende kalenderregel voor een overlappend datumbereik, waarbij alle dagen overlappende werkuren hebben. Kies begin-/einddatums voor deze nieuwe regel die vóór of na de begin-/einddatum van de eerste regel liggen. Bijvoorbeeld: Herhaal ma, di; 3.1-5.1; 13.00-20.00 uur ET.

Resultaat: de eerste regel wordt afgekapt om rekening te houden met de begin-/einddatum van de tweede regel. Bijvoorbeeld: Herhaal ma, di; 2.1-2.28; 08.00-17.00 uur ET EN Herhaal ma, di; 3.1-5.1; 13.00-20.00 uur ET.

Voorbeeld 3 - Herhaalde werkuren: alle overlappende datums, met enkele overlappende dagen/tijden

De monteur is een contractwerker voor een vaste periode van 2 maanden. Hij of zij is overeengekomen om op sommige dagen extra werk op zich te nemen. Hij of zij wil de werktijden op dinsdag naar een vroeger/later tijdstip verschuiven.

  1. Maak enkele herhalende kalenderregels voor een bepaald datumbereik. Bijvoorbeeld: Herhaal ma, di; 2.1-4.1; 08.00-12.00 uur ET EN Herhaal di, wo; 2.1-4.1; 13.00-17.00 uur ET.

  2. Maak een herhalende kalenderregel voor hetzelfde datumbereik. Kies dagen/tijden die gedeeltelijk overlappen met de oorspronkelijke regels. Bijvoorbeeld: Herhaal di, do; 2.1-4.1; 10.00-14.00 uur ET.

Resultaat: de nieuwe regel overschrijft de oude waar er overlappingen zijn en laat de andere ongewijzigd. Bijvoorbeeld: Herhaal ma; 2.1-4.1; 08:00-12:00 ET EN Herhaal wo; 2.1-4.1; 13:00-17:00 ET EN Herhaal di, do ; 2.1-4.1; 10:00-14:00 ET.

Voorbeeld 4 - Herhalende werkuren: nieuwe regeldatums binnen oude regel, enkele overlappende dagen/tijden

Een technicus werkt elke week van 8.00 tot 17.00 uur, ma-vr. Twee weken lang zullen ze elke ma-wo een speciaal noodproject uitvoeren met verschillende werktijden van 6.00 tot 18.00 uur.

  1. Maak een eerste herhalende kalenderregel voor een bepaald datumbereik. Bijvoorbeeld: Herhaal ma, di, wo, do, vr; 1.1-Geen einddatum; 08:00-17:00 ET.

  2. Maak een tweede herhalende kalenderregel binnen het bovenstaande datumbereik, kies werkuren die elkaar op sommige dagen overlappen. Bijvoorbeeld: Herhaal ma, di, wo; 5.1-5.14; 06.00-18.00 uur ET.

Resultaat: de kalender zou tegen het einde van deze oefening vier herhalende regels moeten hebben:

  • kap de eerste regel af tot de begindatum van de tweede regel
  • de tweede kalenderregel
  • maak een nieuwe regel aan die lijkt op de eerste regel, maar met de datums van de tweede regel voor de niet-overlappende dagen
  • kap de eerste regel af om te beginnen vanaf de einddatum van de tweede regel, zonder einddatum

Bijvoorbeeld: Herhaal ma, di, wo, do, vr; 1.1–4.30; 08:00-17:00 ET EN Herhaal ma, di, wo; 5.1-5.14; 06:00-18:00 ET EN Herhaal do, vr, 5.1-5.14; 08:00-17:00 ET EN Herhaal ma, di, wo, do, vr; 5.15–Geen einddatum; 08.00-17.00 uur ET

Voorbeeld 5 - Niet-herhalende werkuren (voorkomen, rang 1-regel)

Een technicus heeft een aantal teamcohesiedagen, die voorrang hebben op alle andere werkuren voor die dag.

  1. Maak een herhalende kalenderregel voor een bepaald datumbereik. Bijvoorbeeld: Herhaal ma, di, wo, do, vr; 1.1-Geen einddatum; 08:00-17:00 ET.

  2. Maak een niet-herhalende kalenderregel binnen het bovenstaande datumbereik. Kies werkuren die elkaar op sommige dagen overlappen. Bijvoorbeeld: Niet herhalend; 6.21; 07:00-13:00 ET.

Resultaat: de kalender zou tegen het einde van de oefening 1 niet-herhalende regel (gebeurtenis) moeten hebben. De niet-herhalende regel heft de overlappende herhalingsgebeurtenis voor de hele dag op. Bijvoorbeeld: Herhaal ma, di, wo, do, vr; 1.1-Geen einddatum behalve 6.21; niet-herhalen; 6.21; 07:00-13:00 ET.

Overlappende regels V1

  • De Rang 1-regels hebben een hogere prioriteit dan Rang 0-regels. Dus als er twee regels zijn (één van elke rang) op dezelfde dag, krijgt de dagelijkse gebeurtenis of de vrije tijd-gebeurtenis voorrang op de wekelijkse gebeurtenis.
  • Als er twee regels met dezelfde rang zijn, is de regel die het meest recent is gemaakt/gewijzigd de regel die in aanmerking komt voor de agenda van de resource.
  • Denk eraan dat gebeurtenissen die de hele dag duren Rang 1 zijn, dus u kunt overwegen om het te wijzigen in een wekelijks terugkerende gebeurtenis, zodat u werkuren van gebeurtenissen kunt toevoegen en deze worden nageleefd.
  • Wanneer een werkuur bestaat en een vrije tijd-gebeurtenis wordt gemaakt die deze overlapt, worden de regels zo opgesplitst dat de vrije tijd wordt nageleefd, en de resterende tijd als werktijd blijft zoals die is. Als er bijvoorbeeld werkuren zijn van 8 tot 17 uur op 21 september, en een vrije tijd van 15 tot 19 uur op 21 september wordt toegevoegd, wordt dit opgelost als werkuren van 8 tot 15 uur en vrije tijd van 15 tot 19 uur. Als de regels echter in de omgekeerde volgorde werden gemaakt (eerst vrije tijd en dan werkuren), ongeacht de tijdvakken, zou alleen het werkuur opnieuw worden geselecteerd. De vrije tijd wordt overschreven.

Tijdzonecodes

Enum Tijdzone
0 (GMT-12:00) Internationale westelijke datumgrens
1 (GMT+13:00) Samoa
2 (GMT-10:00) Hawaï
3 (GMT-09:00) Alaska
4 (GMT-08:00) Pacific Time (V.S. en Canada)
5 (GMT-08:00) Baja California
6 (GMT-11:00) Coordinated Universal Time-11
7 (GMT-10:00) Aleoeten
8 (GMT-09:30) Marquesaseilanden
9 (GMT-09:00) Coordinated Universal Time-09
10 (GMT-07:00) Mountain Time (V.S. en Canada)
11 (GMT-08:00) Coordinated Universal Time-08
12 (GMT-07:00) Chihuahua, La Paz, Mazatlan
15 (GMT-07:00) Arizona
20 (GMT-06:00) Centrale tijd (V.S. en Canada)
25 (GMT-06:00) Saskatchewan
29 (GMT-06:00) Guadalajara, Mexico-stad, Monterrey
33 (GMT-06:00) Centraal-Amerika
34 (GMT-06:00) Paaseiland
35 (GMT-05:00) Eastern Time (V.S. en Canada)
40 (GMT-05:00) Indiana (Oost)
43 (GMT-05:00) Haïti
44 (GMT-05:00) Havana
45 (GMT-05:00) Bogotá, Lima, Quito, Rio Branco
47 (GMT-04:00) Caracas
50 (GMT-04:00) Atlantic Time (Canada)
51 (GMT-05:00) Turks- en Caicoseilanden
55 (GMT-04:00) Georgetown, La Paz, San Juan
56 (GMT-04:00) Santiago
58 (GMT-04:00) Cuiaba
59 (GMT-04:00) Asunción
60 (GMT-03:30) Newfoundland
65 (GMT-03:00) Brasilia
69 (GMT-03:00) Buenos Aires
70 (GMT-03:00) Cayenne, Fortaleza
71 (GMT-03:00) Salvador
72 (GMT-03:00) Saint-Pierre en Miquelon
73 (GMT-03:00) Groenland
74 (GMT-03:00) Montevideo
75 (GMT-02:00) Mid-Atlantic
76 (GMT-02:00) Coordinated Universal Time-02
77 (GMT-03:00) Araguaina
80 (GMT-01:00) Azoren
83 (GMT-01:00) Cabo Verde
84 (GMT+01:00) Casablanca
85 (GMT+00:00) Dublin, Edinburgh, Lissabon, Londen
90 (GMT+00:00) Monrovia, Reykjavik
92 (GMT) Coordinated Universal Time
95 (GMT+01:00) Belgrado, Bratislava, Boedapest, Ljubljana, Praag
100 (GMT+01:00) Sarajevo, Skopje, Warschau, Zagreb
105 (GMT+01:00) Brussel, Kopenhagen, Madrid, Parijs
110 (GMT+01:00) Amsterdam, Berlijn, Bern, Rome, Stockholm, Wenen
113 (GMT+01:00) Westelijk Centraal-Afrika
115 (GMT+02:00) Chisinau
120 (GMT+02:00) Caïro
125 (GMT+02:00) Helsinki, Kiev, Riga, Sofia, Tallinn, Vilnius
129 (GMT+02:00) Amman
130 (GMT+02:00) Athene, Boekarest
131 (GMT+02:00) Beiroet
133 (GMT+02:00) Damascus
134 (GMT+03:00) Istanbul
135 (GMT+02:00) Jeruzalem
140 (GMT+02:00) Harare, Pretoria
141 (GMT+02:00) Windhoek
142 (GMT+02:00) Gaza, Hebron
145 (GMT+03:00) Moskou, St. Petersburg
150 (GMT+03:00) Koeweit, Riyad
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) Bakoe
170 (GMT+04:00) Jerevan
172 (GMT+04:00) Port Louis
173 (GMT+04:00) Tbilisi
174 (GMT+04:00) Izhevsk, Samara
175 (GMT+04:30) Kaboel
176 (GMT+04:00) Astrachan, Oeljanovsk
180 (GMT+05:00) Jekaterinenburg
184 (GMT+05:00) Islamabad, Karachi
185 (GMT + 05:00) Tasjkent
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) Krasnojarsk
208 (GMT+07:00) Barnaul, Gorno-Altajsk
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) Irkoetsk
228 (GMT+08:00) Ulaanbaatar
229 (GMT+09:00) Pyongyang
230 (GMT+09:00) Seoel
231 (GMT+08:45) Eucla
235 (GMT+09:00) Osaka, Sapporo, Tokio
240 (GMT+09:00) Jakoetsk
241 (GMT+09:00) Tsjita
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) Wladiwostok
274 (GMT+10:30) Lord Howe Island
275 (GMT+10:00) Guam/Port Moresby
276 (GMT+11:00) Bougainville
277 (GMT+11:00) Norfolkeiland
278 (GMT+11:00) Sachalin
279 (GMT+11:00) Chokurdakh
280 (GMT+11:00) Solomon Is., Nieuw-Caledonië
281 (GMT+11:00) Magadan
284 (GMT+12:00) Coordinated Universal Time+12
285 (GMT+12:00) Fiji
290 (GMT+12:00) Auckland, Wellington
295 (GMT+12:00) Anadyr, Petropavlovsk-Kamtsjatski
299 (GMT+12:45) Chatham Islands
300 (GMT+13:00) Nuku'alofa
301 (GMT-05:00) Chetumal
302 (UTC+02:00) Khartoem
303 (GMT-03:00) Punta Arenas
304 (GMT+04:00) Volgograd
305 (GMT-07:00) Yukon