ShiftPlanTemplate
Veröffentlicht eine ganze Woche in einer Transaktion - alles oder nichts
POST/api/time/shift_plan_template/publish_week
Query-Parameter
idinteger | |
startDatestring | |
startMonthstring | |
startYearstring | |
employmentContractGroupstring | Planungscontainer - Pflichtangabe, auch wenn eine Person einer anderen Gruppe aushilft. | Benötigt Zugriffsrecht: SCOPE |
personstring | |
userstring | |
shiftTypestring | Ursprungstyp - Zeiten wurden kopiert, der Verweis dient nur der Information. |
statusstring | |
contractstring | |
searchStringstring | Text, nach dem in der Liste gesucht wird |
orderFieldNamestring | Name des Bestellfelds |
orderFieldSortstring | SortiermodusErlaubt: DESCASC |
pageinteger | Seite der Liste |
pageSizeinteger | Anzahl der Einträge je Seite |
withMaxPageNumberstring | gibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist |
Antworten
200Liefert die veröffentlichten ShiftPlanEntry-Objektearray<ShiftPlanEntry>
Felder anzeigen (23)
idintegerPrimärschlüssel des Schichtplan-Eintrags. Interne ID.
userUser14Der Schicht zugewiesener Benutzer.
Felder anzeigen (10)
idintegerPrimärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.
namestringAnzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.
usernamestringAnmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.
emailstringE-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.
positioningeneralstringFreitext zur Position oder Rolle des Benutzers.
crm_personCRMPerson10CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.
profile_picture_urlstringURL des Profilbilds des Benutzers.
archivedbooleanMarkiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.
require2fabooleanFür diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.
search_stringstringText, unter dem die Entität gesucht werden kann.
personCRMPerson10Person, die der Schicht zugewiesen ist.
Felder anzeigen (81)
idintegerPrimärschlüssel der Person. Interne ID.
first_namestringVorname der Person.
last_namestringNachname der Person.
numberintegerMitglieds- oder Kundennummer der Person.
manual_numberintegerManuell gesetzte Nummer statt der automatischen Nummer.
number_stringstringMitglieds- oder Kundennummer als Text, einschließlich Präfix.
genderstringGeschlecht der Person.
titlestringAkademischer oder sonstiger Titel der Person.
positionstringPosition oder Rolle der Person.
languagestringBevorzugte Sprache der Person.
special_salutationstringBesonderer Anredetext für Briefe.
form_of_salutationstringForm der Anrede, zum Beispiel förmlich oder informell.
birthdaystring (date-time)Geburtstag der Person.
known_allergiesstringBekannte Allergien der Person.
confirmed_no_allergiesbooleanErziehungsberechtigte(r) bestätigt, dass keine bekannten Allergien vorliegen.
allow_photosbooleanFotos der Person dürfen aufgenommen und veröffentlicht werden.
allow_leaving_alonebooleanDie Person darf die Veranstaltung allein verlassen.
authorized_pickupstringPersonen, die die Person abholen dürfen.
needs_supportbooleanDie Person benötigt Unterstützung, zum Beispiel zur Inklusion.
support_descriptionstringBeschreibung der Unterstützung, die die Person benötigt.
financial_supportbooleanDie Person erhält finanzielle Unterstützung.
financial_support_numberstringNummer der finanziellen Förderung.
municipal_supportbooleanDie Person erhält kommunale Unterstützung.
municipal_support_numberstringNummer der kommunalen Förderung.
grade_levelintegerSchuljahrgang der Person.
school_classstringSchulklasse der Person.
start_timestring (date-time)Beginn der Mitgliedschaft oder Aktivität.
start_time_reasonstringGrund für den Beginn.
end_timestring (date-time)Ende der Mitgliedschaft oder Aktivität.
end_time_reasonstringGrund für das Ende.
confirmed_gtc_timestring (date-time)Zeitpunkt, zu dem die AGB bestätigt wurden.
chatbot_opt_inbooleanEinwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das prüfbare Protokoll steht in ChatbotConsent.
chatbot_opt_in_atstring (date-time)Zeitpunkt, zu dem die Person dem Chatbot zugestimmt hat.
chatbot_opt_in_text_versionstringVersion des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.
app_usage_statistics_opt_outbooleanWiderspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezählten Aufrufe selbst haben keinen Bezug zur Person.
crm_person_contact_dataarray<CRMPersonContactData>Kontaktdaten der Person, zum Beispiel Telefon und E-Mail.
archivedbooleanOb die Person archiviert ist.
subscribed_newsletterbooleanOb die Person den Newsletter abonniert hat.
subscribed_magazinebooleanOb die Person das Magazin abonniert hat.
printed_member_cardbooleanOb für die Person ein Mitgliedsausweis gedruckt wurde.
has_login_userbooleanOb die Person einen Anmelde-Benutzer hat.
profile_picture_urlstringURL des Profilbilds der Person.
log_book_staffbooleanLogbuch-Kennzeichen: Personal.
log_book_staff1booleanLogbuch-Kennzeichen: Personal, Stufe 1.
log_book_staff2booleanLogbuch-Kennzeichen: Personal, Stufe 2.
log_book_memberbooleanLogbuch-Kennzeichen: Mitglied.
log_book_trainerbooleanLogbuch-Kennzeichen: Trainer.
log_book_trainer1booleanLogbuch-Kennzeichen: Trainer, Stufe 1.
log_book_trainer2booleanLogbuch-Kennzeichen: Trainer, Stufe 2.
log_book_head_of_departmentbooleanLogbuch-Kennzeichen: Abteilungsleitung.
log_book_supervisory_boardbooleanLogbuch-Kennzeichen: Aufsichtsrat.
log_book_board_of_directorsbooleanLogbuch-Kennzeichen: Vorstand.
log_book_honorary_memberbooleanLogbuch-Kennzeichen: Ehrenmitglied.
log_book_club_card_onebooleanLogbuch-Kennzeichen: Vereinskarte.
log_book_health_recoveredbooleanLogbuch-Kennzeichen: von Krankheit genesen.
log_book_health_vaccinatedbooleanLogbuch-Kennzeichen: geimpft.
log_book_health_vaccinated_additionstringDetails der Impfung.
log_book_good_conductbooleanLogbuch-Kennzeichen: Führungszeugnis.
log_book_first_aidbooleanLogbuch-Kennzeichen: Erste-Hilfe-Schulung.
log_book_measles_vaccinationbooleanLogbuch-Kennzeichen: Masernimpfung.
sync_lanistabooleanOb die Person mit Lanista synchronisiert ist.
categoryCRMPersonCategoryPersonenkategorie.
nicknamestringSpitzname der Person.
preferred_color_hexstringBevorzugte Farbe der Person als Hexwert.
avatar_tokenstringToken des Avatarbildes.
search_stringstringText, unter dem die Entität gesucht werden kann.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
- … 2 weitere Felder
employment_contract_groupEmploymentContractGroupPlanungscontainer - Pflichtangabe, auch wenn eine Person einer anderen Gruppe aushilft.
Felder anzeigen (25)
staged_absence_approvalbooleannull übernimmt die Organisation; false deaktiviert die gestufte Freigabe ausdrücklich.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Organisation, false schaltet es für diese Gruppe aus.
idintegerPrimärschlüssel der Vertragsgruppe. Interne ID.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Arbeitstage pro Woche.
year_vacation_daysnumber (float)Urlaubstage pro Jahr.
month_vacation_daysnumber (float)Urlaubstage pro Monat.
year_vacation_weeksnumber (float)Urlaubswochen pro Jahr.
monday_hoursnumber (float)Arbeitsstunden am Montag.
tuesday_hoursnumber (float)Arbeitsstunden am Dienstag.
wednesday_hoursnumber (float)Arbeitsstunden am Mittwoch.
thursday_hoursnumber (float)Arbeitsstunden am Donnerstag.
friday_hoursnumber (float)Arbeitsstunden am Freitag.
saturday_hoursnumber (float)Arbeitsstunden am Samstag.
sunday_hoursnumber (float)Arbeitsstunden am Sonntag.
netto_hour_costnumber (float)Nettokosten je Stunde.
brutto_hour_costnumber (float)Bruttokosten pro Stunde.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag dieser Gruppe vor seinem ersten Tag eingereicht werden muss. null greift auf die installationsweite Einstellung zurück – eine bestehende Gruppe verhält sich daher weiterhin genauso wie bisher.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender dieser Gruppe, wenn er vom Kalender der Organisation abweicht (Auszubildende, die in einem anderen Bundesland zur Schule gehen). null = der der Organisation.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
shift_typeShiftType4Ursprungstyp - Zeiten wurden kopiert, der Verweis dient nur der Information.
Felder anzeigen (17)
idintegerPrimärschlüssel des Schichttyps. Interne ID.
employment_contract_groupEmploymentContractGroupGruppe, zu der dieser Typ gehört (null = für die gesamte Organisation / Installation verfügbar).
employment_organizationEmploymentOrganization5Organisation, zu der der Schichttyp gehört.
short_namestringKurzcode für Raster und Druck („F“, „S“, „N“).
start_timestringStandardstartzeit als HH:MM.
end_timestringStandardendzeit als HH:MM - eine Endzeit vor der Startzeit bedeutet, dass die Schicht am folgenden Tag endet (Nachtschicht).
break_duration_secondsintegerPausendauer der Schicht in Sekunden.
colorstringFarbe des Schichttyps im Schichtplan als Hex-Code.
required_qualificationEmploymentQualification3Standard-Qualifikationsanforderung für Schichten dieses Typs.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
default_staff_countintegerStandardanzahl der benötigten Mitarbeitenden für die Schicht.
sort_orderintegerSortierreihenfolge des Diensttyps in Listen.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
startstring (date-time)Beginn des Dienstes.
endstring (date-time)Ende der Schicht.
start_datestringStartdatum des Dienstes als Text.
start_monthintegerMonat der Schicht.
start_yearintegerJahr der Schicht.
break_duration_secondsintegerPausendauer der Schicht in Sekunden.
durationintegerZielsekunden: (Ende - Start) - Pause, wird von recalculate() gepflegt.
required_qualificationEmploymentQualification3Für die Schicht erforderliche Qualifikation.
Felder anzeigen (7)
idintegerPrimärschlüssel der Beschäftigungsqualifikation. Interne ID.
rankingintegerRangfolge innerhalb eines Äquivalenznetzwerks - eine verknüpfte Qualifikation mit gleichem oder höherem Rang erfüllt auch Anforderungen an diese Qualifikation.
equivalent_qualificationsarray<EmploymentQualification3>Verknüpfte ("gleichwertige") Qualifikationen. Vom Controller symmetrisch gehalten: jede Verknüpfung A->B wird als B->A gespiegelt; der Rang entscheidet, welche Richtung tatsächlich welche abdeckt.
qualification_groupEmploymentQualificationGroupL17/A06: die "Schublade", zu der diese Qualifikation gehört. Mitglieder einer Gruppe decken sich gegenseitig die Anforderungen innerhalb ihres Rangs ab, wie es eine direkte Verknüpfung täte.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
statusstringStatus des Dienstes, zum Beispiel geplant oder veröffentlicht.
published_atstring (date-time)Zeitpunkt, zu dem die Schicht veröffentlicht wurde.
descriptionstringBeschreibung der Schicht.
has_warningbooleanGespeichertes Konfliktkennzeichen für Listen-Badges - die konkreten Warnungen werden bei Bedarf berechnet (ShiftPlanHelper) und nur vorübergehend zurückgegeben.
availability_bookingBaseBooking13L35: die Verfügbarkeit, für die die veröffentlichte Schicht im Buchungsbereich steht (wird vom ShiftBookingSyncHelper synchron gehalten, solange die Synchronisation für den Vertrag aktiviert ist).
Felder anzeigen (17)
idintegerPrimärschlüssel der Buchung. Interne ID.
start_timestring (date-time)Beginn der Buchung.
end_timestring (date-time)Ende der Buchung.
booking_typestringArt der Buchung, zum Beispiel normal oder Vertretung.
booking_statusstringStatus der Buchung, zum Beispiel geplant, erledigt oder storniert.
externalbooleanDie Buchung wurde von einer externen Stelle vorgenommen.
modified_timebooleanDer Zeitpunkt der Buchung wurde nach der Erstellung geändert.
modified_locationbooleanDer Standort der Buchung wurde nach der Erstellung geändert.
modified_bookablebooleanDer Buchungsgegenstand der Buchung wurde nach der Erstellung geändert.
modified_performing_personbooleanDer Leiter der Buchung wurde nach der Erstellung geändert.
searching_for_performing_personbooleanFür die Buchung wird noch eine Leitung gesucht.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
colorstringHintergrundfarbe als Hexwert.
fg_colorstringVordergrundfarbe als Hex-Wert.
bookingBaseBooking13L35: der aus dieser Schicht erstellte Termin, falls vorhanden.
Felder anzeigen (17)
idintegerPrimärschlüssel der Buchung. Interne ID.
start_timestring (date-time)Beginn der Buchung.
end_timestring (date-time)Ende der Buchung.
booking_typestringArt der Buchung, zum Beispiel normal oder Vertretung.
booking_statusstringStatus der Buchung, zum Beispiel geplant, erledigt oder storniert.
externalbooleanDie Buchung wurde von einer externen Stelle vorgenommen.
modified_timebooleanDer Zeitpunkt der Buchung wurde nach der Erstellung geändert.
modified_locationbooleanDer Standort der Buchung wurde nach der Erstellung geändert.
modified_bookablebooleanDer Buchungsgegenstand der Buchung wurde nach der Erstellung geändert.
modified_performing_personbooleanDer Leiter der Buchung wurde nach der Erstellung geändert.
searching_for_performing_personbooleanFür die Buchung wird noch eine Leitung gesucht.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
colorstringHintergrundfarbe als Hexwert.
fg_colorstringVordergrundfarbe als Hex-Wert.
lock_versionintegerOptimistische Sperre. Zwei Planer, die dieselbe Schicht bearbeiten, oder eine Wochenveröffentlichung, während jemand eine Schicht darin verschiebt, würden sonst stillschweigend einander überschreiben - der Unterlegene erhält jetzt einen 409. Nur lesend: Doctrine verwaltet den Wert, der Client sendet den zuletzt gesehenen Wert als Query-Parameter lock_version zurück.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/time/shift_plan_template/publish_week \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/time/shift_plan_template/publish_week', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/time/shift_plan_template/publish_week"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/time/shift_plan_template/publish_week', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/time/shift_plan_template/publish_week"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/time/shift_plan_template/publish_week")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/time/shift_plan_template/publish_week"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/shift_plan_template_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await ShiftPlanTemplateController.publishWeek(weekStart: '…');
if (result.success) {
print(result.data);
}[
{
"id": 42,
"description": "Text",
"user": {
"id": 42,
"name": "Beispiel",
"username": "lena.hartmann@example.org",
"email": "lena.hartmann@example.org",
"profile_picture_url": "https://vynst.de",
"positioningeneral": "string",
"archived": true,
"require2fa": true,
"search_string": "string"
},
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"employment_contract_group": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"shift_booking_sync": true,
"week_total_hours": 1.5,
"week_total_days": 1.5,
"year_vacation_days": 1.5,
"month_vacation_days": 1.5,
"year_vacation_weeks": 1.5,
"monday_hours": 1.5
},
"shift_type": {
"id": 42,
"short_name": "Beispiel",
"color": "#3f5efb",
"name": "Beispiel",
"start_time": "string",
"end_time": "string",
"break_duration_seconds": 1,
"qualification_match_mode": "string",
"default_staff_count": 1,
"sort_order": 1
},
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00",
"start_date": "2026-10-15T09:30:00+02:00",
"start_month": 1
}
]Kopiert alle Schichten einer Woche als DRAFT-Schichten in eine andere Woche
POST/api/time/shift_plan_template/copy_week
Query-Parameter
idinteger | |
startDatestring | |
startMonthstring | |
startYearstring | |
employmentContractGroupstring | Planungscontainer - Pflichtangabe, auch wenn eine Person einer anderen Gruppe aushilft. | Benötigt Zugriffsrecht: SCOPE |
personstring | |
userstring | |
shiftTypestring | Ursprungstyp - Zeiten wurden kopiert, der Verweis dient nur der Information. |
statusstring | |
contractstring | |
searchStringstring | Text, nach dem in der Liste gesucht wird |
orderFieldNamestring | Name des Bestellfelds |
orderFieldSortstring | SortiermodusErlaubt: DESCASC |
pageinteger | Seite der Liste |
pageSizeinteger | Anzahl der Einträge je Seite |
withMaxPageNumberstring | gibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist |
Antworten
200Liefert die angelegten ShiftPlanEntry-Objektearray<ShiftPlanEntry>
Felder anzeigen (23)
idintegerPrimärschlüssel des Schichtplan-Eintrags. Interne ID.
userUser14Der Schicht zugewiesener Benutzer.
Felder anzeigen (10)
idintegerPrimärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.
namestringAnzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.
usernamestringAnmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.
emailstringE-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.
positioningeneralstringFreitext zur Position oder Rolle des Benutzers.
crm_personCRMPerson10CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.
profile_picture_urlstringURL des Profilbilds des Benutzers.
archivedbooleanMarkiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.
require2fabooleanFür diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.
search_stringstringText, unter dem die Entität gesucht werden kann.
personCRMPerson10Person, die der Schicht zugewiesen ist.
Felder anzeigen (81)
idintegerPrimärschlüssel der Person. Interne ID.
first_namestringVorname der Person.
last_namestringNachname der Person.
numberintegerMitglieds- oder Kundennummer der Person.
manual_numberintegerManuell gesetzte Nummer statt der automatischen Nummer.
number_stringstringMitglieds- oder Kundennummer als Text, einschließlich Präfix.
genderstringGeschlecht der Person.
titlestringAkademischer oder sonstiger Titel der Person.
positionstringPosition oder Rolle der Person.
languagestringBevorzugte Sprache der Person.
special_salutationstringBesonderer Anredetext für Briefe.
form_of_salutationstringForm der Anrede, zum Beispiel förmlich oder informell.
birthdaystring (date-time)Geburtstag der Person.
known_allergiesstringBekannte Allergien der Person.
confirmed_no_allergiesbooleanErziehungsberechtigte(r) bestätigt, dass keine bekannten Allergien vorliegen.
allow_photosbooleanFotos der Person dürfen aufgenommen und veröffentlicht werden.
allow_leaving_alonebooleanDie Person darf die Veranstaltung allein verlassen.
authorized_pickupstringPersonen, die die Person abholen dürfen.
needs_supportbooleanDie Person benötigt Unterstützung, zum Beispiel zur Inklusion.
support_descriptionstringBeschreibung der Unterstützung, die die Person benötigt.
financial_supportbooleanDie Person erhält finanzielle Unterstützung.
financial_support_numberstringNummer der finanziellen Förderung.
municipal_supportbooleanDie Person erhält kommunale Unterstützung.
municipal_support_numberstringNummer der kommunalen Förderung.
grade_levelintegerSchuljahrgang der Person.
school_classstringSchulklasse der Person.
start_timestring (date-time)Beginn der Mitgliedschaft oder Aktivität.
start_time_reasonstringGrund für den Beginn.
end_timestring (date-time)Ende der Mitgliedschaft oder Aktivität.
end_time_reasonstringGrund für das Ende.
confirmed_gtc_timestring (date-time)Zeitpunkt, zu dem die AGB bestätigt wurden.
chatbot_opt_inbooleanEinwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das prüfbare Protokoll steht in ChatbotConsent.
chatbot_opt_in_atstring (date-time)Zeitpunkt, zu dem die Person dem Chatbot zugestimmt hat.
chatbot_opt_in_text_versionstringVersion des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.
app_usage_statistics_opt_outbooleanWiderspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezählten Aufrufe selbst haben keinen Bezug zur Person.
crm_person_contact_dataarray<CRMPersonContactData>Kontaktdaten der Person, zum Beispiel Telefon und E-Mail.
archivedbooleanOb die Person archiviert ist.
subscribed_newsletterbooleanOb die Person den Newsletter abonniert hat.
subscribed_magazinebooleanOb die Person das Magazin abonniert hat.
printed_member_cardbooleanOb für die Person ein Mitgliedsausweis gedruckt wurde.
has_login_userbooleanOb die Person einen Anmelde-Benutzer hat.
profile_picture_urlstringURL des Profilbilds der Person.
log_book_staffbooleanLogbuch-Kennzeichen: Personal.
log_book_staff1booleanLogbuch-Kennzeichen: Personal, Stufe 1.
log_book_staff2booleanLogbuch-Kennzeichen: Personal, Stufe 2.
log_book_memberbooleanLogbuch-Kennzeichen: Mitglied.
log_book_trainerbooleanLogbuch-Kennzeichen: Trainer.
log_book_trainer1booleanLogbuch-Kennzeichen: Trainer, Stufe 1.
log_book_trainer2booleanLogbuch-Kennzeichen: Trainer, Stufe 2.
log_book_head_of_departmentbooleanLogbuch-Kennzeichen: Abteilungsleitung.
log_book_supervisory_boardbooleanLogbuch-Kennzeichen: Aufsichtsrat.
log_book_board_of_directorsbooleanLogbuch-Kennzeichen: Vorstand.
log_book_honorary_memberbooleanLogbuch-Kennzeichen: Ehrenmitglied.
log_book_club_card_onebooleanLogbuch-Kennzeichen: Vereinskarte.
log_book_health_recoveredbooleanLogbuch-Kennzeichen: von Krankheit genesen.
log_book_health_vaccinatedbooleanLogbuch-Kennzeichen: geimpft.
log_book_health_vaccinated_additionstringDetails der Impfung.
log_book_good_conductbooleanLogbuch-Kennzeichen: Führungszeugnis.
log_book_first_aidbooleanLogbuch-Kennzeichen: Erste-Hilfe-Schulung.
log_book_measles_vaccinationbooleanLogbuch-Kennzeichen: Masernimpfung.
sync_lanistabooleanOb die Person mit Lanista synchronisiert ist.
categoryCRMPersonCategoryPersonenkategorie.
nicknamestringSpitzname der Person.
preferred_color_hexstringBevorzugte Farbe der Person als Hexwert.
avatar_tokenstringToken des Avatarbildes.
search_stringstringText, unter dem die Entität gesucht werden kann.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
- … 2 weitere Felder
employment_contract_groupEmploymentContractGroupPlanungscontainer - Pflichtangabe, auch wenn eine Person einer anderen Gruppe aushilft.
Felder anzeigen (25)
staged_absence_approvalbooleannull übernimmt die Organisation; false deaktiviert die gestufte Freigabe ausdrücklich.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Organisation, false schaltet es für diese Gruppe aus.
idintegerPrimärschlüssel der Vertragsgruppe. Interne ID.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Arbeitstage pro Woche.
year_vacation_daysnumber (float)Urlaubstage pro Jahr.
month_vacation_daysnumber (float)Urlaubstage pro Monat.
year_vacation_weeksnumber (float)Urlaubswochen pro Jahr.
monday_hoursnumber (float)Arbeitsstunden am Montag.
tuesday_hoursnumber (float)Arbeitsstunden am Dienstag.
wednesday_hoursnumber (float)Arbeitsstunden am Mittwoch.
thursday_hoursnumber (float)Arbeitsstunden am Donnerstag.
friday_hoursnumber (float)Arbeitsstunden am Freitag.
saturday_hoursnumber (float)Arbeitsstunden am Samstag.
sunday_hoursnumber (float)Arbeitsstunden am Sonntag.
netto_hour_costnumber (float)Nettokosten je Stunde.
brutto_hour_costnumber (float)Bruttokosten pro Stunde.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag dieser Gruppe vor seinem ersten Tag eingereicht werden muss. null greift auf die installationsweite Einstellung zurück – eine bestehende Gruppe verhält sich daher weiterhin genauso wie bisher.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender dieser Gruppe, wenn er vom Kalender der Organisation abweicht (Auszubildende, die in einem anderen Bundesland zur Schule gehen). null = der der Organisation.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
shift_typeShiftType4Ursprungstyp - Zeiten wurden kopiert, der Verweis dient nur der Information.
Felder anzeigen (17)
idintegerPrimärschlüssel des Schichttyps. Interne ID.
employment_contract_groupEmploymentContractGroupGruppe, zu der dieser Typ gehört (null = für die gesamte Organisation / Installation verfügbar).
employment_organizationEmploymentOrganization5Organisation, zu der der Schichttyp gehört.
short_namestringKurzcode für Raster und Druck („F“, „S“, „N“).
start_timestringStandardstartzeit als HH:MM.
end_timestringStandardendzeit als HH:MM - eine Endzeit vor der Startzeit bedeutet, dass die Schicht am folgenden Tag endet (Nachtschicht).
break_duration_secondsintegerPausendauer der Schicht in Sekunden.
colorstringFarbe des Schichttyps im Schichtplan als Hex-Code.
required_qualificationEmploymentQualification3Standard-Qualifikationsanforderung für Schichten dieses Typs.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
default_staff_countintegerStandardanzahl der benötigten Mitarbeitenden für die Schicht.
sort_orderintegerSortierreihenfolge des Diensttyps in Listen.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
startstring (date-time)Beginn des Dienstes.
endstring (date-time)Ende der Schicht.
start_datestringStartdatum des Dienstes als Text.
start_monthintegerMonat der Schicht.
start_yearintegerJahr der Schicht.
break_duration_secondsintegerPausendauer der Schicht in Sekunden.
durationintegerZielsekunden: (Ende - Start) - Pause, wird von recalculate() gepflegt.
required_qualificationEmploymentQualification3Für die Schicht erforderliche Qualifikation.
Felder anzeigen (7)
idintegerPrimärschlüssel der Beschäftigungsqualifikation. Interne ID.
rankingintegerRangfolge innerhalb eines Äquivalenznetzwerks - eine verknüpfte Qualifikation mit gleichem oder höherem Rang erfüllt auch Anforderungen an diese Qualifikation.
equivalent_qualificationsarray<EmploymentQualification3>Verknüpfte ("gleichwertige") Qualifikationen. Vom Controller symmetrisch gehalten: jede Verknüpfung A->B wird als B->A gespiegelt; der Rang entscheidet, welche Richtung tatsächlich welche abdeckt.
qualification_groupEmploymentQualificationGroupL17/A06: die "Schublade", zu der diese Qualifikation gehört. Mitglieder einer Gruppe decken sich gegenseitig die Anforderungen innerhalb ihres Rangs ab, wie es eine direkte Verknüpfung täte.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
statusstringStatus des Dienstes, zum Beispiel geplant oder veröffentlicht.
published_atstring (date-time)Zeitpunkt, zu dem die Schicht veröffentlicht wurde.
descriptionstringBeschreibung der Schicht.
has_warningbooleanGespeichertes Konfliktkennzeichen für Listen-Badges - die konkreten Warnungen werden bei Bedarf berechnet (ShiftPlanHelper) und nur vorübergehend zurückgegeben.
availability_bookingBaseBooking13L35: die Verfügbarkeit, für die die veröffentlichte Schicht im Buchungsbereich steht (wird vom ShiftBookingSyncHelper synchron gehalten, solange die Synchronisation für den Vertrag aktiviert ist).
Felder anzeigen (17)
idintegerPrimärschlüssel der Buchung. Interne ID.
start_timestring (date-time)Beginn der Buchung.
end_timestring (date-time)Ende der Buchung.
booking_typestringArt der Buchung, zum Beispiel normal oder Vertretung.
booking_statusstringStatus der Buchung, zum Beispiel geplant, erledigt oder storniert.
externalbooleanDie Buchung wurde von einer externen Stelle vorgenommen.
modified_timebooleanDer Zeitpunkt der Buchung wurde nach der Erstellung geändert.
modified_locationbooleanDer Standort der Buchung wurde nach der Erstellung geändert.
modified_bookablebooleanDer Buchungsgegenstand der Buchung wurde nach der Erstellung geändert.
modified_performing_personbooleanDer Leiter der Buchung wurde nach der Erstellung geändert.
searching_for_performing_personbooleanFür die Buchung wird noch eine Leitung gesucht.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
colorstringHintergrundfarbe als Hexwert.
fg_colorstringVordergrundfarbe als Hex-Wert.
bookingBaseBooking13L35: der aus dieser Schicht erstellte Termin, falls vorhanden.
Felder anzeigen (17)
idintegerPrimärschlüssel der Buchung. Interne ID.
start_timestring (date-time)Beginn der Buchung.
end_timestring (date-time)Ende der Buchung.
booking_typestringArt der Buchung, zum Beispiel normal oder Vertretung.
booking_statusstringStatus der Buchung, zum Beispiel geplant, erledigt oder storniert.
externalbooleanDie Buchung wurde von einer externen Stelle vorgenommen.
modified_timebooleanDer Zeitpunkt der Buchung wurde nach der Erstellung geändert.
modified_locationbooleanDer Standort der Buchung wurde nach der Erstellung geändert.
modified_bookablebooleanDer Buchungsgegenstand der Buchung wurde nach der Erstellung geändert.
modified_performing_personbooleanDer Leiter der Buchung wurde nach der Erstellung geändert.
searching_for_performing_personbooleanFür die Buchung wird noch eine Leitung gesucht.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
colorstringHintergrundfarbe als Hexwert.
fg_colorstringVordergrundfarbe als Hex-Wert.
lock_versionintegerOptimistische Sperre. Zwei Planer, die dieselbe Schicht bearbeiten, oder eine Wochenveröffentlichung, während jemand eine Schicht darin verschiebt, würden sonst stillschweigend einander überschreiben - der Unterlegene erhält jetzt einen 409. Nur lesend: Doctrine verwaltet den Wert, der Client sendet den zuletzt gesehenen Wert als Query-Parameter lock_version zurück.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/time/shift_plan_template/copy_week \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/time/shift_plan_template/copy_week', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/time/shift_plan_template/copy_week"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/time/shift_plan_template/copy_week', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/time/shift_plan_template/copy_week"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/time/shift_plan_template/copy_week")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/time/shift_plan_template/copy_week"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/shift_plan_template_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await ShiftPlanTemplateController.copyWeek(sourceWeekStart: '…', targetWeekStart: '…');
if (result.success) {
print(result.data);
}[
{
"id": 42,
"description": "Text",
"user": {
"id": 42,
"name": "Beispiel",
"username": "lena.hartmann@example.org",
"email": "lena.hartmann@example.org",
"profile_picture_url": "https://vynst.de",
"positioningeneral": "string",
"archived": true,
"require2fa": true,
"search_string": "string"
},
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"employment_contract_group": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"shift_booking_sync": true,
"week_total_hours": 1.5,
"week_total_days": 1.5,
"year_vacation_days": 1.5,
"month_vacation_days": 1.5,
"year_vacation_weeks": 1.5,
"monday_hours": 1.5
},
"shift_type": {
"id": 42,
"short_name": "Beispiel",
"color": "#3f5efb",
"name": "Beispiel",
"start_time": "string",
"end_time": "string",
"break_duration_seconds": 1,
"qualification_match_mode": "string",
"default_staff_count": 1,
"sort_order": 1
},
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00",
"start_date": "2026-10-15T09:30:00+02:00",
"start_month": 1
}
]Wendet eine Wochenvorlage auf eine Woche an – legt offene DRAFT-Schichten an und ändert bestehende Schichten nie
POST/api/time/shift_plan_template/{id}/apply
Pfad-Parameter
idPflichtstring |
Query-Parameter
idinteger | |
startDatestring | |
startMonthstring | |
startYearstring | |
employmentContractGroupstring | Planungscontainer - Pflichtangabe, auch wenn eine Person einer anderen Gruppe aushilft. | Benötigt Zugriffsrecht: SCOPE |
personstring | |
userstring | |
shiftTypestring | Ursprungstyp - Zeiten wurden kopiert, der Verweis dient nur der Information. |
statusstring | |
contractstring | |
searchStringstring | Text, nach dem in der Liste gesucht wird |
orderFieldNamestring | Name des Bestellfelds |
orderFieldSortstring | SortiermodusErlaubt: DESCASC |
pageinteger | Seite der Liste |
pageSizeinteger | Anzahl der Einträge je Seite |
withMaxPageNumberstring | gibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist |
Antworten
200Liefert die angelegten ShiftPlanEntry-Objektearray<ShiftPlanEntry>
Felder anzeigen (23)
idintegerPrimärschlüssel des Schichtplan-Eintrags. Interne ID.
userUser14Der Schicht zugewiesener Benutzer.
Felder anzeigen (10)
idintegerPrimärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.
namestringAnzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.
usernamestringAnmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.
emailstringE-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.
positioningeneralstringFreitext zur Position oder Rolle des Benutzers.
crm_personCRMPerson10CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.
profile_picture_urlstringURL des Profilbilds des Benutzers.
archivedbooleanMarkiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.
require2fabooleanFür diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.
search_stringstringText, unter dem die Entität gesucht werden kann.
personCRMPerson10Person, die der Schicht zugewiesen ist.
Felder anzeigen (81)
idintegerPrimärschlüssel der Person. Interne ID.
first_namestringVorname der Person.
last_namestringNachname der Person.
numberintegerMitglieds- oder Kundennummer der Person.
manual_numberintegerManuell gesetzte Nummer statt der automatischen Nummer.
number_stringstringMitglieds- oder Kundennummer als Text, einschließlich Präfix.
genderstringGeschlecht der Person.
titlestringAkademischer oder sonstiger Titel der Person.
positionstringPosition oder Rolle der Person.
languagestringBevorzugte Sprache der Person.
special_salutationstringBesonderer Anredetext für Briefe.
form_of_salutationstringForm der Anrede, zum Beispiel förmlich oder informell.
birthdaystring (date-time)Geburtstag der Person.
known_allergiesstringBekannte Allergien der Person.
confirmed_no_allergiesbooleanErziehungsberechtigte(r) bestätigt, dass keine bekannten Allergien vorliegen.
allow_photosbooleanFotos der Person dürfen aufgenommen und veröffentlicht werden.
allow_leaving_alonebooleanDie Person darf die Veranstaltung allein verlassen.
authorized_pickupstringPersonen, die die Person abholen dürfen.
needs_supportbooleanDie Person benötigt Unterstützung, zum Beispiel zur Inklusion.
support_descriptionstringBeschreibung der Unterstützung, die die Person benötigt.
financial_supportbooleanDie Person erhält finanzielle Unterstützung.
financial_support_numberstringNummer der finanziellen Förderung.
municipal_supportbooleanDie Person erhält kommunale Unterstützung.
municipal_support_numberstringNummer der kommunalen Förderung.
grade_levelintegerSchuljahrgang der Person.
school_classstringSchulklasse der Person.
start_timestring (date-time)Beginn der Mitgliedschaft oder Aktivität.
start_time_reasonstringGrund für den Beginn.
end_timestring (date-time)Ende der Mitgliedschaft oder Aktivität.
end_time_reasonstringGrund für das Ende.
confirmed_gtc_timestring (date-time)Zeitpunkt, zu dem die AGB bestätigt wurden.
chatbot_opt_inbooleanEinwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das prüfbare Protokoll steht in ChatbotConsent.
chatbot_opt_in_atstring (date-time)Zeitpunkt, zu dem die Person dem Chatbot zugestimmt hat.
chatbot_opt_in_text_versionstringVersion des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.
app_usage_statistics_opt_outbooleanWiderspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezählten Aufrufe selbst haben keinen Bezug zur Person.
crm_person_contact_dataarray<CRMPersonContactData>Kontaktdaten der Person, zum Beispiel Telefon und E-Mail.
archivedbooleanOb die Person archiviert ist.
subscribed_newsletterbooleanOb die Person den Newsletter abonniert hat.
subscribed_magazinebooleanOb die Person das Magazin abonniert hat.
printed_member_cardbooleanOb für die Person ein Mitgliedsausweis gedruckt wurde.
has_login_userbooleanOb die Person einen Anmelde-Benutzer hat.
profile_picture_urlstringURL des Profilbilds der Person.
log_book_staffbooleanLogbuch-Kennzeichen: Personal.
log_book_staff1booleanLogbuch-Kennzeichen: Personal, Stufe 1.
log_book_staff2booleanLogbuch-Kennzeichen: Personal, Stufe 2.
log_book_memberbooleanLogbuch-Kennzeichen: Mitglied.
log_book_trainerbooleanLogbuch-Kennzeichen: Trainer.
log_book_trainer1booleanLogbuch-Kennzeichen: Trainer, Stufe 1.
log_book_trainer2booleanLogbuch-Kennzeichen: Trainer, Stufe 2.
log_book_head_of_departmentbooleanLogbuch-Kennzeichen: Abteilungsleitung.
log_book_supervisory_boardbooleanLogbuch-Kennzeichen: Aufsichtsrat.
log_book_board_of_directorsbooleanLogbuch-Kennzeichen: Vorstand.
log_book_honorary_memberbooleanLogbuch-Kennzeichen: Ehrenmitglied.
log_book_club_card_onebooleanLogbuch-Kennzeichen: Vereinskarte.
log_book_health_recoveredbooleanLogbuch-Kennzeichen: von Krankheit genesen.
log_book_health_vaccinatedbooleanLogbuch-Kennzeichen: geimpft.
log_book_health_vaccinated_additionstringDetails der Impfung.
log_book_good_conductbooleanLogbuch-Kennzeichen: Führungszeugnis.
log_book_first_aidbooleanLogbuch-Kennzeichen: Erste-Hilfe-Schulung.
log_book_measles_vaccinationbooleanLogbuch-Kennzeichen: Masernimpfung.
sync_lanistabooleanOb die Person mit Lanista synchronisiert ist.
categoryCRMPersonCategoryPersonenkategorie.
nicknamestringSpitzname der Person.
preferred_color_hexstringBevorzugte Farbe der Person als Hexwert.
avatar_tokenstringToken des Avatarbildes.
search_stringstringText, unter dem die Entität gesucht werden kann.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
- … 2 weitere Felder
employment_contract_groupEmploymentContractGroupPlanungscontainer - Pflichtangabe, auch wenn eine Person einer anderen Gruppe aushilft.
Felder anzeigen (25)
staged_absence_approvalbooleannull übernimmt die Organisation; false deaktiviert die gestufte Freigabe ausdrücklich.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Organisation, false schaltet es für diese Gruppe aus.
idintegerPrimärschlüssel der Vertragsgruppe. Interne ID.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Arbeitstage pro Woche.
year_vacation_daysnumber (float)Urlaubstage pro Jahr.
month_vacation_daysnumber (float)Urlaubstage pro Monat.
year_vacation_weeksnumber (float)Urlaubswochen pro Jahr.
monday_hoursnumber (float)Arbeitsstunden am Montag.
tuesday_hoursnumber (float)Arbeitsstunden am Dienstag.
wednesday_hoursnumber (float)Arbeitsstunden am Mittwoch.
thursday_hoursnumber (float)Arbeitsstunden am Donnerstag.
friday_hoursnumber (float)Arbeitsstunden am Freitag.
saturday_hoursnumber (float)Arbeitsstunden am Samstag.
sunday_hoursnumber (float)Arbeitsstunden am Sonntag.
netto_hour_costnumber (float)Nettokosten je Stunde.
brutto_hour_costnumber (float)Bruttokosten pro Stunde.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag dieser Gruppe vor seinem ersten Tag eingereicht werden muss. null greift auf die installationsweite Einstellung zurück – eine bestehende Gruppe verhält sich daher weiterhin genauso wie bisher.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender dieser Gruppe, wenn er vom Kalender der Organisation abweicht (Auszubildende, die in einem anderen Bundesland zur Schule gehen). null = der der Organisation.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
shift_typeShiftType4Ursprungstyp - Zeiten wurden kopiert, der Verweis dient nur der Information.
Felder anzeigen (17)
idintegerPrimärschlüssel des Schichttyps. Interne ID.
employment_contract_groupEmploymentContractGroupGruppe, zu der dieser Typ gehört (null = für die gesamte Organisation / Installation verfügbar).
employment_organizationEmploymentOrganization5Organisation, zu der der Schichttyp gehört.
short_namestringKurzcode für Raster und Druck („F“, „S“, „N“).
start_timestringStandardstartzeit als HH:MM.
end_timestringStandardendzeit als HH:MM - eine Endzeit vor der Startzeit bedeutet, dass die Schicht am folgenden Tag endet (Nachtschicht).
break_duration_secondsintegerPausendauer der Schicht in Sekunden.
colorstringFarbe des Schichttyps im Schichtplan als Hex-Code.
required_qualificationEmploymentQualification3Standard-Qualifikationsanforderung für Schichten dieses Typs.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
default_staff_countintegerStandardanzahl der benötigten Mitarbeitenden für die Schicht.
sort_orderintegerSortierreihenfolge des Diensttyps in Listen.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
startstring (date-time)Beginn des Dienstes.
endstring (date-time)Ende der Schicht.
start_datestringStartdatum des Dienstes als Text.
start_monthintegerMonat der Schicht.
start_yearintegerJahr der Schicht.
break_duration_secondsintegerPausendauer der Schicht in Sekunden.
durationintegerZielsekunden: (Ende - Start) - Pause, wird von recalculate() gepflegt.
required_qualificationEmploymentQualification3Für die Schicht erforderliche Qualifikation.
Felder anzeigen (7)
idintegerPrimärschlüssel der Beschäftigungsqualifikation. Interne ID.
rankingintegerRangfolge innerhalb eines Äquivalenznetzwerks - eine verknüpfte Qualifikation mit gleichem oder höherem Rang erfüllt auch Anforderungen an diese Qualifikation.
equivalent_qualificationsarray<EmploymentQualification3>Verknüpfte ("gleichwertige") Qualifikationen. Vom Controller symmetrisch gehalten: jede Verknüpfung A->B wird als B->A gespiegelt; der Rang entscheidet, welche Richtung tatsächlich welche abdeckt.
qualification_groupEmploymentQualificationGroupL17/A06: die "Schublade", zu der diese Qualifikation gehört. Mitglieder einer Gruppe decken sich gegenseitig die Anforderungen innerhalb ihres Rangs ab, wie es eine direkte Verknüpfung täte.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
statusstringStatus des Dienstes, zum Beispiel geplant oder veröffentlicht.
published_atstring (date-time)Zeitpunkt, zu dem die Schicht veröffentlicht wurde.
descriptionstringBeschreibung der Schicht.
has_warningbooleanGespeichertes Konfliktkennzeichen für Listen-Badges - die konkreten Warnungen werden bei Bedarf berechnet (ShiftPlanHelper) und nur vorübergehend zurückgegeben.
availability_bookingBaseBooking13L35: die Verfügbarkeit, für die die veröffentlichte Schicht im Buchungsbereich steht (wird vom ShiftBookingSyncHelper synchron gehalten, solange die Synchronisation für den Vertrag aktiviert ist).
Felder anzeigen (17)
idintegerPrimärschlüssel der Buchung. Interne ID.
start_timestring (date-time)Beginn der Buchung.
end_timestring (date-time)Ende der Buchung.
booking_typestringArt der Buchung, zum Beispiel normal oder Vertretung.
booking_statusstringStatus der Buchung, zum Beispiel geplant, erledigt oder storniert.
externalbooleanDie Buchung wurde von einer externen Stelle vorgenommen.
modified_timebooleanDer Zeitpunkt der Buchung wurde nach der Erstellung geändert.
modified_locationbooleanDer Standort der Buchung wurde nach der Erstellung geändert.
modified_bookablebooleanDer Buchungsgegenstand der Buchung wurde nach der Erstellung geändert.
modified_performing_personbooleanDer Leiter der Buchung wurde nach der Erstellung geändert.
searching_for_performing_personbooleanFür die Buchung wird noch eine Leitung gesucht.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
colorstringHintergrundfarbe als Hexwert.
fg_colorstringVordergrundfarbe als Hex-Wert.
bookingBaseBooking13L35: der aus dieser Schicht erstellte Termin, falls vorhanden.
Felder anzeigen (17)
idintegerPrimärschlüssel der Buchung. Interne ID.
start_timestring (date-time)Beginn der Buchung.
end_timestring (date-time)Ende der Buchung.
booking_typestringArt der Buchung, zum Beispiel normal oder Vertretung.
booking_statusstringStatus der Buchung, zum Beispiel geplant, erledigt oder storniert.
externalbooleanDie Buchung wurde von einer externen Stelle vorgenommen.
modified_timebooleanDer Zeitpunkt der Buchung wurde nach der Erstellung geändert.
modified_locationbooleanDer Standort der Buchung wurde nach der Erstellung geändert.
modified_bookablebooleanDer Buchungsgegenstand der Buchung wurde nach der Erstellung geändert.
modified_performing_personbooleanDer Leiter der Buchung wurde nach der Erstellung geändert.
searching_for_performing_personbooleanFür die Buchung wird noch eine Leitung gesucht.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
colorstringHintergrundfarbe als Hexwert.
fg_colorstringVordergrundfarbe als Hex-Wert.
lock_versionintegerOptimistische Sperre. Zwei Planer, die dieselbe Schicht bearbeiten, oder eine Wochenveröffentlichung, während jemand eine Schicht darin verschiebt, würden sonst stillschweigend einander überschreiben - der Unterlegene erhält jetzt einen 409. Nur lesend: Doctrine verwaltet den Wert, der Client sendet den zuletzt gesehenen Wert als Query-Parameter lock_version zurück.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42/apply \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42/apply', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42/apply"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42/apply', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42/apply"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42/apply")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42/apply"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/shift_plan_template_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await ShiftPlanTemplateController.applyToWeek(42, weekStart: '…');
if (result.success) {
print(result.data);
}[
{
"id": 42,
"description": "Text",
"user": {
"id": 42,
"name": "Beispiel",
"username": "lena.hartmann@example.org",
"email": "lena.hartmann@example.org",
"profile_picture_url": "https://vynst.de",
"positioningeneral": "string",
"archived": true,
"require2fa": true,
"search_string": "string"
},
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"employment_contract_group": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"shift_booking_sync": true,
"week_total_hours": 1.5,
"week_total_days": 1.5,
"year_vacation_days": 1.5,
"month_vacation_days": 1.5,
"year_vacation_weeks": 1.5,
"monday_hours": 1.5
},
"shift_type": {
"id": 42,
"short_name": "Beispiel",
"color": "#3f5efb",
"name": "Beispiel",
"start_time": "string",
"end_time": "string",
"break_duration_seconds": 1,
"qualification_match_mode": "string",
"default_staff_count": 1,
"sort_order": 1
},
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00",
"start_date": "2026-10-15T09:30:00+02:00",
"start_month": 1
}
]Diese Methode liefert alle ShiftPlanTemplate-Objekte
GET/api/time/shift_plan_template
Query-Parameter
idinteger | |
deletedboolean | Diese Eigenschaft markiert eine Entität als gelöscht / archiviert | Benötigtes Zugriffsrecht: SCOPE | Standardwert: false |
namestring | |
employmentContractGroupstring | |
searchStringstring | Text, nach dem in der Liste gesucht wird |
orderFieldNamestring | Name des Bestellfelds |
orderFieldSortstring | SortiermodusErlaubt: DESCASC |
pageinteger | Seite der Liste |
pageSizeinteger | Anzahl der Einträge je Seite |
withMaxPageNumberstring | gibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist |
Antworten
200Liefert eine Liste der ShiftPlanTemplate-Objekte.array<ShiftPlanTemplate>
Felder anzeigen (7)
idintegerPrimärschlüssel der Schichtplanvorlage. Interne ID.
employment_contract_groupEmploymentContractGroupVertragsgruppe, für die die Vorlage bestimmt ist.
Felder anzeigen (25)
staged_absence_approvalbooleannull übernimmt die Organisation; false deaktiviert die gestufte Freigabe ausdrücklich.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Organisation, false schaltet es für diese Gruppe aus.
idintegerPrimärschlüssel der Vertragsgruppe. Interne ID.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Arbeitstage pro Woche.
year_vacation_daysnumber (float)Urlaubstage pro Jahr.
month_vacation_daysnumber (float)Urlaubstage pro Monat.
year_vacation_weeksnumber (float)Urlaubswochen pro Jahr.
monday_hoursnumber (float)Arbeitsstunden am Montag.
tuesday_hoursnumber (float)Arbeitsstunden am Dienstag.
wednesday_hoursnumber (float)Arbeitsstunden am Mittwoch.
thursday_hoursnumber (float)Arbeitsstunden am Donnerstag.
friday_hoursnumber (float)Arbeitsstunden am Freitag.
saturday_hoursnumber (float)Arbeitsstunden am Samstag.
sunday_hoursnumber (float)Arbeitsstunden am Sonntag.
netto_hour_costnumber (float)Nettokosten je Stunde.
brutto_hour_costnumber (float)Bruttokosten pro Stunde.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag dieser Gruppe vor seinem ersten Tag eingereicht werden muss. null greift auf die installationsweite Einstellung zurück – eine bestehende Gruppe verhält sich daher weiterhin genauso wie bisher.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender dieser Gruppe, wenn er vom Kalender der Organisation abweicht (Auszubildende, die in einem anderen Bundesland zur Schule gehen). null = der der Organisation.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/time/shift_plan_template \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/time/shift_plan_template', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/time/shift_plan_template"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://eure-instanz.iw-erp.de/api/time/shift_plan_template', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/time/shift_plan_template"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/time/shift_plan_template")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/time/shift_plan_template"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/shift_plan_template_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await ShiftPlanTemplateController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"employment_contract_group": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"shift_booking_sync": true,
"week_total_hours": 1.5,
"week_total_days": 1.5,
"year_vacation_days": 1.5,
"month_vacation_days": 1.5,
"year_vacation_weeks": 1.5,
"monday_hours": 1.5
},
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}
]ShiftPlanTemplate neu anlegen
POST/api/time/shift_plan_template
Request-Body application/json
dataShiftPlanTemplate2Felder anzeigen (2)
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
Antworten
200ShiftPlanTemplate neu anlegenShiftPlanTemplate3
Felder anzeigen (8)
idintegerPrimärschlüssel der Schichtplanvorlage. Interne ID.
employment_contract_groupEmploymentContractGroupVertragsgruppe, für die die Vorlage bestimmt ist.
Felder anzeigen (25)
staged_absence_approvalbooleannull übernimmt die Organisation; false deaktiviert die gestufte Freigabe ausdrücklich.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Organisation, false schaltet es für diese Gruppe aus.
idintegerPrimärschlüssel der Vertragsgruppe. Interne ID.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Arbeitstage pro Woche.
year_vacation_daysnumber (float)Urlaubstage pro Jahr.
month_vacation_daysnumber (float)Urlaubstage pro Monat.
year_vacation_weeksnumber (float)Urlaubswochen pro Jahr.
monday_hoursnumber (float)Arbeitsstunden am Montag.
tuesday_hoursnumber (float)Arbeitsstunden am Dienstag.
wednesday_hoursnumber (float)Arbeitsstunden am Mittwoch.
thursday_hoursnumber (float)Arbeitsstunden am Donnerstag.
friday_hoursnumber (float)Arbeitsstunden am Freitag.
saturday_hoursnumber (float)Arbeitsstunden am Samstag.
sunday_hoursnumber (float)Arbeitsstunden am Sonntag.
netto_hour_costnumber (float)Nettokosten je Stunde.
brutto_hour_costnumber (float)Bruttokosten pro Stunde.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag dieser Gruppe vor seinem ersten Tag eingereicht werden muss. null greift auf die installationsweite Einstellung zurück – eine bestehende Gruppe verhält sich daher weiterhin genauso wie bisher.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender dieser Gruppe, wenn er vom Kalender der Organisation abweicht (Auszubildende, die in einem anderen Bundesland zur Schule gehen). null = der der Organisation.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
entriesarray<ShiftPlanTemplateEntry>Einträge der Vorlage.
Felder anzeigen (9)
idintegerPrimärschlüssel des Schichtplanvorlagen-Eintrags. Interne ID.
iso_weekdayintegerISO-Wochentag, 1 = Montag ... 7 = Sonntag.
shift_typeShiftType3Diensttyp des Eintrags.
start_timestringStartzeit des Dienstes in HH:MM.
end_timestringEndzeit der Schicht als HH:MM.
break_duration_secondsintegerPausendauer der Schicht in Sekunden.
staff_countintegerAnzahl der für die Schicht benötigten Mitarbeitenden.
required_qualificationEmploymentQualificationFür die Schicht erforderliche Qualifikation.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/time/shift_plan_template \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"name": "Beispiel",
"deleted": true
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({data: {name: 'Beispiel', deleted: true}})
};
fetch('https://eure-instanz.iw-erp.de/api/time/shift_plan_template', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/time/shift_plan_template"
payload = { "data": {
"name": "Beispiel",
"deleted": True
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/time/shift_plan_template', [
'body' => '{"data":{"name":"Beispiel","deleted":true}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/time/shift_plan_template"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"name\":\"Beispiel\",\"deleted\":true}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"name\":\"Beispiel\",\"deleted\":true}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/time/shift_plan_template")
.post(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/time/shift_plan_template"
payload := strings.NewReader("{\"data\":{\"name\":\"Beispiel\",\"deleted\":true}}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/shift_plan_template_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/shift_plan_template.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await ShiftPlanTemplateController.post(ShiftPlanTemplate.fromJson({
"name": "Beispiel",
"deleted": true
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"employment_contract_group": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"shift_booking_sync": true,
"week_total_hours": 1.5,
"week_total_days": 1.5,
"year_vacation_days": 1.5,
"month_vacation_days": 1.5,
"year_vacation_weeks": 1.5,
"monday_hours": 1.5
},
"entries": [
{
"id": 42,
"iso_weekday": 1,
"start_time": "string",
"end_time": "string",
"break_duration_seconds": 1,
"staff_count": 1,
"qualification_match_mode": "string"
}
],
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}Diese Methode liefert eine einzelne ShiftPlanTemplate mit der angegebenen ID
GET/api/time/shift_plan_template/{id}
Pfad-Parameter
idPflichtstring |
Antworten
200Liefert ein einzelnes ShiftPlanTemplate-Objekt.ShiftPlanTemplate3
Felder anzeigen (8)
idintegerPrimärschlüssel der Schichtplanvorlage. Interne ID.
employment_contract_groupEmploymentContractGroupVertragsgruppe, für die die Vorlage bestimmt ist.
Felder anzeigen (25)
staged_absence_approvalbooleannull übernimmt die Organisation; false deaktiviert die gestufte Freigabe ausdrücklich.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Organisation, false schaltet es für diese Gruppe aus.
idintegerPrimärschlüssel der Vertragsgruppe. Interne ID.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Arbeitstage pro Woche.
year_vacation_daysnumber (float)Urlaubstage pro Jahr.
month_vacation_daysnumber (float)Urlaubstage pro Monat.
year_vacation_weeksnumber (float)Urlaubswochen pro Jahr.
monday_hoursnumber (float)Arbeitsstunden am Montag.
tuesday_hoursnumber (float)Arbeitsstunden am Dienstag.
wednesday_hoursnumber (float)Arbeitsstunden am Mittwoch.
thursday_hoursnumber (float)Arbeitsstunden am Donnerstag.
friday_hoursnumber (float)Arbeitsstunden am Freitag.
saturday_hoursnumber (float)Arbeitsstunden am Samstag.
sunday_hoursnumber (float)Arbeitsstunden am Sonntag.
netto_hour_costnumber (float)Nettokosten je Stunde.
brutto_hour_costnumber (float)Bruttokosten pro Stunde.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag dieser Gruppe vor seinem ersten Tag eingereicht werden muss. null greift auf die installationsweite Einstellung zurück – eine bestehende Gruppe verhält sich daher weiterhin genauso wie bisher.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender dieser Gruppe, wenn er vom Kalender der Organisation abweicht (Auszubildende, die in einem anderen Bundesland zur Schule gehen). null = der der Organisation.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
entriesarray<ShiftPlanTemplateEntry>Einträge der Vorlage.
Felder anzeigen (9)
idintegerPrimärschlüssel des Schichtplanvorlagen-Eintrags. Interne ID.
iso_weekdayintegerISO-Wochentag, 1 = Montag ... 7 = Sonntag.
shift_typeShiftType3Diensttyp des Eintrags.
start_timestringStartzeit des Dienstes in HH:MM.
end_timestringEndzeit der Schicht als HH:MM.
break_duration_secondsintegerPausendauer der Schicht in Sekunden.
staff_countintegerAnzahl der für die Schicht benötigten Mitarbeitenden.
required_qualificationEmploymentQualificationFür die Schicht erforderliche Qualifikation.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/shift_plan_template_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await ShiftPlanTemplateController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"employment_contract_group": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"shift_booking_sync": true,
"week_total_hours": 1.5,
"week_total_days": 1.5,
"year_vacation_days": 1.5,
"month_vacation_days": 1.5,
"year_vacation_weeks": 1.5,
"monday_hours": 1.5
},
"entries": [
{
"id": 42,
"iso_weekday": 1,
"start_time": "string",
"end_time": "string",
"break_duration_seconds": 1,
"staff_count": 1,
"qualification_match_mode": "string"
}
],
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}ShiftPlanTemplate aktualisieren
PUT/api/time/shift_plan_template/{id}
Pfad-Parameter
idPflichtstring |
Request-Body application/json
dataShiftPlanTemplate2Felder anzeigen (2)
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
Antworten
200ShiftPlanTemplate aktualisierenShiftPlanTemplate3
Felder anzeigen (8)
idintegerPrimärschlüssel der Schichtplanvorlage. Interne ID.
employment_contract_groupEmploymentContractGroupVertragsgruppe, für die die Vorlage bestimmt ist.
Felder anzeigen (25)
staged_absence_approvalbooleannull übernimmt die Organisation; false deaktiviert die gestufte Freigabe ausdrücklich.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Organisation, false schaltet es für diese Gruppe aus.
idintegerPrimärschlüssel der Vertragsgruppe. Interne ID.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Arbeitstage pro Woche.
year_vacation_daysnumber (float)Urlaubstage pro Jahr.
month_vacation_daysnumber (float)Urlaubstage pro Monat.
year_vacation_weeksnumber (float)Urlaubswochen pro Jahr.
monday_hoursnumber (float)Arbeitsstunden am Montag.
tuesday_hoursnumber (float)Arbeitsstunden am Dienstag.
wednesday_hoursnumber (float)Arbeitsstunden am Mittwoch.
thursday_hoursnumber (float)Arbeitsstunden am Donnerstag.
friday_hoursnumber (float)Arbeitsstunden am Freitag.
saturday_hoursnumber (float)Arbeitsstunden am Samstag.
sunday_hoursnumber (float)Arbeitsstunden am Sonntag.
netto_hour_costnumber (float)Nettokosten je Stunde.
brutto_hour_costnumber (float)Bruttokosten pro Stunde.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag dieser Gruppe vor seinem ersten Tag eingereicht werden muss. null greift auf die installationsweite Einstellung zurück – eine bestehende Gruppe verhält sich daher weiterhin genauso wie bisher.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender dieser Gruppe, wenn er vom Kalender der Organisation abweicht (Auszubildende, die in einem anderen Bundesland zur Schule gehen). null = der der Organisation.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
entriesarray<ShiftPlanTemplateEntry>Einträge der Vorlage.
Felder anzeigen (9)
idintegerPrimärschlüssel des Schichtplanvorlagen-Eintrags. Interne ID.
iso_weekdayintegerISO-Wochentag, 1 = Montag ... 7 = Sonntag.
shift_typeShiftType3Diensttyp des Eintrags.
start_timestringStartzeit des Dienstes in HH:MM.
end_timestringEndzeit der Schicht als HH:MM.
break_duration_secondsintegerPausendauer der Schicht in Sekunden.
staff_countintegerAnzahl der für die Schicht benötigten Mitarbeitenden.
required_qualificationEmploymentQualificationFür die Schicht erforderliche Qualifikation.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request PUT \
--url https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"name": "Beispiel",
"deleted": true
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({data: {name: 'Beispiel', deleted: true}})
};
fetch('https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42"
payload = { "data": {
"name": "Beispiel",
"deleted": True
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42', [
'body' => '{"data":{"name":"Beispiel","deleted":true}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"name\":\"Beispiel\",\"deleted\":true}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"name\":\"Beispiel\",\"deleted\":true}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42")
.put(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42"
payload := strings.NewReader("{\"data\":{\"name\":\"Beispiel\",\"deleted\":true}}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/shift_plan_template_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/shift_plan_template.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await ShiftPlanTemplateController.put(ShiftPlanTemplate.fromJson({
"name": "Beispiel",
"deleted": true
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"employment_contract_group": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"shift_booking_sync": true,
"week_total_hours": 1.5,
"week_total_days": 1.5,
"year_vacation_days": 1.5,
"month_vacation_days": 1.5,
"year_vacation_weeks": 1.5,
"monday_hours": 1.5
},
"entries": [
{
"id": 42,
"iso_weekday": 1,
"start_time": "string",
"end_time": "string",
"break_duration_seconds": 1,
"staff_count": 1,
"qualification_match_mode": "string"
}
],
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}ShiftPlanTemplate aktualisieren
PATCH/api/time/shift_plan_template/{id}
Pfad-Parameter
idPflichtstring |
Request-Body application/json
dataShiftPlanTemplate2Felder anzeigen (2)
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
Antworten
200ShiftPlanTemplate aktualisierenShiftPlanTemplate3
Felder anzeigen (8)
idintegerPrimärschlüssel der Schichtplanvorlage. Interne ID.
employment_contract_groupEmploymentContractGroupVertragsgruppe, für die die Vorlage bestimmt ist.
Felder anzeigen (25)
staged_absence_approvalbooleannull übernimmt die Organisation; false deaktiviert die gestufte Freigabe ausdrücklich.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Organisation, false schaltet es für diese Gruppe aus.
idintegerPrimärschlüssel der Vertragsgruppe. Interne ID.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Arbeitstage pro Woche.
year_vacation_daysnumber (float)Urlaubstage pro Jahr.
month_vacation_daysnumber (float)Urlaubstage pro Monat.
year_vacation_weeksnumber (float)Urlaubswochen pro Jahr.
monday_hoursnumber (float)Arbeitsstunden am Montag.
tuesday_hoursnumber (float)Arbeitsstunden am Dienstag.
wednesday_hoursnumber (float)Arbeitsstunden am Mittwoch.
thursday_hoursnumber (float)Arbeitsstunden am Donnerstag.
friday_hoursnumber (float)Arbeitsstunden am Freitag.
saturday_hoursnumber (float)Arbeitsstunden am Samstag.
sunday_hoursnumber (float)Arbeitsstunden am Sonntag.
netto_hour_costnumber (float)Nettokosten je Stunde.
brutto_hour_costnumber (float)Bruttokosten pro Stunde.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag dieser Gruppe vor seinem ersten Tag eingereicht werden muss. null greift auf die installationsweite Einstellung zurück – eine bestehende Gruppe verhält sich daher weiterhin genauso wie bisher.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender dieser Gruppe, wenn er vom Kalender der Organisation abweicht (Auszubildende, die in einem anderen Bundesland zur Schule gehen). null = der der Organisation.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
entriesarray<ShiftPlanTemplateEntry>Einträge der Vorlage.
Felder anzeigen (9)
idintegerPrimärschlüssel des Schichtplanvorlagen-Eintrags. Interne ID.
iso_weekdayintegerISO-Wochentag, 1 = Montag ... 7 = Sonntag.
shift_typeShiftType3Diensttyp des Eintrags.
start_timestringStartzeit des Dienstes in HH:MM.
end_timestringEndzeit der Schicht als HH:MM.
break_duration_secondsintegerPausendauer der Schicht in Sekunden.
staff_countintegerAnzahl der für die Schicht benötigten Mitarbeitenden.
required_qualificationEmploymentQualificationFür die Schicht erforderliche Qualifikation.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request PATCH \
--url https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"name": "Beispiel",
"deleted": true
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({data: {name: 'Beispiel', deleted: true}})
};
fetch('https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42"
payload = { "data": {
"name": "Beispiel",
"deleted": True
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PATCH', 'https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42', [
'body' => '{"data":{"name":"Beispiel","deleted":true}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Patch,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"name\":\"Beispiel\",\"deleted\":true}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"name\":\"Beispiel\",\"deleted\":true}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42")
.patch(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42"
payload := strings.NewReader("{\"data\":{\"name\":\"Beispiel\",\"deleted\":true}}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit package:http (kein Controller im Package iw_erp_api)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://eure-instanz.iw-erp.de/api/time/shift_plan_template/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"name": "Beispiel",
"deleted": true
}
}),
);
print(response.body);{
"id": 42,
"name": "Beispiel",
"employment_contract_group": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"shift_booking_sync": true,
"week_total_hours": 1.5,
"week_total_days": 1.5,
"year_vacation_days": 1.5,
"month_vacation_days": 1.5,
"year_vacation_weeks": 1.5,
"monday_hours": 1.5
},
"entries": [
{
"id": 42,
"iso_weekday": 1,
"start_time": "string",
"end_time": "string",
"break_duration_seconds": 1,
"staff_count": 1,
"qualification_match_mode": "string"
}
],
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}