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.
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
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
CalendarId | guid | Eindeutige ID des Kalenders. |
Name | string | Name des Kalenders. |
Imported | bool? | Ob der Kalender importiert wurde. |
VisibleInPlanning | bool | Ob der Kalender in der Planung sichtbar ist. |
VisibleInContact | bool | Ob der Kalender in der Kontaktansicht sichtbar ist. |
SystemTimeZoneId | string | System-Zeitzonen-ID. Eine IANA-Zeitzonen-ID (z. B. "Europe/Berlin", "America/New_York") |
Endpunkte
CRUD-Operationen
Alle Kalender abrufen
/odata/CalendarUnterstützt OData-Abfrageoptionen.
Einen Kalender nach ID abrufen
/odata/Calendar({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | guid | ✅ | Die CalendarId. |
Einen neuen Kalender erstellen
/odata/Calendar| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiCalendar> | ✅ | JSON-Objekt mit den Kalendereigenschaften. |
Einen Kalender aktualisieren
/odata/Calendar({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | guid | ✅ | Die CalendarId. |
Body | Delta<ApiCalendar> | ✅ | JSON-Objekt mit den zu aktualisierenden Feldern. |
Einen Kalender löschen
/odata/Calendar({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | guid | ✅ | Die CalendarId. |
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
/Calendar/CalculateWorkBetweenBerechnet die effektive Arbeitszeit zwischen zwei Zeitpunkten unter Berücksichtigung des angegebenen Kalenders.
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
/odata/Calendar({key})/GetCalendarTimeZoneOrDefault()| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | guid | ✅ | Die 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
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
WorkingTimeId | guid | Eindeutige ID der Arbeitszeit. |
CalendarId | guid | ID des zugehörigen Kalenders. |
StartTime | DateTimeOffset | Beginn der Arbeitszeit. |
EndTime | DateTimeOffset | Ende der Arbeitszeit. |
IsAllDay | bool | Ob es sich um einen ganztägigen Eintrag handelt. |
IsWorkDay | bool | Ob es sich um einen Arbeitstag handelt. |
OrdinalPosition | int? | Veraltet. |
Endpunkte
Alle Arbeitszeiten aller Kalender abrufen
/odata/WorkingTimeUnterstützt OData-Abfrageoptionen.
Eine Arbeitszeit nach ID abrufen
/odata/WorkingTime({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | guid | ✅ | Die WorkingTimeId. |
Eine neue Arbeitszeit erstellen
/odata/WorkingTime| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiWorkingTime> | ✅ | JSON-Objekt mit den Arbeitszeit-Eigenschaften. |
Eine Arbeitszeit aktualisieren
/odata/WorkingTime({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | guid | ✅ | Die WorkingTimeId. |
Body | Delta<ApiWorkingTime> | ✅ | JSON-Objekt mit den zu aktualisierenden Feldern. |
Eine Arbeitszeit löschen
/odata/WorkingTime({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | guid | ✅ | Die WorkingTimeId. |
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
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
WorkingTimeDayOffId | guid | Eindeutige ID des freien Tags. |
CalendarId | guid | ID des zugehörigen Kalenders. |
Name | string | Bezeichnung (z. B. Weihnachten, Tag der Deutschen Einheit). |
StartTime | DateTimeOffset | Beginn des freien Zeitraums. |
EndTime | DateTimeOffset | Ende des freien Zeitraums. |
IsGlobal | bool | Ob der freie Tag für alle Kalender gilt. |
Endpunkte
Alle freien Tage aller Kalender abrufen
/odata/WorkingTimeDayOffUnterstützt OData-Abfrageoptionen.
Einen freien Tag nach ID abrufen
/odata/WorkingTimeDayOff({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | guid | ✅ | Die WorkingTimeDayOffId. |
Einen neuen freien Tag erstellen
/odata/WorkingTimeDayOff| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiWorkingTimeDayOff> | ✅ | JSON-Objekt mit den Eigenschaften des freien Tags. |
Einen freien Tag aktualisieren
/odata/WorkingTimeDayOff({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | guid | ✅ | Die WorkingTimeDayOffId. |
Body | Delta<ApiWorkingTimeDayOff> | ✅ | JSON-Objekt mit den zu aktualisierenden Feldern. |
Einen freien Tag löschen
/odata/WorkingTimeDayOff({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | guid | ✅ | Die WorkingTimeDayOffId. |
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
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
ContactNonWorkingTimeId | guid | Eindeutige ID des Abwesenheitseintrags. |
ContactId | guid | ID des betroffenen Kontakts. |
Name | string | Bezeichnung der Abwesenheit (z. B. Urlaub, Krankheit). |
StartTime | DateTimeOffset | Beginn der Abwesenheit. |
EndTime | DateTimeOffset | Ende der Abwesenheit. |
Endpunkte
Alle Abwesenheiten aller Kontakte abrufen
/odata/ContactNonWorkingTimeUnterstützt OData-Abfrageoptionen.
Eine Abwesenheit nach ID abrufen
/odata/ContactNonWorkingTime({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | guid | ✅ | Die ContactNonWorkingTimeId. |
Eine neue Abwesenheit erstellen
/odata/ContactNonWorkingTime| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiContactNonWorkingTime> | ✅ | JSON-Objekt mit den Abwesenheitseigenschaften. |
Eine Abwesenheit aktualisieren
/odata/ContactNonWorkingTime({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | guid | ✅ | Die ContactNonWorkingTimeId. |
Body | Delta<ApiContactNonWorkingTime> | ✅ | JSON-Objekt mit den zu aktualisierenden Feldern. |
Eine Abwesenheit löschen
/odata/ContactNonWorkingTime({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | guid | ✅ | Die ContactNonWorkingTimeId. |
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
/odata/ContactNonWorkingTime/DeleteAllEntfernt sämtliche Abwesenheitseinträge.
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"
}
Verwenden Sie $filter mit CalendarId oder ContactId, um Einträge für einen bestimmten Kalender oder Kontakt abzurufen.