Freigeben über


Bearbeiten Sie Arbeitszeitkalender mithilfe von APIs

Organisationen müssen häufig programmgesteuert Arbeitszeiten in den Kalendern ihrer Ressourcen erstellen, bearbeiten oder löschen. Kalender zeigen Arbeitszeiten, Freizeit und Pausen an, die die Verfügbarkeit einer Ressource bestimmen, wenn Arbeit geplant wird. Diese Ressourcen müssen in bestimmten Zeitzonen eingeplant werden, können Geschäftsschließungen einhalten oder nicht und können eine variable Kapazität haben. Informationen zum Definieren von Arbeitszeiten in der Field Service App finden Sie unter Arbeitszeiten zu einer buchbaren Ressource hinzufügen.

Zusätzlich zur Verwendung der Field Service-App können Sie die folgenden APIs verwenden, um Kalenderregeln für ausgewählte Datensatztypen zu ändern:

  • Die Kalender API speichern (msdyn_SaveCalendar) erstellt oder aktualisiert Kalenderdatensätze für eine ausgewählte Entität basierend auf den als Anforderung übergebenen Eingaben.
  • Die API zum Löschen von Kalendern (msdyn_DeleteCalendar) löscht alles innere Kalenderregeln eines Kalenders auf einer ausgewählten Entität, basierend auf den als Anforderung übergebenen Eingaben.
  • Die Kalender-API V2 zum Speichern/Löschen (msdyn_SaveCalendar/msdyn_DeleteCalendar, Durchlaufkennzeichen UseV2) ermöglicht mehrere Arbeitsstunden-Serien gleichzeitig, indem die Logik für überlappende Regeln geändert wird. Weitere Informationen finden Sie unter Was passiert, wenn sich die Regeln überschneiden?.

Dieser Artikel enthält Details über die Eingabe (Anfrage) und Ausgabe (Antwort) jeder API und deren Verwendung mit Beispielen.

Anforderungen

  • Plattformversion 9.2.21055 oder höher mit „Universelle Ressourcenplanung“ Version 3.12.45.7.
  • Verwendung eines der folgenden Datensatztypen:
    • Buchbare Ressource (bookableresource)
    • Ressourcenbedarf (msdyn_resourcerequirement)
    • Arbeitszeitvorlage (msdyn_workhourtemplate)
    • Projekt (msdyn_project)

Kalenderereignistypen

Wenn Sie einen Kalender erstellen, legen Sie fest, wie oft eine Arbeitszeitart vorkommt – einmal, den ganzen Tag, jede Woche oder jeden Tag – oder Sie können eine benutzerdefinierte Serie erstellen. Weitere Informationen zu diesen Kalenderereignissen finden Sie unter Beispiele später in diesem Artikel.

Vorkommen

Wenn ein Arbeitsstundentyp nur einmal im Kalender der Entität vorkommt, wird er als ein Auftreten bezeichnet.

Betrachten Sie beispielsweise eine Ressource, die am 26. Mai 2021 von 5:00 Uhr bis 10:00 Uhr arbeitet. Diese APIs unterstützen nur diese Art von Ereignissen, die am selben Tag beginnen und enden. Betrachten Sie als weiteres Beispiel eine Ressource, die am 26. Mai 2021 von 20 Uhr bis am 27. Mai 2021 um 10:00 Uhr arbeitet. Sie können dieses Ereignis nicht erstellen, indem Sie nur einen Aufruf der msdyn_SaveCalendar API verwenden; Sie müssen stattdessen zwei Anrufe tätigen.

Ganztägiges Auftreten

Wenn ein Arbeitsstundentyp für einen oder mehrere ganze Tage auftritt, beginnend um Mitternacht (12:00 Uhr) des Startdatums, ist dies ein ganztägiges Auftreten. Die maximale Dauer für ein ganztägiges Ereignis beträgt fünf Jahre.

Beispielsweise arbeitet eine Ressource den ganzen Tag vom 26. Mai 2021 bis zum Ende des Tages am 30. Mai 2021. Dies ist ein ganztägiges Ereignis, das fünf Tage dauert.

Wöchentliche Serie

Wenn ein Arbeitsstundentyp an ausgewählten Tagen jeder Woche zur gleichen Zeit auftritt, wird er als eine wöchentliche Wiederholung bezeichnet.

Eine Ressource arbeitet beispielsweise jeden Montag, Dienstag und Mittwoch von 5:00 bis 10:00 Uhr.

Tägliche Serie

Wenn ein Arbeitsstundentyp an ausgewählten Zeiten jeden Tag auftritt, wird er als eine tägliche Wiederholung bezeichnet.

Eine Ressource arbeitet beispielsweise jeden Montag, Dienstag und Mittwoch der Woche von 5:00 bis 10:00 Uhr.

Benutzerdefinierte Wiederholung

Wenn ein Arbeitszeittyp zu bestimmten Zeiten an bestimmten Wochentagen auftritt, die Zeiten jedoch an verschiedenen Tagen unterschiedlich sind, können Sie eine benutzerdefinierte Wiederholung.

Beispielsweise arbeitet eine Ressource jeden Montag von 5:00 bis 10:00 Uhr und jeden Mittwoch von 12:00 bis 15:00 Uhr.

Arbeitsstundentypen

Diese APIs unterstützen Erstellungs-, Aktualisierungs- und Löschvorgänge für die folgenden Arbeitszeittypen:

Arbeitszeit

Arbeitszeiten sind Zeiten, in denen ein Unternehmen für die Erbringung von Arbeiten zur Verfügung steht.

Sie können dies mithilfe der APIs Folgenden tun:

  • Erstellen, bearbeiten oder löschen Sie ein Arbeitszeitereignis.
  • Erstellen, bearbeiten oder löschen Sie eine tägliche Serie.
  • Erstellen, bearbeiten oder löschen Sie eine wöchentliche Serie.
  • Erstellen, bearbeiten oder löschen Sie eine benutzerdefinierte Serie.
  • Erstellen, bearbeiten oder löschen Sie die täglichen Arbeitsstunden.
  • Kapazität zu Arbeitszeiten erstellen oder bearbeiten.
  • Bearbeiten Sie ein einzelnes Arbeitsstundenvorkommen in einer Wiederholung.
  • Bearbeiten Sie dieses und folgende Vorkommnisse in einer Serie.
  • Ändern Sie ein Arbeitszeitereignis in eine Serie.
  • Ändern Sie die Zeitzone für die Kalenderregel.

Sie können mithilfe dieser APIs Folgenden tun:

  • Löschen Sie ein einzelnes Arbeitsstundenvorkommen aus einer Wiederholung.
  • Erstellen Sie ein Ereignis, das 24 Stunden umfasst, aber nicht um Mitternacht (12:00 Uhr) beginnt und endet.
  • Erstellen, bearbeiten oder löschen Sie alle täglichen Serien.

Arbeitsfreie Stunde

Dies sind Zeiten, in denen das Unternehmen aus einem nicht näher bezeichneten Grund nicht zur Verfügung steht.

Sie können dies mithilfe der APIs Folgenden tun:

  • Erstellen oder bearbeiten Sie die täglichen arbeitsfreien Stunden.
  • Erstellen oder bearbeiten Sie eine arbeitsfreie Stunde.
  • Ändern Sie die Zeitzone für die Kalenderregel.

Sie können mithilfe der APIs Folgendes nicht tun:

  • Erstellen oder bearbeiten Sie eine arbeitsfreie Serie.

Pause

Dies sind Zeiten an einem Arbeitstag, an denen ein Unternehmen eine Pause einlegt und nicht für die Arbeit zur Verfügung steht. Ohne Arbeitszeit kann es keine Pausen geben; sie müssen zwischen zwei Arbeitsstunden an einem Tag erfolgen. Pausen dürfen sich nicht mit Arbeitszeiten überschneiden.

Sie können dies mithilfe der APIs Folgenden tun:

  • Erstellen oder bearbeiten von Pausen während den Arbeitsstunden.

Sie können mithilfe der APIs Folgendes nicht tun:

  • Löschen Sie nur Pausen aus einem Auftreten oder einer Serie von Arbeitszeiten.

Arbeitsfreie Zeit

Dies sind Zeiten, in denen eine Entität wegen Urlaub nicht zur Verfügung steht. Der Grund für die arbeitsfreie Zeit kann angegeben werden.

Sie können dies mithilfe der APIs Folgenden tun:

  • Arbeitsfreie Zeit mit einer Beschriftung erstellen oder bearbeiten.
  • Ändern Sie die Zeitzone für die Kalenderregel.

Sie können mithilfe der APIs Folgendes nicht tun:

  • Erstellen oder bearbeiten einer arbeitsfreien Serie.

Betriebsferien

Sie können Geschäftsschließungseinheiten erstellen, die die Zeiten definieren, zu denen das Geschäft geschlossen wird. Durch die Verwendung der msdyn_SaveCalendar API können Sie jede Entität so einstellen, dass die Geschäftsschließungszeiten der Organisation beobachtet oder ignoriert werden, indem Sie den optionalen Schließung beachten Schlüssel verwenden. Wenn sie diese Schließungen beobachten, stehen die Entitäten nicht für die Arbeit zur Verfügung.

Kalender API speichern

Eingabe

Die Anfrage enthält nur ein Attribut CalendarEventInfo, die ein Typ Zeichenfolge ist. Es enthält mehrere andere Attribute, die alle in diese Zeichenfolge eingebettet sind.

Notiz

In der folgenden Tabelle stellt Typ das Format dar, von dem erwartet wird, dass es eine erfolgreiche Anfrage stellt. Die gesamte Anfrage wird jedoch als einzelne Zeichenfolge geparst.

KalenderEventInfo

Name Art Erforderlich Beschreibung
EntityLogicalName Zeichenfolge Ja Dieser Schlüssel beschreibt die Entität, von der die API aufgerufen wird. Der Kalender dieser Entität soll erstellt oder bearbeitet werden.
CalendarId GUID Ja Dieser Schlüssel enthält die Kalender-ID, die sich auf die oben beschriebene Entität bezieht. Wenn eine dieser Entitäten erstellt wird, wird automatisch auch ein Kalenderdatensatz erstellt. Diese APIs bearbeiten diesen Kalenderdatensatz, indem sie Regeln hinzufügen oder vorhandene Regeln bearbeiten.
RulesAndRecurrences RulesAndRecurrences Ja Dieser Schlüssel ist ein Array, und jedes Element enthält mehrere Attribute, wie in der Tabelle im folgenden Abschnitt aufgeführt. Die Größe des Arrays sollte mindestens eins betragen.
IsVaried Boolesch No Dieser Schlüssel sollte auf true für benutzerdefinierte Wiederholungsszenarien festgelegt sein.
IsEdit Boolesch No Dieser Schlüssel sollte auf true für bestehende bearbeitbare Regeln festgelegt sein.
TimeZoneCode Integer No Dieser Schlüssel nimmt einen ganzzahligen Wert an, der der Zeitzone für die Kalenderregeln entspricht. Für die Zuordnung gehen Sie zu Zeitzonencodes, später in diesem Artikel. Der Standardwert ist die Zeitzone des Benutzers.
InnerCalendarDescription Zeichenfolge No Dieser Schlüssel wird nur benötigt, wenn die Kalenderregel für Freizeit gilt. Es sollte den Grund für die Auszeit enthalten.
ObserveClosure Boolesch No Dieser Schlüssel ist spezifisch für Serien. Wenn es auf true festgelegt ist, wird die Entität die Geschäftsschließung beobachten.
RecurrenceEndDate DateTime Nein Dieser Schlüssel ist spezifisch für Serien. Es enthält das Enddatum für die Serie. Wenn der Zeitstempel 08:00:00 oder früher ist, liegt das Enddatum der Serie einen Tag vor dem angegebenen Datum. Wenn der Zeitstempel 08:00:01 oder höher ist, wird das Datum unverändert berücksichtigt. Der Standardwert für Vorkommen ist null. Der Standardwert für Serien ist 30. Dezember 9999, 23:59:59 Uhr UTC.
RecurrenceSplit Boolesch No Dieser Schlüssel ist spezifisch für Serien. Es ist auf true eingestellt für das Bearbeiten von Dieses und folgende Vorkommen einer Serie.
ResourceId GUID No Dieser Schlüssel enthält die SystemUserId oder ResourceID und ist nur zu übergeben, wenn die diesem Anruf zugeordnete Entität eine buchbare Ressource vom Typ Systembenutzer ist. Dies ist notwendig, um die OwnCalendar-Berechtigungen auf der Registerkarte Service-Management zu prüfen.
UseV2 Kennzeichnung Nein Durch die Übergabe dieses Kennzeichens wird die V2-Version des Arbeitsstundenkalenders aktiviert, mit einer erweiterten Logik überlappender Regeln, die mehrere Serien ermöglicht. Weitere Informationen finden Sie unter Was passiert, wenn sich die Regeln überschneiden?.

RulesAndRecurrences

Name des Dataflows Type Erforderlich Beschreibung
Regeln Regeln Ja Dieser Schlüssel ist ein Array, und jedes Element enthält mehrere Attribute, wie in der Tabelle im folgenden Abschnitt aufgeführt. Die Größe des Arrays sollte mindestens eins betragen.
RecurrencePattern Zeichenfolge No Dieser Schlüssel ist spezifisch für Serien. Wir unterstützen derzeit nur dieses Muster: FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY kann geändert werden, um weniger Tage einzuschließen; jedoch kann FREQ und INTERVAL nicht geändert werden.
InnerCalendarId GUID No Dieser Schlüssel ist spezifisch für das Bearbeiten. Wenn eine Regel bearbeitet wird, muss InnerCalendarId hier übergeben werden. Wenn ein InnerCalendarId nicht übergeben wird, erstellt die API eine neue Regel, auch wenn der Schlüssel IsEdit auf true gesetzt.
Aktion Integer No Dieser Schlüssel ist benutzerdefiniert für Serien. Wenn eine benutzerdefinierte Wiederholung erstellt oder bearbeitet wird, sollte eine der folgenden Nummern eingegeben werden:
  • (1) Hinzufügen eines Tages zur Serie
  • (2) Löschen eines Tages aus der Serie
  • (3) Bearbeiten nur der Start- oder Enddaten oder -zeiten oder Bearbeiten der Kapazität
  • (4) Bearbeiten von anderen als den in (3) genannten Schlüsseln

Regeln

Name Art Erforderlich Beschreibung
StartTime DateTime Ja Dieser Schlüssel enthält einen Datums-/Uhrzeiteintrag im ISO-Format. Zum Beispiel: \"2021-05-15T12:00:00.000Z\". Der Zeitanteil bestimmt die Startzeit der Arbeitsstunde in der zuvor angegebenen Zeitzone. Der Datumsteil bestimmt das Startdatum der Arbeitsstunde. Dabei ist der 15. Mai 2021 das Datum des Auftretens bzw. das Startdatum der Serie. Wenn das Muster BYDAY=TU,WE war, aber der 15. Mai (ein Samstag) das Datum ist, erstellt oder bearbeitet die API automatisch Regeln für alle Dienstage und Mittwoche nach dem 15. Mai. Dies ist der Fall, wenn die Regel nicht das Datum haben muss, das dem Tag entspricht.
EndTime DateTime Ja Dies enthält einen Datetime-Eintrag im ISO-Format. Zum Beispiel: \"2021-05-15T12:00:00.000Z\". Der Zeitanteil bestimmt die Endzeit der Arbeitsstunde in der zuvor angegebenen Zeitzone. Der Datumsteil muss das gleiche Datum wie der Datumsteil der Startzeit enthalten. Die einzigen Ausnahmen sind:
  • Wenn es ein ganztägiges Ereignis ist. In diesem Fall sollte der Datumsteil das Enddatum des ganztägigen Ereignisses widerspiegeln.
  • Das Ereignis endet am Ende des Tages, d. h. um 12:00 Uhr des Folgetages. In diesem Fall sollte das Datum \"2021-05-16T00:00:00.000Z\" sein. Um das Enddatum der Serie anzugeben, ändern Sie das Attribut RecurrenceEndDate Attribut.
Arbeitsstundentyp Integer Ja Dieser Schlüssel enthält eine Nummer, die einer der folgenden Optionen entspricht:
  • (0) Arbeit
  • (1) Pause
  • (2) Arbeitsfrei
  • (3) Arbeitsfreie Zeit
Aufwand Ganzzahl Nein Dieser Schlüssel bestimmt die Kapazität der Entität. Es muss eine ganze Zahl angegeben werden. Der Standardwert ist 1.

Ausgabe

Diese POST-API erstellt oder ändert Kalenderregeldatensätze für die ausgewählte Entität. Es gibt auch die folgende Ausgabe.

Name Art Beschreibung
InnerCalendarIds Zeichenfolge Eine Reihe von InnerCalendarIds GUIDs, die ein Ergebnis des POST-Vorgangs sind.

Kalender API löschen

Eingabe

Name Art Erforderlich Beschreibung
EntityLogicalName Zeichenfolge Ja Dieses Feld beschreibt die Entität, deren Kalenderregeln gelöscht werden sollen.
InnerCalendarId GUID Ja Dieses Feld beschreibt die ID des InnerCalendarId, das gelöscht werden muss.. Wenn mehrere InnerCalendarIds einer einzelnen Regel zugeordnet sind, reicht hier eine beliebige ID aus. Weitere Informationen zu inneren und äußeren Kalendern: Kalenderentitäten
CalendarId GUID Ja Dieses Feld beschreibt die Kalender-ID der Entität.
IsVaried Boolesch No Dieses Feld ist spezifisch für Wiederholungen und auf yes festgelegt, wenn eine benutzerdefinierte Wiederholungsregel gelöscht wird.
UseV2 Kennzeichnung Nein Durch die Übergabe dieses Kennzeichens wird die V2-Version des Arbeitsstundenkalenders aktiviert, mit einer erweiterten Logik überlappender Regeln, die mehrere Serien ermöglicht. Weitere Informationen finden Sie unter Was passiert, wenn sich die Regeln überschneiden?.

Ausgabe

Diese POST-API löscht Kalenderregeldatensätze für die ausgewählte Entität. Zusätzlich gibt es auch die folgende Ausgabe.

Name Art Beschreibung
InnerCalendarIds Zeichenfolge Eine Reihe von InnerCalendarIds GUIDs, die ein Ergebnis des POST-Vorgangs sind.

API zum Laden von Kalendern

Eingabe

Name: msdyn_LoadCalendars
Typ: Aktion
Beschreibung: Gibt Kalender für die angegebene „LoadCalendarsInput“ zurück.

Name: msdyn_LoadCalendars.LoadCalendarsInput
Typ: Parameter
Beschreibung: Zeichenfolge im folgenden JSON-Format:

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

Name: msdyn_LoadCalendarsResponse
Typ: ComplexType
Beschreibung: Enthält die Antwort der Aktion „msdyn_loadCalendars“.

Name: msdyn_LoadCalendarsResponse.CalendarEvents
Typ: Eigenschaft
Beschreibung: Zeichenfolge im folgenden JSON-Format:

{
"calendarId": CalendarEventSlot[]
}

Dabei ist „calendarId“ eine richtige GUID, die die GUID des Kalenders darstellt, und „CalendarEventSlot“ ist ein Objekt mit folgendem Format:

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

Wie die API aufgerufen wird

Diese APIs können mit dem Browser aufgerufen werden.

  1. Öffnen Sie den Browser und die Organisation, in der Sie diese Kalenderänderungen vornehmen müssen.
  2. Entwicklertools öffnen (wählen Sie Strg+Umschalttaste+I in Microsoft Edge und wählen Sie F12 in Google Chrome).
  3. Geben Sie in der Konsole die folgende Funktion ein, nachdem Sie [org-name] durch Organisationsdetails ersetzt haben (z. B. 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. Nachdem diese Funktion definiert wurde, können Sie sie mithilfe der APIs aufrufen, um Kalender zu erstellen, zu bearbeiten oder zu löschen. Geben Sie den folgenden Aufruf ein, um einen Kalender zu speichern:
       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
                   }]
               }]
           }"
       })

Geben Sie den folgenden Aufruf ein, um einen Kalender zu löschen:

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

Im folgenden Abschnitt finden Sie Beispiele, wie Sie je nach Bedarf verschiedene Anrufe tätigen können. Ersetzen Sie den action des Funktionsaufrufs in Schritt 3 mit msdyn_SaveCalendar oder msdyn_DeleteCalendar, und ersetzen Sie data mit den entsprechenden CalendarEventInfo.

Sehen Sie sich auch den folgenden Screenshot für einen Power Automate Aufruf für die msdyn_SaveCalendar-Aktion an: Power Automate-Aufruf der msdyn_SaveCalendar-Aktion.

Beispielszenarien für die API-Nutzung

Lassen Sie uns einige Szenarien durchgehen, für die Sie diese APIs verwenden können.

Bob und Tim sind Lieferwagenfahrer für Contoso Enterprises in Bellevue, Washington. Ihre Disponentin Debbie ist dafür verantwortlich, Änderungen an ihren Arbeitszeitkalendern vorzunehmen. Debbie nimmt diese Änderungen vor, indem sie die msdyn_SaveCalendar und msdyn_DeleteCalendar APIs verwendet.

Erstellen, bearbeiten oder löschen Sie eine arbeitsfreie Serie.

Bob wird voraussichtlich am 15. Mai 2021 von 9:00 bis 17:00 Uhr herumfahren, um Pakete zuzustellen. Debbie benutzt die msdyn_SaveCalendar API.

Anforderung

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

Bearbeiten einer arbeitsfreie Serie.

Bobs Zeitplan ändert sich dann, um am 15. Mai 2021 um 10:00 Uhr zu beginnen. Debbie benutzt die msdyn_SaveCalendar API.

Anforderung

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

Löschen Sie eine arbeitsfreie Serie.

Es kommt zu einem Familiennotfall und Bob muss einen ganzen Arbeitstag absagen. Debbie benutzt die msdyn_DeleteCalendar API.

Anfordern

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

Antwort

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

Erstellen Sie eine arbeitsfreie Serie

Bob beschließt, dass er ab dem 20. Mai 2021 die ganze Woche von 8:00 bis 17:00 Uhr mit Contoso arbeitet, und seine Arbeit dort am 15. Juli 2021 beendet.

Anfordern

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

Antwort

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

Bearbeiten Sie eine tägliche Serie der Arbeitszeit mit erhöhter Kapazität

Bob beschließt, für die gesamte Woche des 15. Juni 2021 nicht mehr zu arbeiten, um eine Pause einzulegen. Bis dahin wird Bob den Wochenplan fortsetzen, dem er zuvor zugestimmt hatte. Debbie nimmt diese Änderungen vor, indem sie die msdyn_SaveCalendar APIs verwendet.

Anforderung

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

Erstellen Sie einer arbeitsfreien wöchentlichen Serie

Ab dem 16. Juni 2021 arbeitet Bob mittwochs und freitags von 8:00 bis 17:00 Uhr und macht von 12:00 bis 12:30 Uhr eine Mittagspause. Debbie verwendet die msdyn_SaveCalendar API, macht aber einen Fehler und plant die Pause von 12:00 bis 13:00 Uhr ein.

Anfordern

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

Antwort

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

Bearbeiten Sie eine wöchentliche Serie von Pausen

Debbie korrigiert dann den Fehler und ändert die Pause von 12:00 bis 12:30 Uhr mithilfe der msdyn_SaveCalendar API.

Anforderung

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

Erstellen Sie einer arbeitsfreien benutzerdefinierte Serie

Tim arbeitet für Contoso montags von 8:00 bis 17:00 Uhr und mittwochs von 11:00 bis 15:00 Uhr. Tim begann seine Arbeit bei Contoso am 16. Mai 2021. Debbie benutzt die msdyn_SaveCalendar API zum Erstellen von Tims Arbeitszeiten.

Anforderung

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

Bearbeiten einer arbeitsfreien benutzerdefinierte Serie

Tims Zeitplan ändert sich dann: Seine Arbeitszeiten sind mittwochs 17:00 bis 20:00 Uhr und donnerstags 10:00 bis 12:00 Uhr. Montag wird aus Tims Zeitplan gestrichen. Debbie benutzt die msdyn_SaveCalendar API, um dies zu erreichen.

Anfordern

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

Antwort

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

Bearbeiten Sie ein einzelnes Arbeitsstundenvorkommen in einer Wiederholung

Am 26. Mai 2021 kann Tim nur von 13:00 bis 19:00 Uhr arbeiten. Debbie benutzt die msdyn_SaveCalendar API hier.

Anfordern

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

Antwort

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

Löschen einer arbeitsfreien benutzerdefinierte Serie

Tim hat sich entschieden, das Unternehmen zu verlassen, und muss den gesamten Zeitplan löschen. Debbie benutzt die msdyn_DeleteCalendar API hier.

Anfordern

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

Antwort

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

Arbeitsfreie Zeit erstellen

Tim wird ab dem 9. Juni 2021 drei Tage Urlaub mit der Familie machen.

Anforderung

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

Ganztägige Arbeitszeiten erstellen

Tim hat ab dem 20. Mai 2021 eine 72-Stunden-Schicht. Debbie benutzt die msdyn_SaveCalendar API zum Erstellen von Tims Arbeitszeiten.

Anfordern

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

Antwort

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

FAQ

Ich erhalte die Fehlermeldung „StartTime darf nicht größer oder gleich EndTime sein“.

Stellen Sie sicher, dass es keine Überschneidungen in den Zeitfenstern der verschiedenen Kalenderregeln gibt. Überprüfen Sie die Daten, um sicherzugehen, dass die Startzeit nicht nach der Endzeit liegt. Stellen Sie außerdem sicher, dass die Uhrzeiten dem 24-Stunden-Format entsprechen.

Können die APIs verwendet werden, um die Entität „Arbeitszeitvorlagen“ zu aktualisieren?

Ja, Sie können diese API verwenden, um zusätzlich zu den Ressourcenarbeitsstunden Arbeitszeitvorlagen zu erstellen und zu aktualisieren.

Ich erhalte die Fehlermeldung „Beim Deserialisieren des Objekts vom Typ Microsoft.Dynamics.UCICalendar.Plugins.SaveCalendarContract+CalendarEventInfo ist ein Fehler aufgetreten. Die Eingabequelle ist nicht richtig formatiert.
or
Der Status „Element“ wurde erwartet. „Text“ mit Name „Namespace“ gefunden.“

Stellen Sie sicher, dass die Zeichenfolge richtig geparst wird. Möglicherweise fehlen Klammern, Kommas oder Semikolons.

Ich erhalte die Fehlermeldung „Ungültiges Wiederholungsmuster. In dieser Dokumentation finden Sie die unterstützten Muster.“

Wir unterstützen derzeit nur dieses Muster: FREQ=DAILY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY kann geändert werden, um weniger Tage einzuschließen; jedoch kann FREQ und INTERVAL nicht geändert werden. Stellen Sie sicher, dass das Muster keine Leerzeichen enthält.

Wie erhalten wir Informationen über die „CalendarId“ und die „InnerCalendarId“ der Ressource?

Die CalendarId kann aus Ressourcenattributen abgerufen werden. Führen Sie diesen Aufruf aus, um diese Informationen zu erhalten: [org-url]/api/data/v9.1/bookableresources([bookableresourceGUID]).

Ein Beispiel für den vorherigen Aufruf wäre [org-url]/api/data/v9.1/bookableresources(7bb0224b-6712-ec11-94f9-000d3a6d888e).

Die InnerCalendarId kann aus Kalenderattributen abgerufen werden. Führen Sie diesen Aufruf aus, um diese Informationen zu erhalten: [org-url]/api/data/v9.1/calendars([calendar-id-from-above-call])?$expand=calendar_calendar_rules.

Ein Beispiel für den vorherigen Aufruf ist [org-url]/api/data/v9.1/calendars(02481736-1b6a-4d49-9ebd-a5bd041c1c99)?$expand=calendar_calendar_rules.

Was passiert, wenn sich Regeln überschneiden?

Es gibt einige verschiedene Ränge, unter die Regeln fallen:

  • Rang 1 – tägliches Vorkommen (Arbeit/arbeitsfrei) und Vorkommen über arbeitsfreie Zeit.
  • Rang 0 – wöchentliche Serie (Arbeit/arbeitsfrei).

V2 – sich überschneidende Regeln

  • Die Regeln von Rang 1 haben eine höhere Priorität als Regeln von Rang 0. Wenn es also zwei Regeln (eine von jedem Rang) am selben Tag gab, hat das tägliche Vorkommen oder das Vorkommen über arbeitsfreie Zeit Vorrang vor der wöchentlichen Serie.
  • Wenn innerhalb derselben Datumsspanne mehrere Rang-0-Regeln vorhanden sind:
    • Wenn sich die Zeiten nicht überschneiden, bleiben beide im Kalender.
    • Wenn sich die Zeiten überschneiden, wird die Regel, die zuletzt erstellt/geändert wurde, für den Kalender der Ressource berücksichtigt. Alle anderen sich überschneidenden Regeln in der Datumsspanne werden entfernt. Wenn einige Regeln des Rangs 0 an manchen Daten Schnittmengen aufweisen, an anderen jedoch nicht, wird die Regel gespleißt, um die sich nicht überschneidenden Abschnitte beizubehalten, während die sich überschneidenden Teile entfernt werden.

Beispiele für das Verhalten des V2-Kalenders:

Beispiel 1 – Sich wiederholende Arbeitszeiten: Überlappende Daten ohne überlappende Tage/Zeiten

Für einen bestimmten Zeitraum arbeitet ein Techniker bzw. eine Technikerin an verschiedenen Tagen in Früh-, Mittags- oder Nachtschichten.

  1. Erstellen Sie eine erste sich wiederholende Kalenderregel für einen bestimmten Datumsbereich. Zum Beispiel: Mo, Di; 1.1-4.1; 8:00-17:00 Uhr ET wiederholen.

  2. Erstellen Sie eine zweite sich wiederholende Kalenderregel für einen sich überschneidenden Datumsbereich und stellen Sie dabei sicher, dass sich die Arbeitsstunden nicht mit den vorherigen Tagen oder Zeiten überschneiden. Zum Beispiel: Mi, Do; 1.1-4.1; 8:00-17:00 Uhr ET wiederholen oder Mo, Di; 1.1-4.1; 17:00–20:00 Uhr ET wiederholen.

Ergebnis: Beide Kalenderregeln bleiben bestehen und existieren nebeneinander.

Beispiel 2 – Sich wiederholende Arbeitszeiten: Einige überlappende Daten, wobei sich alle Tage überschneiden und die zweite Regel vor oder nach der ersten Regel beginnt/endet

Ein Techniker bzw. eine Technikerin erhält einen neuen Arbeitszeitplan, der einige Wochen seines alten Zeitplans ersetzt. Laut Vertrag arbeiten sie jede Woche immer an den gleichen Tagen.

  1. Erstellen Sie eine erste sich wiederholende Kalenderregel für einen bestimmten Datumsbereich. Zum Beispiel: Mo, Di; 2.1-4.1; 8:00-17:00 Uhr ET wiederholen.

  2. Erstellen Sie eine zweite sich wiederholende Kalenderregel für einen sich überschneidenden Datumsbereich, in dem alle Tage überlappende Arbeitszeiten haben. Wählen Sie Start-/Enddaten für diese neue Regel aus, die vor oder nach dem Start-/Enddatum der ersten Regel liegen. Zum Beispiel: Mo, Di; 3.1-5.1; 13:00-20:00 Uhr ET wiederholen.

Ergebnis: Die erste Regel wird gekürzt, um das Start-/Enddatum der zweiten Regel zu berücksichtigen. Zum Beispiel: Mo, Di; 2.1-2.28; 8:00-17:00 Uhr ET wiederholen UND Mo, Di; 3.1-5.1; 13:00–20:00 Uhr ET wiederholen.

Beispiel 3 – Sich wiederholende Arbeitszeiten: Alle überlappenden Daten mit einigen überlappenden Tagen/Zeiten

Der Techniker bzw. die Technikerin ist ein Vertragsarbeitender für einen festen Zeitraum von zwei Monaten. Sie haben vereinbart, an manchen Tagen zusätzliche Arbeiten zu übernehmen. Sie möchten die Dienstagsarbeitszeit auf einen früheren/späteren Zeitpunkt verschieben.

  1. Erstellen Sie einige sich wiederholende Kalenderregeln für einen bestimmten Datumsbereich. Zum Beispiel: Mo, Di; 2.1-4.1; 8:00-12:00 Uhr ET wiederholen UND Di, Mi; 2.1-4.1; 13:00–17:00 Uhr ET wiederholen.

  2. Erstellen Sie eine neue sich wiederholende Kalenderregel für den gleichen Datumsbereich. Wählen Sie Tage/Zeiten aus, die sich teilweise mit den ursprünglichen Regeln überschneiden. Zum Beispiel: Di, Do; 2.1-4.1; 10:00–14:00 Uhr ET wiederholen.

Ergebnis: Die neue Regel überschreibt bei Überschneidungen die alte und lässt die anderen unverändert. Zum Beispiel: Mo; 2.1-4.1; 8:00–12:00 Uhr ET wiederholen UND Mi; 2.1-4.1; 13:00–17:00 Uhr ET wiederholen UND Di, Do; 2.1-4.1; 10:00–14:00 Uhr ET wiederholen.

Beispiel 4 – Sich wiederholende Arbeitszeiten: Neue Regeldaten in der alten Regel enthalten, einige überlappende Tage/Zeiten

Ein Techniker bzw. eine Technikerin arbeitet jede Woche von 8.00 bis 17.00 Uhr, Montag bis Freitag. Nur zwei Wochen lang wird er bzw. sie jeden Montag bis Mittwoch mit unterschiedlichen Arbeitszeiten von 6 bis 18 Uhr ein spezielles Notfallprojekt bearbeiten.

  1. Erstellen Sie eine erste sich wiederholende Kalenderregel für einen bestimmten Datumsbereich. Zum Beispiel: Mo, Di, Mi, Do, Fr; 1.1 – Kein Enddatum; 8:00-17:00 Uhr ET wiederholen.

  2. Erstellen Sie eine zweite sich wiederholende Kalenderregel innerhalb des oben genannten Datumsbereichs und wählen Sie Arbeitsstunden aus, die sich an einigen Tagen überschneiden. Zum Beispiel: Mo, Di; Mi; 5.1-5.14; 6:00-18:00 Uhr ET wiederholen.

Ergebnis: Der Kalender sollte am Ende dieser Übung vier sich wiederholende Regeln haben:

  • Erste Regel auf das Startdatum der zweiten Regel kürzen
  • Die zweite Kalenderregel
  • Neue Regel ähnlich der ersten Regel erstellen, jedoch mit den Daten der zweiten Regel für die nicht überlappenden Tage
  • Die erste Regel kürzen, Startdatum zum Enddatum der zweiten Regel machen, ohne Enddatum

Zum Beispiel: Mo, Di, Mi, Do, Fr; 1.1–4.30; 8:00–17:00 Uhr ET wiederholen UND Mo, Di, Mi; 5.1-5.14; 6:00–18:00 Uhr ET wiederholen UND Do, Fr, 5.1-5.14; 8:00–17:00 Uhr ET wiederholen UND Mo, Di, Mi, Do, Fr; 5.15–Kein Enddatum; 8:00-17:00 Uhr ET wiederholen

Beispiel 5 – Sich nicht wiederholende Arbeitszeiten (Vorkommen, Rang-1-Regel)

Ein Techniker bzw. eine Technikerin hat eine Reihe von Teamzusammenhaltstagen, die Vorrang vor allen anderen Arbeitsstunden des Tages haben.

  1. Erstellen Sie eine sich wiederholende Kalenderregel für einen bestimmten Datumsbereich. Zum Beispiel: Mo, Di, Mi, Do, Fr; 1.1 – Kein Enddatum; 8:00-17:00 Uhr ET wiederholen.

  2. Erstellen Sie eine sich nicht wiederholende Kalenderregel innerhalb des oben genannten Datumsbereichs. Wählen Sie Arbeitszeiten aus, die sich an manchen Tagen überschneiden. Zum Beispiel: Nicht wiederholen; 6.21; 7:00–13:00 Uhr ET.

Ergebnis: Der Kalender sollte am Ende der Übung eine sich nicht wiederholende Regel (Vorkommen) haben: Die sich nicht wiederholende Regel überschreibt das überlappende Wiederholungsereignis für den gesamten Tag. Zum Beispiel: Mo, Di, Mi, Do, Fr; 1.1-Kein Enddatum wiederholen außer 6.21; nicht wiederholen; 6.21; 7:00–13:00 Uhr ET.

V1 – sich überschneidende Regeln

  • Die Regeln von Rang 1 haben eine höhere Priorität als Regeln von Rang 0. Wenn es also zwei Regeln (eine von jedem Rang) am selben Tag gab, hat das tägliche Vorkommen oder das Vorkommen über arbeitsfreie Zeit Vorrang vor der wöchentlichen Serie.
  • Wenn zwei Regeln des gleichen Rangs vorhanden sind, wird die Regel, die zuletzt erstellt/geändert wurde, für den Kalender der Ressource berücksichtigt.
  • Denken Sie daran, dass ganztägige Vorkommnisse Rang 1 haben. Sie sollten daher in Betracht ziehen, es in eine wöchentliche Serie zu ändern, um Vorkommnisse über Arbeitsstunden hinzuzufügen, und damit diese berücksichtigt werden.
  • Wenn eine Arbeitszeit vorhanden ist und ein diese überlappendes Vorkommen über arbeitsfreie Zeit erstellt wird, werden die Regeln so aufgeteilt, dass die arbeitsfreie Zeit eingehalten wird, und die verbleibende Arbeitszeit unverändert bleibt. Wenn es beispielsweise am 21. September eine Arbeitszeit von 8:00 bis 17:00 Uhr gibt und am 21. September eine arbeitsfreie Zeit von 15:00 bis 19:00 Uhr hinzugefügt wird, wird dies als Arbeitszeit von 20:00 bis 15:00 Uhr gelöst und als arbeitsfreie Zeit von 15:00 bis 19:00 Uhr. Würden die Regeln jedoch in umgekehrter Reihenfolge erstellt (zuerst arbeitsfreie Zeit und dann Arbeitszeit erstellt), würde unabhängig von den Zeitfenstern nur die Arbeitszeit neu ausgewählt. Die arbeitsfreie Zeit würde überschrieben.

Zeitzonencodes

Enumeration Zeitzone
0 (GMT-12:00) Internationale Datumsgrenze (Westen)
1 (GMT+13:00) Samoa
2 (GMT-10:00) Hawaii
3 (GMT-09:00) Alaska
4 (GMT-08:00) Pazifische Zeit (USA und Kanada)
5 (GMT-08:00) Baja California
6 (GMT-11:00) Koordinierte Weltzeit (UTC) -11
7 (GMT-10:00) Aleuten-Inseln
8 (GMT-09:30) Marquesas-Inseln
9 (GMT-09:00) Koordinierte Weltzeit-09
10 (GMT-07:00) Mountain Time (USA und Kanada)
11 (GMT-08:00) Koordinierte Weltzeit-08
12 (GMT-07:00) Chihuahua, La Paz, Mazatlan
15 (GMT-07:00) Arizona
20 (GMT-06:00) Zentrale Zeit (USA und Kanada)
25 (GMT-06:00) Saskatchewan
29 (GMT-06:00) Guadalajara, Mexiko-Stadt, Monterrey
33 (GMT-06:00) Mittelamerika
34 (GMT-06:00) Osterinsel
35 (GMT-05:00) Östliche Zeit (USA und Kanada)
40 (GMT-05:00) Indiana (Ost)
43 (GMT-05:00) Haiti
44 (GMT-05:00) Havanna
45 (GMT-05:00) Bogotá, Lima, Quito, Rio Branco
47 (GMT-04:00) Caracas
50 (GMT-04:00) Atlantic (Kanada)
51 (GMT-05:00) Turks- und Caicosinseln
55 (GMT-04:00) Georgetown, La Paz, San Juan
56 (GMT-04:00) Santiago
58 (GMT-04:00) Cuiabá
59 (GMT-04:00) Asuncion
60 (GMT-03:30) Neufundland
65 (GMT-03:00) Brasilien
69 (GMT-03:00) Buenos Aires
70 (GMT-03:00) Cayenne, Fortaleza
71 (GMT-03:00) Salvador
72 (GMT-03:00) St. Pierre und Miquelon
73 (GMT-03:00) Grönland
74 (GMT-03:00) Montevideo
75 (GMT-02:00) Mittelatlantik
76 (GMT-02:00) Koordinierte Weltzeit (UTC)-02
77 (GMT-03:00) Araguaína
80 (GMT-01:00) Azoren
83 (GMT-01:00) Cabo Verde
84 (GMT+01:00) Casablanca
85 (GMT+00:00) Dublin, Edinburgh, Lissabon, London
90 (GMT+00:00) Monrovia, Reykjavik
92 (GMT) Koordinierte Weltzeit
95 (GMT+01:00) Belgrad, Bratislava, Budapest, Ljubljana, Prag
100 (GMT+01:00) Sarajevo, Skopje, Warschau, Zagreb
105 (GMT+01:00) Brüssel, Kopenhagen, Madrid, Paris
110 (GMT+01:00) Amsterdam, Berlin, Bern, Rom, Stockholm, Wien
113 (GMT+01:00) West-Zentralafrika
115 (GMT+02:00) Chisinau
120 (GMT+02:00) Kairo
125 (GMT+02:00) Helsinki, Kiew, Riga, Sofia, Tallinn, Wilna
129 (GMT+02:00) Amman
130 (GMT+02:00) Athen, Bukarest
131 (GMT+02:00) Beirut
133 (GMT+02:00) Damaskus
134 (GMT+03:00) Istanbul
135 (GMT+02:00) Jerusalem
140 (GMT+02:00) Harare, Pretoria
141 (GMT+02:00) Windhuk
142 (GMT+02:00) Gaza, Hebron
145 (GMT+03:00) Moskau, St. Petersburg
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, Muskat
169 (GMT+04:00) Baku
170 (GMT+04:00) Eriwan
172 (GMT+04:00) Port Louis
173 (GMT+04:00) Tiflis
174 (GMT+04:00) Ischewsk, Samara
175 (GMT+04:30) Kabul
176 (GMT+04:00) Astrachan, Uljanowsk
180 (GMT+05:00) Jekaterinburg
184 (GMT+05:00) Islamabad, Karatschi
185 (GMT+05:00) Taschkent
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) Nowosibirsk
203 (GMT+06:30) Yangon (Rangun)
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) Peking, Chongqing, Hongkong, Urumchi
211 (GMT+07:00) Tomsk
215 (GMT+08:00) Kuala Lumpur, Singapur
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) Pyongyang
230 (GMT+09:00) Seoul
231 (GMT+08:45) Eucla
235 (GMT+09:00) Osaka, Sapporo, Tokio
240 (GMT+09:00) Jakutsk
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) Wladiwostok
274 (GMT+10:30) Lord-Howe-Insel
275 (GMT+10:00) Guam, Port Moresby
276 (GMT+11:00) Bougainville-Insel
277 (GMT+11:00) Norfolkinsel
278 (GMT+11:00) Sachalin
279 (GMT+11:00) Tschokurdach
280 (GMT+11:00) Salomonen, Neu-Kaledonien
281 (GMT+11:00) Magadan
284 (GMT+12:00) Koordinierte Weltzeit (UTC)+12
285 (GMT+12:00) Fidschi
290 (GMT+12:00) Auckland, Wellington
295 (GMT+12:00) Anadyr, Petropawlowsk-Kamtschatski
299 (GMT+12:45) Chatham-Inseln
300 (GMT+13:00) Nuku'alofa
301 (GMT-05:00) Chetumal
302 (GMT+02:00) Khartum
303 (GMT-03:00) Punta Arenas
304 (GMT+04:00) Wolgograd
305 (GMT-07:00) Yukon