BookingContentType
Returns a list of booking content type entries.
GET/api/event/booking_content_type
Query parameters
idinteger | |
deletedboolean | This property is used to mark an entity as deleted / archived |
namestring | |
shortNamestring | Kurzname for compact UI labels (e.g. calendars, badges). |
appointmentboolean | |
availabilityboolean | |
colorstring | |
selfServiceSelectableboolean | Whether this content type may be picked by a customer / trainer in the self service portal. Off by default so existing installations keep the current behaviour. |
trainerAvailabilityModestring | Controls whether a self service booking of this content type also picks the availability of a trainer: NONE (default), OPTIONAL or REQUIRED. |
createdstring | |
searchStringstring | text to search for in the list |
orderFieldNamestring | name of the order field |
orderFieldSortstring | sorting modeAllowed: DESCASC |
pageinteger | page of the list |
pageSizeinteger | number of entries for each page |
withMaxPageNumberstring | returns the number of pages available as a header if this is set |
Responses
200Returns a list of BookingContentType objectsarray<BookingContentType>
Show fields (22)
idintegerPrimary key of the content type. Internal ID.
short_namestringKurzname for compact UI labels (e.g. calendars, badges).
provide_tagsstringTags the content type provides, for example qualifications taught.
require_tagsstringTags a trainer or resource needs to have for this content type.
required_qualificationEmploymentQualification6R05/L18: the qualification a performing person of appointments of this type should hold (Übungsleiter of a course, Pausenaufsicht, ...). Checked with the same group/ ranking rules as shifts; employee and linked trainer qualifications both count.
Show fields (7)
idintegerPrimary key of the employment qualification. Internal ID.
rankingintegerRanking within an equivalence network - a linked qualification with a higher or equal ranking also satisfies requirements for this qualification.
equivalent_qualificationsarray<EmploymentQualification6>Linked ("equivalent") qualifications. Kept symmetric by the controller: every link A->B is mirrored as B->A, the ranking decides which direction actually covers which.
qualification_groupEmploymentQualificationGroupL17/A06: the "drawer" this qualification belongs to. Members of one group cover each other's requirements within their ranking, like a direct link would.
search_stringstringText that the entity can be searched by.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
qualification_match_modestringHow the required tags are matched against the qualifications.
availabilitybooleanBookings of this content type mark the resource as available.
appointmentbooleanBookings of this content type are appointments.
colorBookingPredefinedColorPredefined color used for bookings of this content type.
Show fields (13)
idintegerPrimary key of the color. Internal ID.
colorstringColor value, for example a hex code.
default_for_availabilitybooleanDefault color for availability bookings.
default_for_appointmentbooleanDefault color for appointments.
default_for_blockingbooleanDefault color for blocking bookings.
availabilitybooleanThe color can be used for availability bookings.
appointmentbooleanThe color can be used for appointments.
blockingbooleanThe color can be used for blocking bookings.
search_stringstringText that the entity can be searched by.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
require_single_participantbooleanBookings of this content type need exactly one participant.
require_participant_contactbooleanParticipants of this content type must have contact details.
require_participant_addressbooleanParticipants of this content type must have an address.
require_participant_birthdaybooleanParticipants of this content type must have a birthday.
default_time_in_minutesintegerDefault length of a booking of this content type in minutes.
self_service_selectablebooleanWhether this content type may be picked by a customer / trainer in the self service portal. Off by default so existing installations keep the current behaviour.
trainer_availability_modestringControls whether a self service booking of this content type also picks the availability of a trainer: NONE (default), OPTIONAL or REQUIRED.
self_service_bookable_typesarray<BaseBookableBookableType>Restricts the bookable types this content type is offered for in the self service booking. An empty collection means "every bookable type".
Show fields (11)
idstringIdentifier of the bookable type. For example room or vehicle.
short_namestringKurzname for compact UI labels (e.g. calendars, badges).
namestringName of the bookable type.
view_orderintegerSort order of the bookable type in lists.
menu_namestringName of the menu entry for the bookable type.
menu_iconstringIcon of the menu entry for the bookable type.
show_admin_menubooleanShow the bookable type in the admin menu.
show_admin_calendarbooleanShow the bookable type in the admin calendar.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
search_stringstringText that the entity can be searched by.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request GET \
--url https://your-instance.iw-erp.de/api/event/booking_content_type \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/event/booking_content_type', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/event/booking_content_type"
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://your-instance.iw-erp.de/api/event/booking_content_type', [
'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://your-instance.iw-erp.de/api/event/booking_content_type"),
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://your-instance.iw-erp.de/api/event/booking_content_type")
.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://your-instance.iw-erp.de/api/event/booking_content_type"
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 with the iw_erp_api package
import 'package:iw_erp_api/clients/event_base_booking_content_type_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await EventBaseBookingContentTypeController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"short_name": "Beispiel",
"color": {
"id": 42,
"color": "#3f5efb",
"name": "Beispiel",
"default_for_availability": true,
"default_for_appointment": true,
"default_for_blocking": true,
"availability": true,
"appointment": true,
"blocking": true,
"search_string": "string"
},
"name": "Beispiel",
"provide_tags": "string",
"require_tags": "string",
"required_qualification": {
"id": 42,
"name": "Beispiel",
"ranking": 1,
"search_string": "string",
"deleted": true
},
"qualification_match_mode": "string",
"availability": true,
"appointment": true
}
]Creates a new booking content type entry.
POST/api/event/booking_content_type
Request body application/json
dataBookingContentType2Show fields (1)
deletedbooleanThis property is used to mark an entity as deleted / archived
Responses
200Add a new BookingContentTypeBookingContentType
Show fields (22)
idintegerPrimary key of the content type. Internal ID.
short_namestringKurzname for compact UI labels (e.g. calendars, badges).
provide_tagsstringTags the content type provides, for example qualifications taught.
require_tagsstringTags a trainer or resource needs to have for this content type.
required_qualificationEmploymentQualification6R05/L18: the qualification a performing person of appointments of this type should hold (Übungsleiter of a course, Pausenaufsicht, ...). Checked with the same group/ ranking rules as shifts; employee and linked trainer qualifications both count.
Show fields (7)
idintegerPrimary key of the employment qualification. Internal ID.
rankingintegerRanking within an equivalence network - a linked qualification with a higher or equal ranking also satisfies requirements for this qualification.
equivalent_qualificationsarray<EmploymentQualification6>Linked ("equivalent") qualifications. Kept symmetric by the controller: every link A->B is mirrored as B->A, the ranking decides which direction actually covers which.
qualification_groupEmploymentQualificationGroupL17/A06: the "drawer" this qualification belongs to. Members of one group cover each other's requirements within their ranking, like a direct link would.
search_stringstringText that the entity can be searched by.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
qualification_match_modestringHow the required tags are matched against the qualifications.
availabilitybooleanBookings of this content type mark the resource as available.
appointmentbooleanBookings of this content type are appointments.
colorBookingPredefinedColorPredefined color used for bookings of this content type.
Show fields (13)
idintegerPrimary key of the color. Internal ID.
colorstringColor value, for example a hex code.
default_for_availabilitybooleanDefault color for availability bookings.
default_for_appointmentbooleanDefault color for appointments.
default_for_blockingbooleanDefault color for blocking bookings.
availabilitybooleanThe color can be used for availability bookings.
appointmentbooleanThe color can be used for appointments.
blockingbooleanThe color can be used for blocking bookings.
search_stringstringText that the entity can be searched by.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
require_single_participantbooleanBookings of this content type need exactly one participant.
require_participant_contactbooleanParticipants of this content type must have contact details.
require_participant_addressbooleanParticipants of this content type must have an address.
require_participant_birthdaybooleanParticipants of this content type must have a birthday.
default_time_in_minutesintegerDefault length of a booking of this content type in minutes.
self_service_selectablebooleanWhether this content type may be picked by a customer / trainer in the self service portal. Off by default so existing installations keep the current behaviour.
trainer_availability_modestringControls whether a self service booking of this content type also picks the availability of a trainer: NONE (default), OPTIONAL or REQUIRED.
self_service_bookable_typesarray<BaseBookableBookableType>Restricts the bookable types this content type is offered for in the self service booking. An empty collection means "every bookable type".
Show fields (11)
idstringIdentifier of the bookable type. For example room or vehicle.
short_namestringKurzname for compact UI labels (e.g. calendars, badges).
namestringName of the bookable type.
view_orderintegerSort order of the bookable type in lists.
menu_namestringName of the menu entry for the bookable type.
menu_iconstringIcon of the menu entry for the bookable type.
show_admin_menubooleanShow the bookable type in the admin menu.
show_admin_calendarbooleanShow the bookable type in the admin calendar.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
search_stringstringText that the entity can be searched by.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request POST \
--url https://your-instance.iw-erp.de/api/event/booking_content_type \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"deleted": true
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({data: {deleted: true}})
};
fetch('https://your-instance.iw-erp.de/api/event/booking_content_type', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/event/booking_content_type"
payload = { "data": { "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://your-instance.iw-erp.de/api/event/booking_content_type', [
'body' => '{"data":{"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://your-instance.iw-erp.de/api/event/booking_content_type"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"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\":{\"deleted\":true}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/event/booking_content_type")
.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://your-instance.iw-erp.de/api/event/booking_content_type"
payload := strings.NewReader("{\"data\":{\"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 with the iw_erp_api package
import 'package:iw_erp_api/clients/event_base_booking_content_type_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/event_base_booking_content_type.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await EventBaseBookingContentTypeController.post(EventBaseBookingContentType.fromJson({
"deleted": true
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"short_name": "Beispiel",
"color": {
"id": 42,
"color": "#3f5efb",
"name": "Beispiel",
"default_for_availability": true,
"default_for_appointment": true,
"default_for_blocking": true,
"availability": true,
"appointment": true,
"blocking": true,
"search_string": "string"
},
"name": "Beispiel",
"provide_tags": "string",
"require_tags": "string",
"required_qualification": {
"id": 42,
"name": "Beispiel",
"ranking": 1,
"qualification_group": {
"id": 42,
"name": "Beispiel",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"search_string": "string",
"deleted": true
},
"qualification_match_mode": "string",
"availability": true,
"appointment": true
}Returns a single booking content type entry.
GET/api/event/booking_content_type/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Returns a single BookingContentTypeBookingContentType
Show fields (22)
idintegerPrimary key of the content type. Internal ID.
short_namestringKurzname for compact UI labels (e.g. calendars, badges).
provide_tagsstringTags the content type provides, for example qualifications taught.
require_tagsstringTags a trainer or resource needs to have for this content type.
required_qualificationEmploymentQualification6R05/L18: the qualification a performing person of appointments of this type should hold (Übungsleiter of a course, Pausenaufsicht, ...). Checked with the same group/ ranking rules as shifts; employee and linked trainer qualifications both count.
Show fields (7)
idintegerPrimary key of the employment qualification. Internal ID.
rankingintegerRanking within an equivalence network - a linked qualification with a higher or equal ranking also satisfies requirements for this qualification.
equivalent_qualificationsarray<EmploymentQualification6>Linked ("equivalent") qualifications. Kept symmetric by the controller: every link A->B is mirrored as B->A, the ranking decides which direction actually covers which.
qualification_groupEmploymentQualificationGroupL17/A06: the "drawer" this qualification belongs to. Members of one group cover each other's requirements within their ranking, like a direct link would.
search_stringstringText that the entity can be searched by.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
qualification_match_modestringHow the required tags are matched against the qualifications.
availabilitybooleanBookings of this content type mark the resource as available.
appointmentbooleanBookings of this content type are appointments.
colorBookingPredefinedColorPredefined color used for bookings of this content type.
Show fields (13)
idintegerPrimary key of the color. Internal ID.
colorstringColor value, for example a hex code.
default_for_availabilitybooleanDefault color for availability bookings.
default_for_appointmentbooleanDefault color for appointments.
default_for_blockingbooleanDefault color for blocking bookings.
availabilitybooleanThe color can be used for availability bookings.
appointmentbooleanThe color can be used for appointments.
blockingbooleanThe color can be used for blocking bookings.
search_stringstringText that the entity can be searched by.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
require_single_participantbooleanBookings of this content type need exactly one participant.
require_participant_contactbooleanParticipants of this content type must have contact details.
require_participant_addressbooleanParticipants of this content type must have an address.
require_participant_birthdaybooleanParticipants of this content type must have a birthday.
default_time_in_minutesintegerDefault length of a booking of this content type in minutes.
self_service_selectablebooleanWhether this content type may be picked by a customer / trainer in the self service portal. Off by default so existing installations keep the current behaviour.
trainer_availability_modestringControls whether a self service booking of this content type also picks the availability of a trainer: NONE (default), OPTIONAL or REQUIRED.
self_service_bookable_typesarray<BaseBookableBookableType>Restricts the bookable types this content type is offered for in the self service booking. An empty collection means "every bookable type".
Show fields (11)
idstringIdentifier of the bookable type. For example room or vehicle.
short_namestringKurzname for compact UI labels (e.g. calendars, badges).
namestringName of the bookable type.
view_orderintegerSort order of the bookable type in lists.
menu_namestringName of the menu entry for the bookable type.
menu_iconstringIcon of the menu entry for the bookable type.
show_admin_menubooleanShow the bookable type in the admin menu.
show_admin_calendarbooleanShow the bookable type in the admin calendar.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
search_stringstringText that the entity can be searched by.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request GET \
--url https://your-instance.iw-erp.de/api/event/booking_content_type/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/event/booking_content_type/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/event/booking_content_type/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://your-instance.iw-erp.de/api/event/booking_content_type/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://your-instance.iw-erp.de/api/event/booking_content_type/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://your-instance.iw-erp.de/api/event/booking_content_type/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://your-instance.iw-erp.de/api/event/booking_content_type/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 with the iw_erp_api package
import 'package:iw_erp_api/clients/event_base_booking_content_type_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await EventBaseBookingContentTypeController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"short_name": "Beispiel",
"color": {
"id": 42,
"color": "#3f5efb",
"name": "Beispiel",
"default_for_availability": true,
"default_for_appointment": true,
"default_for_blocking": true,
"availability": true,
"appointment": true,
"blocking": true,
"search_string": "string"
},
"name": "Beispiel",
"provide_tags": "string",
"require_tags": "string",
"required_qualification": {
"id": 42,
"name": "Beispiel",
"ranking": 1,
"qualification_group": {
"id": 42,
"name": "Beispiel",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"search_string": "string",
"deleted": true
},
"qualification_match_mode": "string",
"availability": true,
"appointment": true
}Updates an existing booking content type entry.
PUT/api/event/booking_content_type/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataBookingContentType2Show fields (1)
deletedbooleanThis property is used to mark an entity as deleted / archived
Responses
200Update a BookingContentTypeBookingContentType
Show fields (22)
idintegerPrimary key of the content type. Internal ID.
short_namestringKurzname for compact UI labels (e.g. calendars, badges).
provide_tagsstringTags the content type provides, for example qualifications taught.
require_tagsstringTags a trainer or resource needs to have for this content type.
required_qualificationEmploymentQualification6R05/L18: the qualification a performing person of appointments of this type should hold (Übungsleiter of a course, Pausenaufsicht, ...). Checked with the same group/ ranking rules as shifts; employee and linked trainer qualifications both count.
Show fields (7)
idintegerPrimary key of the employment qualification. Internal ID.
rankingintegerRanking within an equivalence network - a linked qualification with a higher or equal ranking also satisfies requirements for this qualification.
equivalent_qualificationsarray<EmploymentQualification6>Linked ("equivalent") qualifications. Kept symmetric by the controller: every link A->B is mirrored as B->A, the ranking decides which direction actually covers which.
qualification_groupEmploymentQualificationGroupL17/A06: the "drawer" this qualification belongs to. Members of one group cover each other's requirements within their ranking, like a direct link would.
search_stringstringText that the entity can be searched by.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
qualification_match_modestringHow the required tags are matched against the qualifications.
availabilitybooleanBookings of this content type mark the resource as available.
appointmentbooleanBookings of this content type are appointments.
colorBookingPredefinedColorPredefined color used for bookings of this content type.
Show fields (13)
idintegerPrimary key of the color. Internal ID.
colorstringColor value, for example a hex code.
default_for_availabilitybooleanDefault color for availability bookings.
default_for_appointmentbooleanDefault color for appointments.
default_for_blockingbooleanDefault color for blocking bookings.
availabilitybooleanThe color can be used for availability bookings.
appointmentbooleanThe color can be used for appointments.
blockingbooleanThe color can be used for blocking bookings.
search_stringstringText that the entity can be searched by.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
require_single_participantbooleanBookings of this content type need exactly one participant.
require_participant_contactbooleanParticipants of this content type must have contact details.
require_participant_addressbooleanParticipants of this content type must have an address.
require_participant_birthdaybooleanParticipants of this content type must have a birthday.
default_time_in_minutesintegerDefault length of a booking of this content type in minutes.
self_service_selectablebooleanWhether this content type may be picked by a customer / trainer in the self service portal. Off by default so existing installations keep the current behaviour.
trainer_availability_modestringControls whether a self service booking of this content type also picks the availability of a trainer: NONE (default), OPTIONAL or REQUIRED.
self_service_bookable_typesarray<BaseBookableBookableType>Restricts the bookable types this content type is offered for in the self service booking. An empty collection means "every bookable type".
Show fields (11)
idstringIdentifier of the bookable type. For example room or vehicle.
short_namestringKurzname for compact UI labels (e.g. calendars, badges).
namestringName of the bookable type.
view_orderintegerSort order of the bookable type in lists.
menu_namestringName of the menu entry for the bookable type.
menu_iconstringIcon of the menu entry for the bookable type.
show_admin_menubooleanShow the bookable type in the admin menu.
show_admin_calendarbooleanShow the bookable type in the admin calendar.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
search_stringstringText that the entity can be searched by.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request PUT \
--url https://your-instance.iw-erp.de/api/event/booking_content_type/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"deleted": true
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({data: {deleted: true}})
};
fetch('https://your-instance.iw-erp.de/api/event/booking_content_type/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/event/booking_content_type/42"
payload = { "data": { "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://your-instance.iw-erp.de/api/event/booking_content_type/42', [
'body' => '{"data":{"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://your-instance.iw-erp.de/api/event/booking_content_type/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"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\":{\"deleted\":true}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/event/booking_content_type/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://your-instance.iw-erp.de/api/event/booking_content_type/42"
payload := strings.NewReader("{\"data\":{\"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 with the iw_erp_api package
import 'package:iw_erp_api/clients/event_base_booking_content_type_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/event_base_booking_content_type.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await EventBaseBookingContentTypeController.put(EventBaseBookingContentType.fromJson({
"deleted": true
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"short_name": "Beispiel",
"color": {
"id": 42,
"color": "#3f5efb",
"name": "Beispiel",
"default_for_availability": true,
"default_for_appointment": true,
"default_for_blocking": true,
"availability": true,
"appointment": true,
"blocking": true,
"search_string": "string"
},
"name": "Beispiel",
"provide_tags": "string",
"require_tags": "string",
"required_qualification": {
"id": 42,
"name": "Beispiel",
"ranking": 1,
"qualification_group": {
"id": 42,
"name": "Beispiel",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"search_string": "string",
"deleted": true
},
"qualification_match_mode": "string",
"availability": true,
"appointment": true
}Updates an existing booking content type entry.
PATCH/api/event/booking_content_type/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataBookingContentType2Show fields (1)
deletedbooleanThis property is used to mark an entity as deleted / archived
Responses
200Update a BookingContentTypeBookingContentType
Show fields (22)
idintegerPrimary key of the content type. Internal ID.
short_namestringKurzname for compact UI labels (e.g. calendars, badges).
provide_tagsstringTags the content type provides, for example qualifications taught.
require_tagsstringTags a trainer or resource needs to have for this content type.
required_qualificationEmploymentQualification6R05/L18: the qualification a performing person of appointments of this type should hold (Übungsleiter of a course, Pausenaufsicht, ...). Checked with the same group/ ranking rules as shifts; employee and linked trainer qualifications both count.
Show fields (7)
idintegerPrimary key of the employment qualification. Internal ID.
rankingintegerRanking within an equivalence network - a linked qualification with a higher or equal ranking also satisfies requirements for this qualification.
equivalent_qualificationsarray<EmploymentQualification6>Linked ("equivalent") qualifications. Kept symmetric by the controller: every link A->B is mirrored as B->A, the ranking decides which direction actually covers which.
qualification_groupEmploymentQualificationGroupL17/A06: the "drawer" this qualification belongs to. Members of one group cover each other's requirements within their ranking, like a direct link would.
search_stringstringText that the entity can be searched by.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
qualification_match_modestringHow the required tags are matched against the qualifications.
availabilitybooleanBookings of this content type mark the resource as available.
appointmentbooleanBookings of this content type are appointments.
colorBookingPredefinedColorPredefined color used for bookings of this content type.
Show fields (13)
idintegerPrimary key of the color. Internal ID.
colorstringColor value, for example a hex code.
default_for_availabilitybooleanDefault color for availability bookings.
default_for_appointmentbooleanDefault color for appointments.
default_for_blockingbooleanDefault color for blocking bookings.
availabilitybooleanThe color can be used for availability bookings.
appointmentbooleanThe color can be used for appointments.
blockingbooleanThe color can be used for blocking bookings.
search_stringstringText that the entity can be searched by.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
require_single_participantbooleanBookings of this content type need exactly one participant.
require_participant_contactbooleanParticipants of this content type must have contact details.
require_participant_addressbooleanParticipants of this content type must have an address.
require_participant_birthdaybooleanParticipants of this content type must have a birthday.
default_time_in_minutesintegerDefault length of a booking of this content type in minutes.
self_service_selectablebooleanWhether this content type may be picked by a customer / trainer in the self service portal. Off by default so existing installations keep the current behaviour.
trainer_availability_modestringControls whether a self service booking of this content type also picks the availability of a trainer: NONE (default), OPTIONAL or REQUIRED.
self_service_bookable_typesarray<BaseBookableBookableType>Restricts the bookable types this content type is offered for in the self service booking. An empty collection means "every bookable type".
Show fields (11)
idstringIdentifier of the bookable type. For example room or vehicle.
short_namestringKurzname for compact UI labels (e.g. calendars, badges).
namestringName of the bookable type.
view_orderintegerSort order of the bookable type in lists.
menu_namestringName of the menu entry for the bookable type.
menu_iconstringIcon of the menu entry for the bookable type.
show_admin_menubooleanShow the bookable type in the admin menu.
show_admin_calendarbooleanShow the bookable type in the admin calendar.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
search_stringstringText that the entity can be searched by.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request PATCH \
--url https://your-instance.iw-erp.de/api/event/booking_content_type/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"deleted": true
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({data: {deleted: true}})
};
fetch('https://your-instance.iw-erp.de/api/event/booking_content_type/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/event/booking_content_type/42"
payload = { "data": { "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://your-instance.iw-erp.de/api/event/booking_content_type/42', [
'body' => '{"data":{"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://your-instance.iw-erp.de/api/event/booking_content_type/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"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\":{\"deleted\":true}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/event/booking_content_type/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://your-instance.iw-erp.de/api/event/booking_content_type/42"
payload := strings.NewReader("{\"data\":{\"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 with package:http (no controller in the iw_erp_api package)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://your-instance.iw-erp.de/api/event/booking_content_type/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"deleted": true
}
}),
);
print(response.body);{
"id": 42,
"short_name": "Beispiel",
"color": {
"id": 42,
"color": "#3f5efb",
"name": "Beispiel",
"default_for_availability": true,
"default_for_appointment": true,
"default_for_blocking": true,
"availability": true,
"appointment": true,
"blocking": true,
"search_string": "string"
},
"name": "Beispiel",
"provide_tags": "string",
"require_tags": "string",
"required_qualification": {
"id": 42,
"name": "Beispiel",
"ranking": 1,
"qualification_group": {
"id": 42,
"name": "Beispiel",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"search_string": "string",
"deleted": true
},
"qualification_match_mode": "string",
"availability": true,
"appointment": true
}