Zum Hauptinhalt springen

Kalender & Arbeitszeiten

Die Kalender-Endpunkte ermöglichen die Verwaltung von Arbeitszeitkalendern, regulären Arbeitszeiten, freien Tagen (z. B. Feiertagen, Betriebsurlaube) und kontaktspezifischer Abwesenheit (Urlauben, Elternzeiten, o.ä.). Diese Daten werden für die Ressourcenplanung und Kapazitätsberechnung in InLoox verwendet.

info

Jeder Kontakt und jedes Planungselement kann einem eigenen Kalender zugeordnet werden. Der Standardkalender wird für alle Kontakte und Planungselemente ohne individuelle Zuordnung verwendet.


Calendar

Die Calendar-Entität repräsentiert einen Arbeitszeitkalender. Kalender definieren die regulären Arbeitszeiten und können verschiedenen Kontakten zugeordnet werden.

Datenmodell

EigenschaftTypBeschreibung
CalendarIdguidEindeutige ID des Kalenders.
NamestringName des Kalenders.
Importedbool?Ob der Kalender importiert wurde.
VisibleInPlanningboolOb der Kalender in der Planung sichtbar ist.
VisibleInContactboolOb der Kalender in der Kontaktansicht sichtbar ist.
SystemTimeZoneIdstringSystem-Zeitzonen-ID. Eine IANA-Zeitzonen-ID (z. B. "Europe/Berlin", "America/New_York")

Endpunkte

CRUD-Operationen

Alle Kalender abrufen

GET/odata/Calendar

Unterstützt OData-Abfrageoptionen.


Einen Kalender nach ID abrufen

GET/odata/Calendar({key})
ParameterTypErforderlichBeschreibung
keyguidDie CalendarId.

Einen neuen Kalender erstellen

POST/odata/Calendar
ParameterTypErforderlichBeschreibung
BodyDelta<ApiCalendar>JSON-Objekt mit den Kalendereigenschaften.

Einen Kalender aktualisieren

PATCH/odata/Calendar({key})
ParameterTypErforderlichBeschreibung
keyguidDie CalendarId.
BodyDelta<ApiCalendar>JSON-Objekt mit den zu aktualisierenden Feldern.

Einen Kalender löschen

DELETE/odata/Calendar({key})
ParameterTypErforderlichBeschreibung
keyguidDie CalendarId.
warnung

Das Löschen eines Kalenders entfernt auch alle zugehörigen Arbeitszeiten und freien Tage. Stellen Sie sicher, dass kein Kontakt oder Planungselement mehr diesem Kalender zugeordnet ist, da andernfalls Neuberechnungen durchgeführt werden.

Gibt 204 No Content bei Erfolg zurück.


Kalenderfunktionen

Arbeitszeit zwischen zwei Zeitpunkten berechnen

POST/Calendar/CalculateWorkBetween

Berechnet die effektive Arbeitszeit zwischen zwei Zeitpunkten unter Berücksichtigung des angegebenen Kalenders.

tipp

Verwenden Sie diese Funktion, um die tatsächliche Arbeitszeit für Ressourcenplanung und Aufwandsberechnung zu ermitteln. Wochenenden und Feiertage werden automatisch ausgeschlossen.


Zeitzone des Kalenders oder Standardzeitzone abrufen

GET/odata/Calendar({key})/GetCalendarTimeZoneOrDefault()
ParameterTypErforderlichBeschreibung
keyguidDie CalendarId.

Gibt die konfigurierte Zeitzone des Kalenders zurück. Falls keine spezifische Zeitzone festgelegt ist, wird die Standardzeitzone zurückgegeben.


WorkingTime

Die WorkingTime-Entität definiert die regulären Arbeitszeiten eines Kalenders. Jeder Eintrag repräsentiert einen Arbeitszeitblock (z. B. Montag 08:00–17:00).

Datenmodell

EigenschaftTypBeschreibung
WorkingTimeIdguidEindeutige ID der Arbeitszeit.
CalendarIdguidID des zugehörigen Kalenders.
StartTimeDateTimeOffsetBeginn der Arbeitszeit.
EndTimeDateTimeOffsetEnde der Arbeitszeit.
IsAllDayboolOb es sich um einen ganztägigen Eintrag handelt.
IsWorkDayboolOb es sich um einen Arbeitstag handelt.
OrdinalPositionint?Veraltet.

Endpunkte

Alle Arbeitszeiten aller Kalender abrufen

GET/odata/WorkingTime

Unterstützt OData-Abfrageoptionen.


Eine Arbeitszeit nach ID abrufen

GET/odata/WorkingTime({key})
ParameterTypErforderlichBeschreibung
keyguidDie WorkingTimeId.

Eine neue Arbeitszeit erstellen

POST/odata/WorkingTime
ParameterTypErforderlichBeschreibung
BodyDelta<ApiWorkingTime>JSON-Objekt mit den Arbeitszeit-Eigenschaften.

Eine Arbeitszeit aktualisieren

PATCH/odata/WorkingTime({key})
ParameterTypErforderlichBeschreibung
keyguidDie WorkingTimeId.
BodyDelta<ApiWorkingTime>JSON-Objekt mit den zu aktualisierenden Feldern.

Eine Arbeitszeit löschen

DELETE/odata/WorkingTime({key})
ParameterTypErforderlichBeschreibung
keyguidDie WorkingTimeId.
warnung

Das Löschen einer Arbeitszeit ist endgültig und kann nicht rückgängig gemacht werden.

Gibt 204 No Content bei Erfolg zurück.


WorkingTimeDayOff

Die WorkingTimeDayOff-Entität definiert Feiertage und freie Tage in einem Kalender. Diese Tage werden bei der Kapazitätsberechnung und Planung berücksichtigt.

Datenmodell

EigenschaftTypBeschreibung
WorkingTimeDayOffIdguidEindeutige ID des freien Tags.
CalendarIdguidID des zugehörigen Kalenders.
NamestringBezeichnung (z. B. Weihnachten, Tag der Deutschen Einheit).
StartTimeDateTimeOffsetBeginn des freien Zeitraums.
EndTimeDateTimeOffsetEnde des freien Zeitraums.
IsGlobalboolOb der freie Tag für alle Kalender gilt.

Endpunkte

Alle freien Tage aller Kalender abrufen

GET/odata/WorkingTimeDayOff

Unterstützt OData-Abfrageoptionen.


Einen freien Tag nach ID abrufen

GET/odata/WorkingTimeDayOff({key})
ParameterTypErforderlichBeschreibung
keyguidDie WorkingTimeDayOffId.

Einen neuen freien Tag erstellen

POST/odata/WorkingTimeDayOff
ParameterTypErforderlichBeschreibung
BodyDelta<ApiWorkingTimeDayOff>JSON-Objekt mit den Eigenschaften des freien Tags.

Einen freien Tag aktualisieren

PATCH/odata/WorkingTimeDayOff({key})
ParameterTypErforderlichBeschreibung
keyguidDie WorkingTimeDayOffId.
BodyDelta<ApiWorkingTimeDayOff>JSON-Objekt mit den zu aktualisierenden Feldern.

Einen freien Tag löschen

DELETE/odata/WorkingTimeDayOff({key})
ParameterTypErforderlichBeschreibung
keyguidDie WorkingTimeDayOffId.
warnung

Das Löschen eines freien Tags ist endgültig und kann nicht rückgängig gemacht werden.

Gibt 204 No Content bei Erfolg zurück.


ContactNonWorkingTime

Die ContactNonWorkingTime-Entität verwaltet die individuelle Abwesenheit eines Kontakts (z. B. Urlaub, Krankheit). Diese Zeiten werden bei der Ressourcenplanung berücksichtigt.

Datenmodell

EigenschaftTypBeschreibung
ContactNonWorkingTimeIdguidEindeutige ID des Abwesenheitseintrags.
ContactIdguidID des betroffenen Kontakts.
NamestringBezeichnung der Abwesenheit (z. B. Urlaub, Krankheit).
StartTimeDateTimeOffsetBeginn der Abwesenheit.
EndTimeDateTimeOffsetEnde der Abwesenheit.

Endpunkte

Alle Abwesenheiten aller Kontakte abrufen

GET/odata/ContactNonWorkingTime

Unterstützt OData-Abfrageoptionen.


Eine Abwesenheit nach ID abrufen

GET/odata/ContactNonWorkingTime({key})
ParameterTypErforderlichBeschreibung
keyguidDie ContactNonWorkingTimeId.

Eine neue Abwesenheit erstellen

POST/odata/ContactNonWorkingTime
ParameterTypErforderlichBeschreibung
BodyDelta<ApiContactNonWorkingTime>JSON-Objekt mit den Abwesenheitseigenschaften.

Eine Abwesenheit aktualisieren

PATCH/odata/ContactNonWorkingTime({key})
ParameterTypErforderlichBeschreibung
keyguidDie ContactNonWorkingTimeId.
BodyDelta<ApiContactNonWorkingTime>JSON-Objekt mit den zu aktualisierenden Feldern.

Eine Abwesenheit löschen

DELETE/odata/ContactNonWorkingTime({key})
ParameterTypErforderlichBeschreibung
keyguidDie ContactNonWorkingTimeId.
warnung

Das Löschen einer Abwesenheit ist endgültig und kann nicht rückgängig gemacht werden.

Gibt 204 No Content bei Erfolg zurück.


Alle Abwesenheiten löschen

POST/odata/ContactNonWorkingTime/DeleteAll

Entfernt sämtliche Abwesenheitseinträge.

warnung

Diese Aktion löscht alle Abwesenheitseinträge im System und kann nicht rückgängig gemacht werden. Verwenden Sie diesen Endpunkt mit äußerster Vorsicht.


OData-Abfragebeispiele

Kalender auflisten

GET /odata/Calendar?$orderby=Name

Einen Kalender erstellen

POST /odata/Calendar
Content-Type: application/json
{
"Name": "Standardkalender NRW",
"VisibleInPlanning": true,
"VisibleInContact": true,
"SystemTimeZoneId": "W. Europe Standard Time"
}

Einen Kalender umbenennen

PATCH /odata/Calendar({key})
Content-Type: application/json
{
"Name": "Kalender Region 3"
}

Arbeitszeit zwischen zwei Zeitpunkten berechnen

POST /Calendar/CalculateWorkBetween
Content-Type: application/json
{
"CalendarId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"Start": "2025-01-06T08:00:00Z",
"End": "2025-01-10T17:00:00Z"
}

Arbeitszeiten eines Kalenders abrufen

GET /odata/WorkingTime?$filter=CalendarId eq {calendarId}&$orderby=OrdinalPosition

Eine Arbeitszeit erstellen

POST /odata/WorkingTime
Content-Type: application/json
{
"CalendarId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"StartTime": "2025-01-06T08:00:00Z",
"EndTime": "2025-01-06T17:00:00Z",
"IsAllDay": false,
"IsWorkDay": true,
"OrdinalPosition": 1
}

Eine Arbeitszeit aktualisieren

PATCH /odata/WorkingTime({key})
Content-Type: application/json
{
"EndTime": "2025-01-06T16:00:00Z"
}

Freie Tage eines Kalenders abrufen

GET /odata/WorkingTimeDayOff?$filter=CalendarId eq {calendarId}&$orderby=StartTime

Einen freien Tag erstellen

POST /odata/WorkingTimeDayOff
Content-Type: application/json
{
"CalendarId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"Name": "Tag der Deutschen Einheit",
"StartTime": "2025-10-03T00:00:00Z",
"EndTime": "2025-10-03T23:59:59Z",
"IsGlobal": false
}

Einen freien Tag umbenennen

PATCH /odata/WorkingTimeDayOff({key})
Content-Type: application/json
{
"Name": "Nationalfeiertag"
}

Abwesenheiten eines Kontakts abrufen

GET /odata/ContactNonWorkingTime?$filter=ContactId eq {contactId}&$orderby=StartTime

Eine Abwesenheit erstellen

POST /odata/ContactNonWorkingTime
Content-Type: application/json
{
"ContactId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"Name": "Urlaub",
"StartTime": "2025-08-04T00:00:00Z",
"EndTime": "2025-08-15T23:59:59Z"
}

Eine Abwesenheit verlängern

PATCH /odata/ContactNonWorkingTime({key})
Content-Type: application/json
{
"EndTime": "2025-08-22T23:59:59Z"
}
tipp

Verwenden Sie $filter mit CalendarId oder ContactId, um Einträge für einen bestimmten Kalender oder Kontakt abzurufen.