# Etermin

eTermin is an online appointment scheduling platform that allows businesses to manage bookings and integrate with various applications through its REST API.

- **Category:** scheduling & booking
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 78
- **Triggers:** 0
- **Slug:** `ETERMIN`
- **Version:** 20260312_00

## Tools

### Assign Calendar Service

**Slug:** `ETERMIN_ASSIGN_CALENDAR_SERVICE`

Tool to assign a service to a calendar in eTermin. Use when you need to link a specific service to a calendar/employee resource, making the service available for that calendar.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `serviceid` | string | Yes | ID of the service to assign to the calendar. Use Get Services action to retrieve service IDs. |
| `calendarid` | string | Yes | ID of the calendar to assign the service to. Use Get Calendars action to retrieve calendar IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Absence

**Slug:** `ETERMIN_CREATE_ABSENCE`

Tool to create an absence (non-working time) for a specific calendar. Use when you need to block time on a calendar for unavailability such as vacations, sick leave, or other non-working periods.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `nwtype` | boolean | No | Indicates if the absence is dynamic. |
| `reason` | string | No | Reason or note for the absence. |
| `enddate` | string | Yes | End time of the absence. Format: yyyy-mm-dd HH:MM e.g. 2017-10-24 18:00 |
| `startdate` | string | Yes | Start time of the absence. Format: yyyy-mm-dd HH:MM e.g. 2017-10-24 18:00 |
| `dynamicdays` | integer | No | Number of days for the dynamic absence to begin (nwtype has to be 1). |
| `appcalendarid` | integer | Yes | ID of the calendar. Use the "Get Calendars" action to get a list with all available calendars. |
| `dynamicdaysduration` | integer | No | Number of days for the dynamic absence to last (nwtype has to be 1). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Anchortime

**Slug:** `ETERMIN_CREATE_ANCHORTIME`

Tool to create anchortimes (recurring time slots) in a calendar. Use when you need to define regular appointment availability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `weekday` | integer ("1" | "2" | "3" | "4" | "5" | "6" | "7") | Yes | Day of the week for the anchortime. 1 = Sunday, 2 = Monday, 3 = Tuesday, 4 = Wednesday, 5 = Thursday, 6 = Friday, 7 = Saturday. |
| `starttime` | string | Yes | Time of the anchor in HH:MM format (24-hour). This defines when the recurring time slot begins. |
| `calendarid` | integer | Yes | ID of the calendar. Use the 'Get Calendars' action to retrieve a list of all available calendars. |
| `ignoreonceappbooked` | boolean | Yes | If true, the anchortime will be ignored once an appointment is booked for this day. If false, the anchortime remains active regardless of bookings. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Anchortime by Date

**Slug:** `ETERMIN_CREATE_ANCHORTIME_BY_DATE`

Tool to create anchortimes by date. Use when you need to block specific time slots on a calendar. Anchortimes define blocked periods for calendar scheduling where appointments cannot be booked.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `reason` | string | No | Reason why this anchortime is created. Optional explanation for this time block. |
| `startdate` | string | Yes | Date and time of the anchortime. Format is yyyy-MM-dd HH:mm (e.g., '2026-03-15 10:00'). |
| `calendarid` | integer | Yes | ID of the calendar. Use the 'Get Calendars' action to get a list with all available calendars. |
| `ignoreonceappbooked` | boolean | Yes | If true, the anchortime will be ignored once an appointment is booked this day. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Appointment

**Slug:** `ETERMIN_CREATE_APPOINTMENT`

Tool to create a new appointment in eTermin. Use when you need to schedule an appointment with specific start/end times and calendar. Requires at minimum the start time, end time, and calendar ID. Optionally accepts customer details, service information, pricing, and notification settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end` | string | Yes | End date and time of the appointment. Format: yyyy-mm-dd HH:MM (e.g., 2026-03-01 11:00) |
| `lnm` | integer | No | Checks if there is a lastname, if set to 1 |
| `sms` | boolean | No | Send a confirmation SMS to the phone number that was specified in the phone field (true = yes, false = no) |
| `vat` | integer | No | VAT multiplied by 100 (e.g., 19% = 1900) |
| `zip` | string | No | ZIP code of the person that booked the appointment |
| `city` | string | No | City of the person that booked the appointment |
| `sync` | boolean | No | True if the appointment should be synchronized with external calendars (true = yes, false = no) |
| `email` | string | No | Email address of the person |
| `notes` | string | No | Appointment notes |
| `phone` | string | No | Phone number of the person |
| `start` | string | Yes | Start date and time of the appointment. Format: yyyy-mm-dd HH:MM (e.g., 2026-03-01 10:00) |
| `title` | string | No | Title of the person |
| `emailm` | integer | No | Checks if there is an email, if set to 1 |
| `street` | string | No | Street address of the person that booked the appointment |
| `capused` | boolean | No | True if the capacity of the appointment needs to be checked |
| `birthday` | string | No | Date of birth of the person that booked the appointment |
| `calselid` | integer | No | Use this parameter with the value -1 to also use the Calendar Linking function (also requires a valid value for the parameter services) |
| `capacity` | integer | No | Defines the capacity of the appointment |
| `language` | string | No | Language code, defines in which language the emails are sent |
| `lastname` | string | No | Last name of the person |
| `location` | string | No | Location of the appointment |
| `pricenet` | integer | No | Price excluding VAT multiplied by 100 (e.g., 18.50€ = 1850) |
| `services` | string | No | ID of the service. Use the 'Get Services' action to get a list of all available services. To use multiple services use a comma (,) to separate the IDs |
| `blacklist` | integer | No | Checks if the email is on the blacklist, if set to 1 |
| `firstname` | string | No | First name of the person |
| `sendemail` | boolean | No | Send a confirmation email to the address that was specified in the email parameter (true = yes, false = no) |
| `bookerinfo` | string | No | Parameter that includes information for the notification message to the appointment provider |
| `bookingurl` | string | No | Information from which URL the appointment got booked |
| `calendarid` | integer | Yes | ID of the calendar. Use the 'Get Calendars' action to get a list of all available calendars |
| `capmaxused` | integer | No | Maximum capacity that can't be exceeded |
| `checkexist` | boolean | No | Checks if the appointment start/end time is available (true = yes, false = no) |
| `newsletter` | boolean | No | True if the customer accepted to get newsletters |
| `pricegross` | integer | No | Price including VAT multiplied by 100 (e.g., 18.50€ = 1850) |
| `salutation` | string | No | Salutation of the person |
| `additional1` | string | No | Additional appointment field 1 |
| `additional2` | string | No | Additional appointment field 2 |
| `additional3` | string | No | Additional appointment field 3 |
| `additional4` | string | No | Additional appointment field 4 |
| `additional5` | string | No | Additional appointment field 5 |
| `additional6` | string | No | Additional appointment field 6 |
| `additional7` | string | No | Additional appointment field 7 |
| `additional8` | string | No | Additional appointment field 8 |
| `additional9` | string | No | Additional appointment field 9 |
| `agbaccepted` | boolean | No | True if customer accepted the terms of service |
| `bookingtype` | string | No | Information about how the appointment is booked |
| `confirmtime` | integer | No | Time in minutes that the booker is able to confirm the appointment before it gets deleted |
| `servicesabb` | string | No | Abbreviation of the services |
| `additional10` | string | No | Additional appointment field 10 |
| `additional11` | string | No | Additional appointment field 11 |
| `additional12` | string | No | Additional appointment field 12 |
| `additional13` | string | No | Additional appointment field 13 |
| `additional14` | string | No | Additional appointment field 14 |
| `additional15` | string | No | Additional appointment field 15 |
| `additional16` | string | No | Additional appointment field 16 |
| `additional17` | string | No | Additional appointment field 17 |
| `additional18` | string | No | Additional appointment field 18 |
| `additional19` | string | No | Additional appointment field 19 |
| `additional20` | string | No | Additional appointment field 20 |
| `calendarname` | string | No | Name of the calendar (needed for Webpush) |
| `servicestext` | string | No | Name of the services |
| `canceldeadline` | integer | No | Minutes how long before the start date the appointment can be cancelled |
| `customernumber` | string | No | ID of the person that booked the appointment |
| `recurrencerule` | string | No | Recurrence rule. e.g. DTSTART:{20171126T083000Z} DTEND:{20171126T090000Z} RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=WE; |
| `manualconfirmed` | integer | No | Set to 0 to have the appointment manually confirmed by the appointment provider |
| `notificationmsg` | boolean | No | Send an information email to the appointment provider (true = yes, false = no) |
| `confirmappointment` | integer | No | Set to 1 to have the appointment manually confirmed by the booker. Won't work if manualconfirmed is set to 0 |
| `recurrenceparentid` | string | No | ID of the parent recurring appointment |
| `servicesinclsgtext` | string | No | Name of the services including the service groups |
| `dataprivacyaccepted` | boolean | No | True if customer accepted the privacy terms |
| `appointmentreminderhours` | integer | No | Defines when the first reminder is sent in hours (needs to be a negative value) |
| `appointmentreminderhours2` | integer | No | Defines when the second reminder is sent in hours (needs to be a negative value) |
| `feedbackpermissionaccepted` | boolean | No | True if the customer should get a feedback email |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Appointment via Sync

**Slug:** `ETERMIN_CREATE_APPOINTMENT_SYNC`

Tool to create an appointment via sync in eTermin. Use when you need to synchronize an appointment from an external calendar system. Requires date/time in both local and UTC formats along with calendar ID, summary, and description.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end` | string | Yes | End date and time of the appointment in local timezone. Format: yyyy-mm-dd HH:MM (e.g., 2024-12-01 11:00) |
| `email` | string | No | Email address for the appointment participant |
| `start` | string | Yes | Start date and time of the appointment in local timezone. Format: yyyy-mm-dd HH:MM (e.g., 2024-12-01 10:00) |
| `endutc` | string | Yes | End date and time of the appointment in UTC. Format: yyyy-mm-dd HH:MM (e.g., 2024-12-01 10:00) |
| `summary` | string | Yes | Title or subject of the appointment |
| `location` | string | No | Physical location of the appointment |
| `sequence` | string | No | Sequence number of the recurring appointment. Leave empty if not a recurring appointment |
| `startutc` | string | Yes | Start date and time of the appointment in UTC. Format: yyyy-mm-dd HH:MM (e.g., 2024-12-01 09:00) |
| `sendemail` | boolean | No | Send a confirmation email to the specified email address (true = yes, false = no) |
| `calendarid` | integer | Yes | ID of the calendar where the appointment will be created |
| `description` | string | Yes | Body text or detailed description of the appointment |
| `appointmentid` | string | Yes | ID of the appointment for synchronization |
| `recurrencerule` | string | No | Recurrence rule for recurring appointments (e.g., RRULE format) |
| `recurrenceparentid` | string | No | ID of the parent recurring appointment if this is part of a recurring series |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Calendar Return Time

**Slug:** `ETERMIN_CREATE_CALENDAR_RETURN_TIME`

Tool to create a return time for a calendar. Use when scheduling recurring return times or availability windows for a specific weekday. Return times define when a calendar resource becomes available after being occupied.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `newday` | boolean | Yes | If true, the return time will end on the next day. Use this if you have a return time over midnight (e.g., 23:00 to 02:00). |
| `endtime` | string | Yes | End time of the return time. Format: HH:MM (e.g., 17:00, 18:00). Must be a valid 24-hour time format. |
| `starttime` | string | Yes | Start time of the return time. Format: HH:MM (e.g., 09:00, 18:00). Must be a valid 24-hour time format. |
| `calendarid` | integer | Yes | ID of the calendar. Use the 'Get Calendars' function to get a list with all available calendars. |
| `weekdayidx` | integer ("1" | "2" | "3" | "4" | "5" | "6" | "7") | Yes | ID of the weekday where 1=Sunday, 2=Monday, 3=Tuesday, 4=Wednesday, 5=Thursday, 6=Friday, 7=Saturday. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Contact

**Slug:** `ETERMIN_CREATE_CONTACT`

Tool to create a new contact in eTermin. Use when you need to add a contact before scheduling appointments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Contact's email address in valid email format |
| `lastname` | string | Yes | Contact's last name |
| `firstname` | string | Yes | Contact's first name |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Service

**Slug:** `ETERMIN_CREATE_SERVICE`

Tool to create a new service in eTermin. Use when you need to add a service to a service group with specified duration and settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `PM0` | integer | No | Shows online payment options (1 = enabled, 0 = disabled) |
| `PM1` | integer | No | Shows on site payment options (1 = enabled, 0 = disabled) |
| `PM2` | integer | No | Shows by invoice payment options (1 = enabled, 0 = disabled) |
| `vat` | integer | No | Defines the vat rate of the service |
| `mpbs` | integer | No | Defines if the price is multiplied by the amount of booked appointments |
| `ssca` | integer | No | Defines if in the calendar selection the entry all calendars is shown (0 = no, 1 = yes) |
| `tags` | string | No | ID of the tags that the contact gets after booking |
| `image` | string | No | Image of the service |
| `price` | number | No | Price of the service |
| `rrule` | string | No | Defines the RRULE for this service |
| `infode` | string | No | Additional description of the service in German. For other languages use infoLANGUAGECODE e.g. infoen |
| `jscode` | string | No | Used for JavaScript code that will be executed after the booking of the appointment (for example to redirect to another website) |
| `wowing` | integer | No | Set to 0 if the Wowing interface should be disabled for this service |
| `cluster` | integer | No | Defines if the cluster is applied to this service (1 = enabled, 0 = disabled) |
| `enabled` | boolean | No | Defines if the service is shown in the frontend |
| `uselogo` | boolean | No | True, if the picture of this service should be used for the email logo |
| `currency` | string | No | Defines the currency of the service |
| `extramin` | integer | No | Defines total wrap up time |
| `feedback` | integer | No | Set to 0 if the feedback checkbox should not be shown |
| `nrappsel` | integer | No | Defines the maximum / minimum amount of appointments that MUST be selected on the booking page if multiappointment is true (in this service or globally) |
| `rangeend` | integer | No | Days range for the new appointment |
| `showindb` | boolean | No | Defines if the service is shown in the most booked area of the Dashboard |
| `appattrib` | integer | No | Defines which attribute is set automatically in appointment. Attributes are binary encoded (1st attribute = 1, 2nd = 2, 3rd = 4; 1st + 2nd = 3) |
| `appfuture` | integer | No | Time the appointment can be booked in the future in days |
| `infotxtp2` | string | No | A special placeholder %INFOTEXTP2% for page 2 of the booking page |
| `maxappsel` | integer | No | Defines the maximum amount of appointments that can be selected on the booking page if multiappointment is true (in this service or globally) |
| `mstextpos` | integer | No | Defines the position of capseltext (0 = above selection, 1 = to the right) |
| `servicede` | string | Yes | Name of the service in German. For other languages use serviceLANGUAGECODE e.g. serviceen |
| `showavcap` | integer | No | Defines if the available capacity is shown in time slots (0 = no, 1 = yes) |
| `sortorder` | integer | No | Defines the position in the servicegroup |
| `emailtxtde` | string | No | A special placeholder %SERVICETEXT% for emails, use other language codes to set the text (for example emailtxten for english) |
| `rangestart` | integer | No | Days after the last appoinment |
| `showcalpic` | integer | No | Defines if in the calendar picture is shown after the timeslot is selected (0 = no, 1 = yes) |
| `startedapp` | integer | No | Time the appointment can be booked if already started in minutes (has to be a negative value) |
| `tagscancel` | string | No | ID of the tags that the contact gets after cancellation of the appointment |
| `addapphours` | integer | No | Hours after the first appointment, where a second appointment is booked |
| `appdeadline` | integer | No | Time the appointment must be booked in advance in minutes |
| `bookingtype` | integer | No | Defines the bookingtype (0 = appointment, 1 = no appointment booking allowed, 2 = 'negative' appointment, 3 = reservation list, 4 = voucher sale) |
| `emailsender` | string | No | Defines the sender address of the email for this service |
| `infodisplay` | integer | No | Defines where the information is shown (0 = below service name, 1 = informationtext page 2, 2 = summary after booking, 3 = below service name and summary after booking) |
| `maxcapacity` | number | No | Sets the maximum capacity of the service |
| `maxminslots` | boolean | No | Defines if nrappsel is maximum (false) or minimum (true) |
| `notearlyapp` | integer | No | Defines if the customer should get an email if an earlier appointment is available (0 = not active, 1 = for appointments that were cancelled online, 2 = for appointments cancelled online and manually, 3 = like 1 but per calendar, 4 = like 2 but per calendar) |
| `showcalname` | integer | No | Defines if in the calendar name is shown in the time slot (0 = no, 1 = yes) |
| `waitinglist` | integer | No | Defines if the waiting list should be available (0 = no, 1 = yes) |
| `abbreviation` | string | No | Abbreviation of the service |
| `capseltextde` | string | No | Defines the text if there is a capacity selection on that service, use other language codes to set the text (for example capseltexten for english) |
| `extramintype` | integer | No | 0 if extramin should not be applied if differenttimeresource is true, 1 if extramin should be added to timeslotminutesresend |
| `limitbooking` | integer | No | Defines if this service can be booked a limited amount of times per customer (0 = no, 1 = yes) |
| `limitservice` | integer | No | Defines if the limitation only applies to this specific service |
| `priceinfopos` | integer | No | Defines where the pricesuffix is shown (0 = left side, 1 = right side) |
| `showinternal` | boolean | No | Defines if the service is shown in the backend |
| `voucherfield` | integer | No | Defines if the voucherfield is shown (0 = not shown, 1 = shown, 2 = shown and mandatory) |
| `workloadperc` | integer | No | Defines the percentage of time slots that are not shown |
| `bookingminute` | integer | No | Defines when the timeslots are shown (61 = no restrictions, 0 = every full hour, 31 = every full and half hour, 15 or 30 or 45 = x minutes after a full hour) |
| `pricesuffixde` | string | No | Additional information for the price, use other language codes to set the text (for example pricesuffixen for english) |
| `reminderhours` | integer | No | Defines when the first reminder is sent in hours (needs to be a negative value) |
| `canceldeadline` | integer | No | Time the appointment can be cancelled in hours |
| `capacitynonsel` | number | No | Sets the capacity if selected on the booking page (needs showcapselectionbox to be false) |
| `enablecapacity` | boolean | No | True to enable the capacity of the service |
| `hideserviceids` | string | No | Service(s) that should be hidden, if this service is selected |
| `issubscription` | boolean | No | Defines if the service is a subscription |
| `reminderhours2` | integer | No | Defines when the second reminder is sent in hours (needs to be a negative value) |
| `servicegroupid` | integer | Yes | ID of the service group this service belongs to |
| `showserviceids` | string | No | Service(s) that have to be selected to show this service |
| `timeslotformat` | integer | No | Defines how the timeslots are shown on page 2 on the bookingpage (0 = starttime - endtime, 1 = starttime, 2 = only date, 3 = calendar week, 4 = like 0 but with dates, 5 = startdate only) |
| `calcdrivingtime` | integer | No | Defines if driving time should be calculated (0 = no, 1 = yes) |
| `customerconfirm` | integer | No | Defines if the customer needs to confirm the appointment (1 = enabled, 0 = disabled; doesn't work with online payments or vendorconfirmation) |
| `infotextinslots` | boolean | No | True, if the info text should be shown in the slot text in page 2 of the booking page |
| `multiservicemax` | integer | No | Defines the maximum amount that can be choosen for multi service selection |
| `multiservicemin` | integer | No | Defines the minimum amount that can be choosen for multi service selection |
| `multiservicesel` | boolean | No | True, if the service can be booked multiple times after another. This won't work if the parameter enablecapacity is true aswell |
| `paymentduration` | integer | No | Defines the payment term for LexOffice |
| `pricediffperday` | boolean | No | Defines if different prices per weekday are applied |
| `smsconfirmation` | integer | No | Defines if a SMS confirmation is sent after booking (1 = enabled, 0 = disabled) |
| `timeslotminutes` | integer | Yes | Duration of the service in minutes |
| `dayselectiontype` | integer | No | Defines how page 2 shows the available days (0 = Calendar, 1 = list of days) |
| `multiappointment` | integer | No | Defines if multiple appointments can be booked in one booking (0 = no, 1 = yes) |
| `nrappseladjacent` | boolean | No | True, if the selected appointments have to be adjacent |
| `timeslotcombined` | integer | No | Defines the time of the appointment if booked with another service. differenttimecombined has to be true |
| `calendarselection` | integer | No | Defines if the calendar selection should be shown (0 = no, 1 = yes) |
| `externalreference` | string | No | Used for a tag ID or external reference after booking |
| `limitappointments` | integer | No | Defines how many appointments can be booked per customer |
| `nrtimeslotentries` | integer | No | Defines the maximum amount of time slots that are shown |
| `priceispercentage` | boolean | No | True if price is a percentage |
| `maxcapacityusersel` | number | No | Sets the maximum capacity the user can set on the booking page (needs showcapselectionbox to be true) |
| `vendorconfirmation` | integer | No | Defines if the appointment provider needs to manually confirm the appointment (0 = manually, 1 = automatically) |
| `wowingautomationid` | integer | No | Defines the Woing Automation ID |
| `appointmentlocation` | integer | No | Defines the location of the appointment |
| `customerconfirmtime` | integer | No | Time in minutes the customer has time to confirm the appointment (customerconfirm must be set to 1) |
| `showcapselectionbox` | boolean | No | True if the customer is able to select the capacity |
| `allowonlythisservice` | boolean | No | If there are multiple services with capacity available at the same time, this option prevents that they will get mixed, if set to true |
| `fillcalendarstrategy` | integer | No | Defines how the calender should be filled (0 = standard, 1 = random, 2 = round Robin, 3 = sequential, 4 = skills, 5 = strict round Robin) |
| `multiplypricewithcap` | boolean | No | Defines if the price is multiplied with the capacity |
| `nrappseladjacenttype` | integer | No | 0 = the date and time need to be adjacent, 1 = only the day need to be adjacent |
| `severalcalendarsused` | boolean | No | True, if the service can only be booked if another calendar is available |
| `differenttimecombined` | boolean | No | True, if the service has a different time if booked with another service |
| `differenttimeresource` | boolean | No | True if you want to add pre- or post processing times |
| `externalreferencedate` | string | No | ID of a field that should contain the date of the appointment |
| `limitappointmentstype` | integer | No | Defines how the appointments are limited (0 = per booking day, 1 = per week, 2 = per month, 3 = per year, 4 = per booked day) |
| `specificrangenextslot` | boolean | No | True, if the next appointment needs to be after a specific timeframe |
| `timeslotminutesresend` | integer | No | Busy until minute (use a number greater than timeslotminutes to have a post-processing time) |
| `appointmentlocationtext` | string | No | Defines the location text if appointmentlocation = 3 |
| `externalreferencecancel` | string | No | ID of a field that should contain the cancellation link of the appointment |
| `externalreferencechange` | string | No | Used for a tag ID or external reference after a change of the appointment |
| `externalreferencedelete` | string | No | Used for a tag ID or external reference after cancellation of the appointment |
| `paymentamountisabsolute` | integer | No | Defines if paymentamountpercentage is absolute or a percentage (1 = absolute, 0 = percentage) |
| `paymentamountpercentage` | integer | No | Defines the payment amount that needs to be paid at the end of booking |
| `timeslotminutesresstart` | integer | No | Busy by minute (use negative number to have a pre-processing time) |
| `externalreferencecalname` | string | No | ID of a field that should contain the calendar name of the appointment |
| `externalreferencelocation` | string | No | ID of a field that should contain the location of the appointment |
| `multiservicedurationcalcmethod` | integer | No | Defines how the duration is calculated if multiple services are selected (0 = all durations are summed up, 1 = only duration of the longest service, 2 = all durations are halfed, 3 = like 2 except the longest service) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Service Group

**Slug:** `ETERMIN_CREATE_SERVICE_GROUP`

Tool to create a new service group in eTermin. Use when you need to organize services into groups for better booking page structure. Service groups help categorize services and control how they are displayed to customers during booking.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `enabled` | boolean | No | Set to false if the service group should not appear on the booking page (only accessible via direct link or for internal services). |
| `collapse` | boolean | No | Set to true if the service group is shown collapsed as default. Requires showtoggle to be true. |
| `showprice` | boolean | No | Defines if the price of the service is shown. |
| `isoptional` | boolean | No | Defines if a selection of a service is mandatory. Set to false to make selection required. |
| `showtoggle` | boolean | No | Set to true if the service group can be collapsed. |
| `showduration` | boolean | No | Defines if the duration of the service is shown. |
| `showinsummary` | boolean | No | Set to false if the selected service should not appear in the summary box. |
| `servicegroupde` | string | No | Name of the service group in German. For other languages use servicegroupLANGUAGECODE (e.g., servicegroupen for English). |
| `answerselection` | string ("Not applicable" | "Single selection" | "Multi selection" | "List selection") | No | Enum for answer selection types. |
| `additionaltextde` | string | No | Additional information of the service group in German. For other languages use additionaltextLANGUAGECODE (e.g., additionaltexten for English). |
| `nrservicecolumns` | integer | No | Defines how many columns the services should be displayed in. |
| `servicegrouptype` | string ("Service selection" | "Text field" | "Location selection" | "Day amount selection" | "Number search" | "Minutes amount selection") | No | Enum for service group types. |
| `addtextdisplaymode` | string ("Via Tooltip" | "Under the name") | No | Enum for additional text display mode. |
| `showwhencertainanswerselected` | string | No | Comma-separated list of service IDs that have to be selected to show this service group. Set to '-1' if the service group should be shown initially. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create User

**Slug:** `ETERMIN_CREATE_USER`

Tool to create a new user. Use when you need to add users to eTermin after collecting their details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `role` | string ("client" | "employee" | "admin") | No | Role assigned to the new user. |
| `email` | string | Yes | Email address of the new user. |
| `phone` | string | No | Optional phone number of the new user. |
| `locale` | string | No | Optional locale code, e.g., 'en' or 'de'. |
| `password` | string | Yes | Password for the new user, at least 6 characters. |
| `last_name` | string | Yes | Last name of the new user. |
| `first_name` | string | Yes | First name of the new user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Usermapping

**Slug:** `ETERMIN_CREATE_USERMAPPING`

Tool to create a new usermapping in eTermin. Use when you need to map phone numbers or other values to specific calendars and service groups.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `value` | string | No | Value that should be matched (valuetype must be equals, last_two_digits, or last_three_digits). If you use last x digits, only use x digits for the value. |
| `valueto` | integer | No | Last number that works for this range (valuetype must be from_to). |
| `valuefrom` | integer | No | First number that works for this range (valuetype must be from_to). |
| `valuetype` | string ("equals" | "from_to" | "last_two_digits" | "last_three_digits" | "last_digit" | "first_digit" | "first_two_digits" | "first_three_digits") | No | Type of number search for usermapping. |
| `calendarid` | integer | Yes | Calendar ID to associate with the usermapping. Must be a valid CalendarID from GET /api/calendar. Required field - using invalid values like -1 will cause an error. |
| `servicegroupid` | integer | Yes | Service group ID to associate with the usermapping. Must be a valid ServicegroupID from GET /api/servicegroup. Required field - using invalid values like -1 will cause an error. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Voucher

**Slug:** `ETERMIN_CREATE_VOUCHER`

Creates a new discount voucher in eTermin. Use this to set up promotional codes that customers can apply during booking. Supports both percentage and fixed amount discounts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Unique voucher code that customers will use. Must be unique within your eTermin account. |
| `type` | string ("percent" | "absolute") | Yes | Discount type: 'percent' applies a percentage discount, 'absolute' applies a fixed currency amount discount. |
| `discount` | number | Yes | Discount value. For 'percent' type, this is a percentage (e.g., 20 means 20% off). For 'absolute' type, this is a fixed amount in your currency (e.g., 50 means 50 currency units off). |
| `valid_to` | string | Yes | End date until which the voucher is valid. Format: YYYY-MM-DD. Must be on or after valid_from. |
| `valid_from` | string | Yes | Start date from which the voucher becomes valid. Format: YYYY-MM-DD. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Webhook

**Slug:** `ETERMIN_CREATE_WEBHOOK`

Creates a webhook (web push notification) in eTermin to receive real-time updates about appointments. IMPORTANT: eTermin webhook configuration is typically managed through the web UI at API > API & Web Push. This action attempts API-based creation but will return a helpful message with UI instructions if the API endpoint is not available for your tenant. Webhooks can notify your application when appointments are created, modified, or deleted. Configure the webhook URL, optional authentication headers, and secret key for signature verification.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | The webhook URL where eTermin will send notifications when events occur. Must be a valid HTTPS URL that can receive POST requests. Example: 'https://your-app.com/webhooks/etermin' |
| `active` | boolean | No | Whether the webhook should be active immediately after creation. |
| `format` | string | No | Format for webhook payload: 'json' (all fields always included) or 'variables' (only filled fields). Defaults to 'json'. |
| `secretKey` | string | No | Optional secret hash key for webhook signature verification. If provided, eTermin will include this in webhook requests for authentication. |
| `headerName` | string | No | Optional custom HTTP header name for webhook authentication. Use with header_value to add custom authentication headers. |
| `headerValue` | string | No | Optional custom HTTP header value for webhook authentication. Use with header_name to add custom authentication headers. |
| `use_form_encoding` | boolean | No | Advanced option: Send payload as application/x-www-form-urlencoded instead of JSON. Only use if specifically required by your tenant. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Working Time

**Slug:** `ETERMIN_CREATE_WORKING_TIME`

Tool to create a new working time slot in eTermin. Use when defining available time slots for appointments on a calendar.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end` | string | Yes | End time of the working time slot in HH:MM format (e.g., '17:00') |
| `start` | string | Yes | Start time of the working time slot in HH:MM format (e.g., '09:00') |
| `enable` | integer | No | Set to 0 if the time slot should exist but not be considered yet. Omit or set to 1 to enable immediately |
| `nrapps` | integer | No | Number of appointments bookable in this working slot. Use -1 for unlimited appointments |
| `weekday` | string | Yes | Weekday ID(s) for this working time slot. 1 = Sunday, 2 = Monday, 3 = Tuesday, 4 = Wednesday, 5 = Thursday, 6 = Friday, 7 = Saturday. Multiple weekdays can be specified separated by commas (e.g., '2,3,5' for Monday, Tuesday, Thursday) |
| `slottype` | integer | No | Type of slot: 0 = valid for both internal and external (online booked) appointments (default), 1 = only valid for internal (manually entered) appointments |
| `weektype` | integer | No | Defines the interval for the time slot: 0 = Every week, 1 = Odd weeks, 2 = Even weeks, 3 = First occurrence in month, 4 = Second occurrence in month, 5 = Third occurrence in month, 6 = Fourth occurrence in month, 7 = Every 3 weeks first occurrence, 8 = Every 3 weeks second occurrence, 9 = Every 3 weeks third occurrence, 10 = Fifth occurrence in month, 11 = Every 4 weeks first occurrence, 12 = Every 4 weeks second occurrence, 13 = Every 4 weeks third occurrence, 14 = Every 4 weeks fourth occurrence |
| `calendarid` | integer | Yes | ID of the calendar to associate with this working time slot |
| `locationid` | integer | No | ID of the location for this working slot if locations are used in working times |
| `calendarintervalid` | integer | No | ID of the period for this working slot if periods are used in working times |
| `validwithserviceid` | string | No | Comma-separated list of service IDs that are valid with this working slot |
| `allserviceidsrequired` | integer | No | Defines how service validity is checked: 0 = one service needs to be selected, 1 = all services need to be selected exclusively, 2 = all services need to be selected, 3 = one service needs to be selected exclusively |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Working Times Date

**Slug:** `ETERMIN_CREATE_WORKING_TIMES_DATE`

Tool to create a working times date slot for a calendar. Use when you need to define available time slots for appointments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end` | string | Yes | End date/time of working time in format YYYY-MM-DD HH:MM (e.g., 2026-03-15 18:00) |
| `start` | string | Yes | Start date/time of working time in format YYYY-MM-DD HH:MM (e.g., 2026-03-15 09:00) |
| `nrapps` | integer | No | Amount of appointments that are bookable in this working slot. (-1 = unlimited) |
| `oneoff` | boolean | No | true, if this timeslot needs a specific link (requires exactly one service for the validwithserviceid parameter) |
| `reason` | string | No | Reason of the specific working time (this is only visible internally) |
| `slottype` | integer | No | 0 if time slots should be valid for internal and external (online booked) appointments. 1 if timeslots are only valid for internal (manually entered) appointments |
| `calendarid` | integer | Yes | ID of the calendar to create the working time slot for |
| `locationid` | integer | No | ID of the location for this working slot if locations are used in working times |
| `oneoffcode` | string | No | Specific code that is used for the oneoff-link if oneoff is true |
| `waitinglist` | boolean | No | true, if this timeslot should be filled with appointments from the waitinglist |
| `overwriteday` | boolean | No | true, if the workingtime for this day should be disabled |
| `validwithserviceid` | string | No | List of services that work with this working slot |
| `allserviceidsrequired` | integer | No | Defines how the validity of the services are checked. 0 = one service needs to be selected, 1 = all services need to be selected exclusively, 2 = all services need to be selected, 3 = one service needs to be selected exclusively |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Absence

**Slug:** `ETERMIN_DELETE_ABSENCE`

Tool to delete an absence (non-working time) from a calendar. Use when you need to remove a blocked time period from a calendar's availability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the absence to delete. Use ETERMIN_GET_ABSENCES to retrieve absence IDs for a calendar. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Anchortime

**Slug:** `ETERMIN_DELETE_ANCHORTIME`

Delete an anchortime from eTermin by its ID. Use this when you need to permanently remove an anchortime entry from the system. Note: This action is irreversible.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the anchortime to delete. Use this to identify which anchortime record should be removed from the system. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Anchortime By Date

**Slug:** `ETERMIN_DELETE_ANCHORTIME_BY_DATE`

Delete an anchortime by date using its ID. Use when you need to remove a specific anchortime entry by date. Returns a success indicator along with any error messages if the deletion fails.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the anchortime by date to delete. This ID can be obtained from listing anchortimes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Appointment

**Slug:** `ETERMIN_DELETE_APPOINTMENT`

Delete an existing appointment by its ID. Use the GET appointments action first to retrieve valid appointment IDs. Returns a success indicator along with any error messages if the deletion fails.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `appointmentId` | string | Yes | The unique identifier of the appointment to delete. This ID can be obtained from the GET appointments endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Appointment via Sync

**Slug:** `ETERMIN_DELETE_APPOINTMENT_SYNC`

Tool to delete appointments via the sync endpoint. Use when you need to delete one or more appointments by ID or date range. Provide either an appointmentid for single deletion, or start/end dates for bulk deletion within a time range.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end` | string | No | End date of the appointments to delete. Can be used with 'start' to delete appointments in a date range. Format: yyyyMMdd HHmmss |
| `start` | string | No | Start date of the appointments to delete. Can be used with 'end' to delete appointments in a date range. Format: yyyyMMdd HHmmss |
| `appointmentid` | string | No | ID of the specific appointment to delete. Use this to delete a single appointment by its unique identifier. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Calendar

**Slug:** `ETERMIN_DELETE_CALENDAR`

Delete a calendar from your eTermin account. Use this tool to permanently remove a calendar by its ID. The calendar and all associated data will be deleted. This operation is idempotent - deleting a non-existent calendar will still return success. To find calendar IDs, first use ETERMIN_GET_CALENDARS to list all calendars.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `calendarId` | string | Yes | The unique identifier (ID) of the calendar to delete. Use ETERMIN_GET_CALENDARS to list available calendars and their IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Calendar Return Time

**Slug:** `ETERMIN_DELETE_CALENDAR_RETURN_TIME`

Delete a return time from a calendar. Use when you need to remove a specific return time entry.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier (ID) of the calendar return time to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Calendar Service

**Slug:** `ETERMIN_DELETE_CALENDAR_SERVICE`

Delete an assigned service from a calendar in eTermin. Use this action to remove a service assignment from a specific calendar by providing both the service assignment ID and the calendar ID. The deletion is permanent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier (ID) of the calendar service assignment to delete. |
| `calendarid` | string | Yes | The unique identifier (ID) of the calendar. This parameter is required for the delete operation. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Contact

**Slug:** `ETERMIN_DELETE_CONTACT`

Delete a contact from your eTermin account by its contact ID. Use this action when you need to permanently remove a contact from the system. The contact ID can be obtained using the Get Contacts action. Note: This action is irreversible. The contact will be permanently deleted.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_id` | integer | Yes | The unique contact ID (cid) of the contact to delete. Use the Get Contacts action to find contact IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Resource

**Slug:** `ETERMIN_DELETE_RESOURCE`

Delete an eTermin resource by type and ID. Supports deleting contacts, services, users, calendars, vouchers, and working times. The resource ID can be obtained from listing or creating resources.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `resource` | string | Yes | The type of eTermin resource to delete. Must be one of: 'contact', 'service', 'user', 'calendar', 'voucher', 'workingtimes'. Use lowercase. |
| `resourceId` | string | Yes | The unique identifier (ID) of the resource to delete. This is typically a numeric ID returned when creating or listing resources. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Service

**Slug:** `ETERMIN_DELETE_SERVICE`

Permanently deletes a service from your eTermin account by its ID. Use this action to remove services that are no longer needed. The deletion is permanent and cannot be undone. Services with associated appointments may not be deletable. Before deleting, use the Get Services action to retrieve service IDs and verify which service you want to delete.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `service_id` | string | Yes | The unique numeric ID of the service to delete. Obtain service IDs using the Get Services action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Service Group

**Slug:** `ETERMIN_DELETE_SERVICEGROUP`

Delete a service group from your eTermin account by its ID. Use this action when you need to permanently remove a service group from the system. The deletion is permanent and cannot be undone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `servicegroupid` | integer | Yes | ID of the service group that you want to delete. Use the appropriate action to retrieve service group IDs first. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete User

**Slug:** `ETERMIN_DELETE_USER`

Deletes an existing user from the eTermin account. Use the get_users action first to retrieve the user ID. The deletion is idempotent - deleting a non-existent user will not cause an error.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `userId` | string | Yes | The unique identifier (UUID) of the user to delete. Obtain this ID from the get_users action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Usermapping

**Slug:** `ETERMIN_DELETE_USERMAPPING`

Delete a usermapping by its ID. Use this action when you need to remove a usermapping from the eTermin system.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the usermapping to delete. This ID can be obtained from the list usermappings endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Voucher

**Slug:** `ETERMIN_DELETE_VOUCHER`

Permanently deletes a voucher from eTermin by its voucher code. The operation is idempotent - deleting a non-existent voucher will still return success. Use the List Vouchers action first to get valid voucher codes if needed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `voucherId` | string | Yes | The voucher code to delete. This is the 'id' field from the voucher object (e.g., 'SUMMER20', 'DISCOUNT50'), not the numeric internal ID (iid). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Webhook

**Slug:** `ETERMIN_DELETE_WEBHOOK`

Delete an existing webhook by its unique identifier. Note: eTermin's webhook deletion endpoint is undocumented. This action attempts multiple candidate endpoints and returns a graceful message if webhook deletion is not supported via API for the tenant. In that case, users should manage webhooks through the eTermin web UI.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `webhookId` | string | Yes | Unique identifier (UUID) of the webhook to delete. Obtain this ID from the List Webhooks action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Working Times

**Slug:** `ETERMIN_DELETE_WORKING_TIMES`

Tool to delete working times from a calendar. Use when removing time slots or clearing all working times from a calendar. If no specific working time ID is provided, all working slots for the calendar will be deleted.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | ID of the specific working time slot to delete. If not provided, every working slot of the calendar will be deleted |
| `calendarid` | integer | Yes | ID of the calendar whose working times should be deleted |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Working Times Date

**Slug:** `ETERMIN_DELETE_WORKING_TIMES_DATE`

Tool to delete working times date entries from eTermin. Use when removing working time slots by calendar or specific ID. Provide either calendarid to delete all working slots for a calendar, or id to delete a specific working time entry.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | ID of the working time that needs to be deleted |
| `calendarid` | integer | No | ID of the calendar, every working slot for specific days will be deleted |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Absences

**Slug:** `ETERMIN_GET_ABSENCES`

Tool to retrieve absences (non-working times) for a specific calendar. Use when you need to check when a calendar is unavailable for appointments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `calendarid` | integer | Yes | ID of the calendar to retrieve absences for |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Anchortime by Date

**Slug:** `ETERMIN_GET_ANCHORTIME_DATE`

Tool to retrieve anchortimes by date. Use when you need to get existing anchortimes for calendars. Anchortimes define specific time slots or blocked periods for calendar scheduling.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `calendarid` | integer | No | ID of the calendar. Use this parameter if you want to get existing anchortimes for a specific calendar. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Anchortimes

**Slug:** `ETERMIN_GET_ANCHORTIMES`

Tool to retrieve anchortime details. Use when you need to get anchortimes for calendars in your eTermin account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `calendarid` | integer | No | ID of the calendar. Use this parameter if you want to get existing anchortimes for a specific calendar. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Appointment Sync

**Slug:** `ETERMIN_GET_APPOINTMENT_SYNC`

Tool to synchronize appointments incrementally from eTermin. Use when you need to sync appointments using a sync token. For first sync, use synctoken=1. The API returns a new sync token in the response header for subsequent syncs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `synctoken` | integer | Yes | Sync token for incremental sync. Use 1 for the first sync. eTermin returns a new sync token in the response header for subsequent calls. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Bookingpage Logs

**Slug:** `ETERMIN_GET_BOOKINGPAGE_LOGS`

Tool to retrieve bookingpage request logs from eTermin. Use when you need to analyze bookingpage access patterns and requests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `datefrom` | string | Yes | Start date of the requests. Format: yyyy-mm-dd. |
| `summaryonly` | boolean | No | Set to true to only get a summary of all requests, not every single request. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Calendar Return Time

**Slug:** `ETERMIN_GET_CALENDAR_RETURN_TIME`

Tool to retrieve return times for a specific calendar. Use when you need to get the configured return time periods for a calendar.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `calendarid` | integer | Yes | ID of the calendar to retrieve return times for |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Calendars

**Slug:** `ETERMIN_GET_CALENDARS`

Tool to retrieve calendars. Use when listing all calendars in your eTermin account.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Calendar Service Assignments

**Slug:** `ETERMIN_GET_CALENDARSERVICE`

Tool to retrieve calendar service assignments. Use when you need to get services assigned to calendars in your eTermin account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `calendarid` | string | No | ID of the calendar you want the service assignments for. If not provided, retrieves service assignments for all calendars. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Company

**Slug:** `ETERMIN_GET_COMPANY`

Tool to retrieve company account details. Use when you need to get all company information from your eTermin account.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Contact By ID

**Slug:** `ETERMIN_GET_CONTACT_BY_ID`

Tool to retrieve a specific contact by ID, external ID, or email. Use when you need to get details of a single contact from eTermin. Provide at least one of: cid (internal ID), id (external UUID), or email.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | External ID (UUID) of the contact. Use this to retrieve a contact by their external identifier |
| `cid` | integer | No | Internal contact ID. Specify this to retrieve a contact by their internal identifier |
| `email` | string | No | Email address of the contact. Use this to retrieve a contact by their email |
| `creationdate` | string | No | Filter by specific creation date in ISO format (YYYY-MM-DD) |
| `creationdateall` | string | No | Filter contacts created since specified date in ISO format (YYYY-MM-DD) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Contacts

**Slug:** `ETERMIN_GET_CONTACTS`

Tool to retrieve a list of contacts. Use when you need to list all contacts in your eTermin account.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Deleted Appointments

**Slug:** `ETERMIN_GET_DELETED_APPOINTMENTS`

Tool to retrieve a list of deleted appointments from eTermin. Use when you need to track or audit deleted appointments, optionally filtered by deletion date range. Returns details including who deleted the appointment, when it was deleted, and the original appointment information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end` | string | No | End day when appointment(s) got deleted. Format: yyyy-mm-dd. Returns all appointments deleted between start and end dates |
| `start` | string | No | Start day when appointment(s) got deleted. Format: yyyy-mm-dd. Returns all appointments deleted between start and end dates |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Message Logs

**Slug:** `ETERMIN_GET_MESSAGE_LOGS`

Tool to retrieve message logs from eTermin. Use when you need to view emails and SMS that have been sent through the system. Returns details about sent messages including receiver, subject, date sent, and message type.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | ID of a messagelog entry. Returns the email text that was sent in this specific email. |
| `appid` | integer | No | Numeric appointment ID (not externalid). Returns a list of all emails and SMS sent relating to this appointment. |
| `smsonly` | boolean | No | When true, returns only the count of SMS sent this month and last month (not the actual list of SMS). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Customer Ratings

**Slug:** `ETERMIN_GET_RATING`

Tool to retrieve a list of customer ratings from eTermin. Use when you need to get feedback and ratings from customers for appointments. Returns rating details including customer feedback, rating score, and reply status.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Service By ID

**Slug:** `ETERMIN_GET_SERVICE_BY_ID`

Tool to retrieve a specific service from eTermin. Use when you need to get service details by service ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `service_id` | integer | No | The ID of the service to retrieve. Note: This parameter does not filter to a single service but is accepted by the API. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Service Calendar

**Slug:** `ETERMIN_GET_SERVICE_CALENDAR`

Tool to retrieve calendars for a specific service ID. Use when you need to find which calendars are associated with a particular service.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `serviceid` | string | Yes | ID of a service. Multiple service IDs can be separated with a comma (e.g., '45345,45346'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Service Group

**Slug:** `ETERMIN_GET_SERVICEGROUP`

Tool to retrieve service group details from eTermin. Use when you need to list service groups or get specific service group information by ID or language.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `languageid` | string | No | Language code to filter service group information (e.g., 'DE', 'EN'). If not provided, all languages are included. |
| `servicegroupid` | integer | No | ID of the specific service group to retrieve. If not provided, all service groups are returned. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Services

**Slug:** `ETERMIN_GET_SERVICES`

Tool to retrieve a list of services. Use when you need to list available services in your eTermin account.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Survey Results

**Slug:** `ETERMIN_GET_SURVEY_RESULTS`

Tool to retrieve survey results from eTermin. Use when you need to get customer feedback and survey responses. Returns survey questions, answers, timestamps, and associated calendar/employee information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date` | string | No | Date when the survey result was created (format: YYYY-MM-DD or ISO date format) |
| `appid` | integer | No | Get all survey results of the appointment with this ID (not externalid) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Timeslots

**Slug:** `ETERMIN_GET_TIMESLOTS`

Tool to retrieve available timeslots for a specific calendar on a given date. Use when you need to check booking availability for a particular calendar.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date` | string | Yes | Date to check for available timeslots in YYYY-MM-DD format |
| `calendarid` | string | Yes | ID of the calendar to check for available timeslots |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Usermapping

**Slug:** `ETERMIN_GET_USERMAPPING`

Tool to retrieve usermapping information. Use when you need to get usermapping details or validate number search values.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `searchvalue` | integer | No | Value that needs to be validated by the number search. Omit this parameter to get all usermappings. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Users

**Slug:** `ETERMIN_GET_USERS`

Tool to retrieve a list of users. Use when you need to list all users in your eTermin account.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Working Times

**Slug:** `ETERMIN_GET_WORKING_TIMES`

Tool to retrieve working times for a specific calendar. Use when confirming available time slots before booking appointments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `calendarid` | integer | Yes | Identifier of the calendar to retrieve working times for |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Working Times Date

**Slug:** `ETERMIN_GET_WORKING_TIMES_DATE`

Tool to retrieve working times for a specific calendar on a specific date. Use when checking available time slots for a particular date before booking appointments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `calendarid` | integer | Yes | Identifier of the calendar to retrieve working times for |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Appointments

**Slug:** `ETERMIN_LIST_APPOINTMENTS`

Tool to retrieve a filtered list of appointments from eTermin in a specified date range. Use when you need to search for appointments by date range, calendar, customer, or other criteria. Returns appointment details including date/time, customer info, and service information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | ID of an appointment (relates to the ExternalID) |
| `wl` | boolean | No | Set to true to get all appointments on the Waiting List |
| `cid` | integer | No | Use customer ID to see related appointments |
| `end` | string | No | End date for filtering appointments between dates (format: yyyy-mm-dd) |
| `pbl` | boolean | No | Set to true to get all appointments on the Reservation List |
| `appid` | integer | No | ID of an appointment (relates to the ID) |
| `email` | string | No | Use email address to see related appointments |
| `start` | string | No | Start date for filtering appointments between dates (format: yyyy-mm-dd) |
| `limited` | boolean | No | Reduces response information for bulk appointment queries |
| `calendarid` | string | No | IDs of the calendars to get appointments from |
| `noholidays` | boolean | No | Shows only regular appointments, excludes holidays/blocks |
| `noholidays2` | boolean | No | Shows only appointments where bookingtype is not Holiday |
| `bycreationdate` | boolean | No | Changes start/end parameters to filter by creation date instead |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Vouchers

**Slug:** `ETERMIN_LIST_VOUCHERS`

Retrieve all vouchers (discount codes) from your eTermin account. Use this tool when you need to: - View all active and expired vouchers - Check voucher usage statistics (ContingentCounter vs ContingentMax) - Find voucher codes to share with customers - Monitor voucher validity periods Returns a list of vouchers with their discount values, validity dates, and usage restrictions.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Webhooks

**Slug:** `ETERMIN_LIST_WEBHOOKS`

Tool to retrieve webhooks. Use when listing all webhooks in your eTermin account.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Service via PUT

**Slug:** `ETERMIN_PUT_SERVICE`

Tool to update a service in eTermin. Use when you need to modify service settings or configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the service to update |
| `PM0` | integer | No | Shows online payment options (1 = enabled, 0 = disabled) |
| `PM1` | integer | No | Shows on site payment options (1 = enabled, 0 = disabled) |
| `PM2` | integer | No | Shows by invoice payment options (1 = enabled, 0 = disabled) |
| `vat` | integer | No | Defines the vat rate of the service |
| `mpbs` | integer | No | Defines if the price is multiplied by the amount of booked appointments |
| `ssca` | integer | No | Defines if in the calendar selection the entry all calendars is shown (0 = no, 1 = yes) |
| `tags` | string | No | ID of the tags that the contact gets after booking |
| `image` | string | No | Image of the service |
| `price` | number | No | Price of the service |
| `rrule` | string | No | Defines the RRULE for this service |
| `infode` | string | No | Additional description of the service in german. For other languages use serviceLANGUAGECODE e.g. infoen |
| `jscode` | string | No | Used for JavaScript code that will be executed after the booking of the appointment (for example to redirect to another website) |
| `wowing` | integer | No | Set to 0 if the Wowing interface should be disabled for this service |
| `cluster` | integer | No | Defines if the cluster is applied to this service (1 = enabled, 0 = disabled) |
| `enabled` | boolean | No | Defines if the service is shown in the frontend |
| `uselogo` | boolean | No | True, if the the picture of this service should be used for the email logo |
| `currency` | string | No | Defines the currency of the service |
| `extramin` | integer | No | Defines total wrap up time |
| `feedback` | integer | No | Set to 0 if the feedback checkbox should not be shown |
| `nrappsel` | integer | No | Defines the maximum / minimum amount of appointments that MUST be selected on the booking page if multiappointment is true (in this service or globally) |
| `rangeend` | integer | No | Days range for the new appointment |
| `showindb` | boolean | No | Defines if the service is shown in the most booked area of the Dashboard |
| `appattrib` | integer | No | Defines which attribute is set automatically in appointment. Attributes are binary encoded (1st attribute = 1, 2nd = 2, 3rd = 4; 1st + 2nd = 3) |
| `appfuture` | integer | No | Time the appointment can be booked in the future in days |
| `infotxtp2` | string | No | A special placeholder %INFOTEXTP2% for page 2 of the booking page |
| `maxappsel` | integer | No | Defines the maximum amount of appointments that can be selected on the booking page if multiappointment is true (in this service or globally) |
| `mstextpos` | integer | No | Defines the position of capseltext (0 = above selection, 1 = to the right) |
| `servicede` | string | No | Name of the service in german. For other languages use serviceLANGUAGECODE e.g. serviceen |
| `showavcap` | integer | No | Defines if the available capacity is shown in time slots (0 = no, 1 = yes) |
| `sortorder` | integer | No | Defines the position in the servicegroup |
| `emailtxtde` | string | No | A special placeholder %SERVICETEXT% for emails, use other language codes to set the text (for example emailtxten for english) |
| `rangestart` | integer | No | Days after the last appoinment |
| `showcalpic` | integer | No | Defines if in the calendar picture is shown after the timeslot is selected (0 = no, 1 = yes) |
| `startedapp` | integer | No | Time the appointment can be booked if already started in minutes (has to be a negative value) |
| `tagscancel` | string | No | ID of the tags that the contact gets after cancellation of the appointment |
| `addapphours` | integer | No | Hours after the first appointment, where a second appointment is booked |
| `appdeadline` | integer | No | Time the appointment must be booked in advance in minutes |
| `bookingtype` | integer | No | Defines the bookingtype (0 = appointment, 1 = no appointment booking allowed, 2 = 'negative' appointment, 3 = reservation list, 4 = voucher sale) |
| `emailsender` | string | No | Defines the sender adress of the email for this service |
| `infodisplay` | integer | No | Defines where the information is shown (0 = below service name, 1 = informationtext page 2, 2 = summary after booking, 3 = below service name and summary after booking) |
| `maxcapacity` | number | No | Sets the maximum capacity of the service |
| `maxminslots` | boolean | No | Defines if nrappsel is maximum (0) or minimum (1) |
| `notearlyapp` | integer | No | Defines if the customer should get an email if an earlier appointment is available (0 = not active, 1 = for appointments that were cancelled online, 2 = for appointments cancelled online and manually, 3 = like 1 but per calendar, 4 = like 2 but per calendar) |
| `showcalname` | integer | No | Defines if in the calendar name is shown in the time slot (0 = no, 1 = yes) |
| `waitinglist` | integer | No | Defines if the waiting list should be available (0 = no, 1 = yes) |
| `abbreviation` | string | No | abbreviation of the service |
| `capseltextde` | string | No | Defines the text if there is a capacity selection on that service, use other language codes to set the text (for example capseltexten for english) |
| `extramintype` | integer | No | 0 if extramin should not be applied if differenttimeresource is true, 1 if extramin should be added to timeslotminutesresend |
| `limitbooking` | integer | No | Defines if this service can be booked a limited amount of times per customer (0 = no, 1 = yes) |
| `limitservice` | integer | No | Defines if the limitation only applies to this specific service |
| `priceinfopos` | integer | No | Defines where the pricesuffix is shown (0 = left side, 1 = right side) |
| `showinternal` | boolean | No | Defines if the service is shown in the backend |
| `voucherfield` | integer | No | Defines if the voucherfield is shown (0 = not shown, 1 = shown, 2 = shown and mandatory) |
| `workloadperc` | integer | No | Defines the percentage of time slots that are not shown |
| `bookingminute` | integer | No | Defines when the timeslots are shown (61 = no restrictions, 0 = every full hour, 31 = every full and half hour, 15 or 30 or 45 = x minutes after a full hour) |
| `pricesuffixde` | string | No | Additional information for the price, use other language codes to set the text (for example emailtxten for english) |
| `reminderhours` | integer | No | Defines when the first reminder is sent in hours (needs to be a negative value) |
| `canceldeadline` | integer | No | Time the appointment can be cancelled in hours |
| `capacitynonsel` | number | No | Sets the capacity if selected on the booking page (needs showcapselectionbox to be false) |
| `enablecapacity` | boolean | No | True to enable the capacity of the service |
| `hideserviceids` | string | No | Service(s) that should be hidden, if this service is selected |
| `issubscription` | boolean | No | Defines if the service is a subscription |
| `reminderhours2` | integer | No | Defines when the second reminder is sent in hours (needs to be a negative value) |
| `servicegroupid` | integer | No | ID of the service group |
| `showserviceids` | string | No | Service(s) that have to be selected to show this service |
| `timeslotformat` | integer | No | Defines how the timeslots are shown on page 2 on the bookingpage (0 = starttime - endtime, 1 = starttime, 2 = only date, 3 = calendar week, 4 = like 0 but with dates, 5 = startdate only) |
| `calcdrivingtime` | integer | No | Defines if driving time should be calculated (0 = no, 1 = yes) |
| `customerconfirm` | integer | No | Defines if the customer needs to confirm the appointment (1 = enabled, 0 = disabled; doesn't work with online payments or vendorconfirmation) |
| `infotextinslots` | boolean | No | True, if the info text should be shown in the slot text in page 2 of the booking page |
| `multiservicemax` | integer | No | Defines the maximum amount that can be choosen for multi service selection |
| `multiservicemin` | integer | No | Defines the minimum amount that can be choosen for multi service selection |
| `multiservicesel` | boolean | No | True, if the service can be booked multiple times after another. This won't work if the parameter enablecapacity is true aswell |
| `paymentduration` | integer | No | Defines the payment term for LexOffice |
| `pricediffperday` | boolean | No | Defines if different prices per weekday are applied |
| `smsconfirmation` | integer | No | Defines if a SMS confirmation is sent after booking (1 = enabled, 0 = disabled) |
| `timeslotminutes` | integer | No | Duration of the service in minutes |
| `dayselectiontype` | integer | No | Defines how page 2 shows the available days (0 = Calendar, 1 = list of days) |
| `multiappointment` | integer | No | Defines if multiple appointments can be booked in one booking (0 = no, 1 = yes) |
| `nrappseladjacent` | boolean | No | True, if the selected appointments have to be adjacent |
| `timeslotcombined` | integer | No | Defines the time of the appointment if booked with another service. differenttimecombined has to be true |
| `calendarselection` | integer | No | Defines if the calendar selection should be shown (0 = no, 1 = yes) |
| `externalreference` | string | No | Used for a tag ID or external reference after booking |
| `limitappointments` | integer | No | Defines how many appointments can be booked per customer |
| `nrtimeslotentries` | integer | No | Defines the maximum amount of time slots that are shown |
| `priceispercentage` | boolean | No | True if price is a percentage |
| `maxcapacityusersel` | number | No | Sets the maximum capacity the user can set on the booking page (needs showcapselectionbox to be true) |
| `vendorconfirmation` | integer | No | Defines if the appointment provider needs to manually confirm the appointment (0 = manually, 1 = automatically) |
| `wowingautomationid` | integer | No | Defines the Woing Automation ID |
| `appointmentlocation` | integer | No | Defines the location of the appointment |
| `customerconfirmtime` | integer | No | Time in minutes the customer has time to confirm the appointment (customerconfirm must be set to 1) |
| `showcapselectionbox` | boolean | No | True if the customer is able to select the capacity |
| `allowonlythisservice` | boolean | No | If there are multiple services with capacity available at the same time, this option prevents that they will get mixed, if set to true |
| `fillcalendarstrategy` | integer | No | Defines how the calender should be filled (0 = standard, 1 = random, 2 = round Robin, 3 = sequential, 4 = skills, 5 = strict round Robin) |
| `multiplypricewithcap` | boolean | No | Defines if the price is multiplied with the capacity |
| `nrappseladjacenttype` | integer | No | 0 = the date and time need to be adjacent, 1 = only the day need to be adjacent |
| `severalcalendarsused` | boolean | No | True, if the service can only be booked if another calendar is available |
| `differenttimecombined` | boolean | No | True, if the service has a different time if booked with another service |
| `differenttimeresource` | boolean | No | True if you want to add pre- or post processing times |
| `externalreferencedate` | string | No | ID of a field that should contain the date of the appointment |
| `limitappointmentstype` | integer | No | Defines how the appointments are limited (0 = per booking day, 1 = per week, 2 = per month, 3 = per year, 4 = per booked day) |
| `specificrangenextslot` | boolean | No | True, if the next appointment needs to be after a specific timeframe |
| `timeslotminutesresend` | integer | No | Busy until minute (use a number greater than timeslotminutes to have a post-processing time) |
| `appointmentlocationtext` | string | No | Defines the location text if appointmentlocation = 3 |
| `externalreferencecancel` | string | No | ID of a field that should contain the cancellation link of the appointment |
| `externalreferencechange` | string | No | Used for a tag ID or external reference after a change of the appointment |
| `externalreferencedelete` | string | No | Used for a tag ID or external reference after cancellation of the appointment |
| `paymentamountisabsolute` | integer | No | Defines if paymentamountpercentage is abolute or a percentage (1 = absolute, 0 = percentage) |
| `paymentamountpercentage` | integer | No | Defines the payment amount that needs to be paid at the end of booking |
| `timeslotminutesresstart` | integer | No | Busy by minute (use negative number to have a pre-processing time) |
| `externalreferencecalname` | string | No | ID of a field that should contain the calendar name of the appointment |
| `externalreferencelocation` | string | No | ID of a field that should contain the location of the appointment |
| `multiservicedurationcalcmethod` | integer | No | Defines how the duration is calculated if multiple services are selected (0 = all durations are summed up, 1 = only duration of the longest service, 2 = all durations are halfed, 3 = like 2 except the longest service) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Absence

**Slug:** `ETERMIN_UPDATE_ABSENCE`

Tool to update an absence (non-working time) for a calendar in eTermin. Use when you need to modify an existing absence's dates, reason, or settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the absence to update |
| `nwtype` | boolean | No | Indicates if the absence is dynamic |
| `reason` | string | No | Reason or note for the absence |
| `enddate` | string | No | End time of the absence. Format: yyyy-mm-dd HH:MM (e.g., 2017-10-24 18:00) |
| `startdate` | string | No | Start time of the absence. Format: yyyy-mm-dd HH:MM (e.g., 2017-10-24 18:00) |
| `dynamicdays` | integer | No | Number of days for the dynamic absence (nwtype has to be true) |
| `appcalendarid` | integer | No | ID of the calendar. Use the 'Get Calendars' action to get a list with all available calendars. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Anchortime

**Slug:** `ETERMIN_UPDATE_ANCHORTIME`

Update an existing anchortime in eTermin. Use this to modify anchortime settings such as start time, weekday, calendar assignment, or booking ignore behavior. The anchortime ID must be provided to identify which anchortime to update.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the anchortime to update. This is required to identify which anchortime to modify. |
| `weekday` | integer | No | ID of the weekday: 1 = Sunday, 2 = Monday, 3 = Tuesday, 4 = Wednesday, 5 = Thursday, 6 = Friday, 7 = Saturday. |
| `starttime` | string | No | Time of the anchor in HH:MM format (24-hour time), e.g. '17:00' or '18:00'. |
| `calendarId` | integer | No | ID of the calendar. Use the get_calendars action to get a list with all available calendars. |
| `ignoreonceappbooked` | boolean | No | If true, the anchortime will be ignored once an appointment is booked on this day. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Anchortime By Date

**Slug:** `ETERMIN_UPDATE_ANCHORTIME_BY_DATE`

Tool to update anchortimes by date in eTermin. Use when you need to modify an existing anchortime's schedule. Anchortimes define recurring time slots for appointments on specific dates.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the anchortime to update. |
| `reason` | string | No | Reason why this anchortime is created or updated. |
| `startdate` | string | Yes | Date and time of the anchortime. Format: yyyy-mm-dd HH:MM e.g. 2017-10-24 18:00 |
| `calendarid` | integer | Yes | ID of the calendar. Use the 'Calendar - Get calendar details' function to get a list with all available calendars. |
| `ignoreonceappbooked` | boolean | Yes | If true, the anchortime will be ignored once an appointment is booked this day. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Appointment

**Slug:** `ETERMIN_UPDATE_APPOINTMENT`

Tool to update an existing appointment in eTermin. Use when you need to modify appointment details such as date/time, customer information, or service details. Only the appointment ID is required; provide only the fields you want to update.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID of the appointment that you want to modify |
| `end` | string | No | End date and time of the appointment. Format: yyyy-mm-dd HH:MM (e.g., 2017-10-24 19:00) |
| `vat` | integer | No | VAT multiplied by 100 (e.g., 3.00€ = 300) |
| `zip` | string | No | Zip code |
| `city` | string | No | City |
| `sync` | boolean | No | True if the appointment should be synchronized with external calendars (1 = yes, 0 = no) |
| `email` | string | No | E-Mail of the person |
| `notes` | string | No | Appointment notes |
| `phone` | string | No | Phone of the person |
| `start` | string | No | Start date and time of the appointment. Format: yyyy-mm-dd HH:MM (e.g., 2017-10-24 18:00) |
| `title` | string | No | Title of the person |
| `street` | string | No | Street |
| `msgtype` | boolean | No | ID of the template that is sent to the customer with the API call |
| `capacity` | integer | No | Defines the capacity of the appointment |
| `lastname` | string | No | Lastname of the person |
| `location` | string | No | Location of the appointment |
| `pricenet` | integer | No | Price excluding VAT multiplied by 100 (e.g., 18.50€ = 1850) |
| `services` | string | No | ID of the service. Use the 'Get Services' action to get a list with all available services. To use multiple services use a comma (,) to separate the IDs |
| `firstname` | string | No | Firstname of the person |
| `sendemail` | boolean | No | Send a confirmation email to the address that was specified in the email parameter (1 = yes, 0 = no) |
| `calendarid` | integer | No | ID of the calendar |
| `pricegross` | integer | No | Price including VAT multiplied by 100 (e.g., 18.50€ = 1850) |
| `salutation` | string | No | Salutation of the person |
| `additional1` | string | No | Additional appointment field 1 |
| `additional2` | string | No | Additional appointment field 2 |
| `additional3` | string | No | Additional appointment field 3 |
| `additional4` | string | No | Additional appointment field 4 |
| `additional5` | string | No | Additional appointment field 5 |
| `additional6` | string | No | Additional appointment field 6 |
| `additional7` | string | No | Additional appointment field 7 |
| `additional8` | string | No | Additional appointment field 8 |
| `additional9` | string | No | Additional appointment field 9 |
| `servicesabb` | string | No | Abbreviation of the services |
| `additional10` | string | No | Additional appointment field 10 |
| `additional11` | string | No | Additional appointment field 11 |
| `additional12` | string | No | Additional appointment field 12 |
| `additional13` | string | No | Additional appointment field 13 |
| `additional14` | string | No | Additional appointment field 14 |
| `additional15` | string | No | Additional appointment field 15 |
| `additional16` | string | No | Additional appointment field 16 |
| `additional17` | string | No | Additional appointment field 17 |
| `additional18` | string | No | Additional appointment field 18 |
| `additional19` | string | No | Additional appointment field 19 |
| `additional20` | string | No | Additional appointment field 20 |
| `calendarname` | string | No | Name of the calendar (needed for Webpush) |
| `servicestext` | string | No | Name of the services |
| `canceldeadline` | integer | No | Minutes how long before the startdate the appointment can be cancelled |
| `customernumber` | string | No | ID of the person that booked appointment |
| `recurrencerule` | string | No | Recurrence rule (e.g., DTSTART:20171126T083000Z DTEND:20181126T090000Z RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=WE;) |
| `manualconfirmed` | integer | No | Set to 0 to have the appointment manually confirmed by the appointment provider, set to 1 if the appointment got confirmed |
| `notificationmsg` | boolean | No | Send an information email to the appointment provider (1 = yes, 0 = no) |
| `linkedappidmanual` | integer | No | AppID of the linked app if the calendar linking should be applied after two appointments are booked. Keep in mind to update the second appointment as well |
| `servicesinclsgtext` | string | No | Name of the services including the service groups |
| `appointmentreminderhours` | integer | No | Defines when the first reminder is sent in hours (needs to be a negative value) |
| `appointmentreminderhours2` | integer | No | Defines when the second reminder is sent in hours (needs to be a negative value) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Calendar

**Slug:** `ETERMIN_UPDATE_CALENDAR`

Update an existing calendar in eTermin. Use this tool to modify calendar settings such as name, description, capacity settings, and other configuration options. You must provide the calendar_id obtained from the get_calendars action. The eTermin API uses PUT /api/calendar with form-urlencoded data, where the calendar to update is specified by the 'id' parameter.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `enabled` | boolean | No | Whether the calendar is enabled for bookings. |
| `calendarId` | string | Yes | The unique identifier of the calendar to update. Obtain from get_calendars action. |
| `maxCapacity` | integer | No | Maximum capacity when capacity is enabled. |
| `minCapacity` | integer | No | Minimum capacity when capacity is enabled. |
| `calendarName` | string | No | New name for the calendar. |
| `descriptionDE` | string | No | German description of the calendar. |
| `descriptionEN` | string | No | English description of the calendar. |
| `enableCapacity` | boolean | No | Enable capacity limits for concurrent appointments. |
| `timeSlotMinutes` | integer | No | Time slot interval in minutes. |
| `externalReference` | string | No | External reference identifier for the calendar. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Calendar Return Time

**Slug:** `ETERMIN_UPDATE_CALENDAR_RETURN_TIME`

Tool to update a return time for a calendar in eTermin. Use when modifying existing return time settings such as start time, end time, weekday, or overnight settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the return time to update |
| `newday` | boolean | No | If true, the return time will end on the next day. Use this for return times that span midnight. |
| `endtime` | string | No | End time of the return time. Format: HH:MM (e.g., 18:00) |
| `starttime` | string | No | Start time of the return time. Format: HH:MM (e.g., 10:00) |
| `calendarid` | integer | No | ID of the calendar. Use the Get Calendars action to get a list of available calendars. |
| `weekdayidx` | integer | No | ID of the weekday: 1=Sunday, 2=Monday, 3=Tuesday, 4=Wednesday, 5=Thursday, 6=Friday, 7=Saturday |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Contact

**Slug:** `ETERMIN_UPDATE_CONTACT`

Tool to update an existing contact in eTermin. Use when you need to modify contact details by ID after confirming it exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | No | Updated email address of the contact |
| `lastname` | string | No | Updated last name of the contact |
| `firstname` | string | No | Updated first name of the contact |
| `contact_id` | integer | Yes | Unique identifier of the contact to update |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Resource

**Slug:** `ETERMIN_UPDATE_RESOURCE`

Update an existing eTermin resource (contact, service, calendar, user, or voucher). The eTermin API requires PUT requests to the collection endpoint with form-urlencoded data including the resource ID in the body. ID field names by resource type: - contact: 'cid' - service: 'id' - calendar: 'id' - user: 'id' - voucher: 'id'

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Fields to update on the resource. Field names should match the eTermin API schema (e.g., 'FirstName', 'LastName' for contacts; 'ServiceEN', 'TimeSlotMinutes' for services; 'CalendarName' for calendars). Do NOT include the ID field here - it will be added automatically. |
| `resource` | string | Yes | The eTermin resource type to update. Supported types: 'contact', 'service', 'calendar', 'user', 'voucher'. |
| `resourceId` | string | Yes | The unique identifier of the resource to update. For contacts use the 'cid' value, for services/calendars use the 'id' or resource-specific ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Service

**Slug:** `ETERMIN_UPDATE_SERVICE`

Tool to update an existing service. Use when you need to modify service details after confirming the service ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New name of the service (sets both German and English names). |
| `price` | number | No | New price of the service, must be non-negative. |
| `duration` | integer | No | New duration of the service in minutes (timeslotminutes), must be at least 1. |
| `service_id` | string | Yes | Unique identifier (id) of the service to update. |
| `description` | string | No | New description of the service (sets both German and English info text). |
| `servicegroupid` | integer | No | ID of the service group this service belongs to. Required by the eTermin API. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Service Group

**Slug:** `ETERMIN_UPDATE_SERVICE_GROUP`

Tool to update an existing service group in eTermin. Use when you need to modify service group properties such as name, display settings, or selection behavior.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `regex` | string | No | Is a validation rule. Can be used if you want to have your location written in a certain way (servicegrouptype has to be 5) |
| `enabled` | boolean | No | False if the service group should not appear on the bookingpage (only via direct link or for internal services) |
| `pageidx` | integer | No | If set to 1 the service group will be shown on a second service selection page. Default value is 0 |
| `collapse` | boolean | No | True if the service group is shown collapsed as default (need showtoggle to be true) |
| `showprice` | boolean | No | Defines if the price of the service is shown |
| `errormsgde` | string | No | Error message, if the regex isn't valid or a wrong number on the number search is used. For other languages use errormsgLANGUAGECODE e.g. errormsgen (servicegrouptype has to be 5 or 9) |
| `isoptional` | boolean | No | Defines if a selection of a service is mandatory |
| `showtoggle` | boolean | No | True if the service group can be collapsed |
| `selminprice` | integer | No | The price of every minute selection interval (servicegrouptype has to be 10) |
| `showimgfull` | boolean | No | True if the picture of the service should be shown as big as possible |
| `displayindex` | integer | Yes | Index in which order the service group should be shown. |
| `showduration` | boolean | No | Defines if the duration of the service is shown |
| `showinsummary` | boolean | No | False if the selected service should not appear in the summary box |
| `selminduration` | integer | No | The interval of minutes you can switch up or down with the minute selection (servicegrouptype has to be 10) |
| `servicegroupde` | string | No | Name of the service group in German. For other languages use servicegroupLANGUAGECODE e.g. servicegroupen |
| `servicegroupid` | integer | Yes | ID of the service group that gets updated. |
| `answerselection` | integer | No | Selection type for services (0 = Single selection; 1 = Multi selection; 2 = list selection). Has to be -1 if servicegrouptype is not 0! |
| `answersortorder` | integer | No | Defines in which order the services are shown (0 = according to position in service; 1 = Ascending by name; 2 = Descending by name) |
| `additionaltextde` | string | No | Additional information of the service group in German. For other languages use additionaltextLANGUAGECODE e.g. additionaltexten |
| `nrservicecolumns` | integer | No | Defines how many columns the services should be displayed in |
| `servicegrouptype` | integer | No | Defines the service group type (0 = Service selection; 2 = Text field; 5 = location selection; 8 = Day amount selection; 9 = Number search; 10 = Minutes amount selection) |
| `countrylimitation` | string | No | Language codes that are supported by the location lookup (servicegrouptype has to be 5) |
| `addtextdisplaymode` | integer | No | Defines the location of the additional text (0 = via Tooltip; 1 = under the name of the service group) |
| `showinemailsummary` | boolean | No | False if the selected service should not appear in the summary of the emails |
| `showwhencertainanswerselected` | string | No | List of services that have to be selected to show this service group. Set to -1 if the service group should be shown initially |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Synchronised Appointment

**Slug:** `ETERMIN_UPDATE_SYNC_APPOINTMENT`

Tool to update a synchronised appointment in eTermin. Use when you need to modify an existing synced appointment with updated date/time, location, or other details. Requires the appointment ID (ExternalID) and updated date/time in both local and UTC formats.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end` | string | Yes | End date and time of the appointment in local timezone. Format: yyyy-mm-dd HH:MM (e.g., 2026-03-01 12:00) |
| `email` | string | No | Email address for the appointment participant |
| `start` | string | Yes | Start date and time of the appointment in local timezone. Format: yyyy-mm-dd HH:MM (e.g., 2026-03-01 11:00) |
| `endutc` | string | Yes | End date and time of the appointment in UTC. Format: yyyy-mm-dd HH:MM (e.g., 2026-03-01 11:00) |
| `summary` | string | Yes | Title or subject of the appointment |
| `location` | string | No | Physical location of the appointment |
| `sequence` | string | No | Sequence number of the recurring appointment. Leave empty if not a recurring appointment |
| `startutc` | string | Yes | Start date and time of the appointment in UTC. Format: yyyy-mm-dd HH:MM (e.g., 2026-03-01 10:00) |
| `calendarid` | integer | Yes | ID of the calendar where the appointment is located |
| `description` | string | Yes | Body text or detailed description of the appointment |
| `appointmentid` | string | Yes | ID of the appointment to update (ExternalID in UUID format) |
| `recurrencerule` | string | No | Recurrence rule for recurring appointments (e.g., RRULE format) |
| `recurrenceparentid` | string | No | ID of the parent recurring appointment if this is part of a recurring series |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Usermapping

**Slug:** `ETERMIN_UPDATE_USERMAPPING`

Update an existing usermapping in eTermin. Use this when you need to modify usermapping search criteria, calendar assignments, or service group mappings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the usermapping to update. Obtain from list usermappings endpoint. |
| `value` | integer | No | Value to match when valuetype is 0 (equals), 2 (last 2 digits), or 3 (last 3 digits). Required unless valuetype is 1. |
| `valueto` | integer | No | Last number in range when valuetype is 1 (from-to). Required when valuetype is 1. |
| `valuefrom` | integer | No | First number in range when valuetype is 1 (from-to). Required when valuetype is 1. |
| `valuetype` | string ("0" | "1" | "2" | "3") | Yes | Type of number search: '0' for exact match, '1' for range, '2' for last 2 digits, '3' for last 3 digits. |
| `calendarid` | string | No | Comma-separated list of calendar IDs that work with this search value. Default is -1 for all calendars. |
| `servicegroupid` | string | No | Comma-separated list of service group IDs that work with this search value. Default is -1 for all service groups. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Voucher

**Slug:** `ETERMIN_UPDATE_VOUCHER`

Updates an existing voucher in eTermin. Use this to modify voucher properties such as description, discount amount, validity dates, or usage limits. The voucher must already exist - use ETERMIN_CREATE_VOUCHER to create new vouchers.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Dictionary containing fields to update. Supported fields include: Description (text), PriceWoVAT (float), PriceInclVAT (float), ContingentMax (int), ValidFrom (YYYY-MM-DD), ValidUntil (YYYY-MM-DD), IsPercentage (bool), validxtimes (int), CalendarsAssigned (comma-separated IDs), ServicesAssigned (comma-separated IDs), CustomerEMail (string), SendReminder (bool). |
| `voucherId` | string | Yes | Identifier of the voucher to update. Can be either the voucher code (string, e.g., 'SUMMER2024') or the internal numeric ID (iid). Use ETERMIN_LIST_VOUCHERS to find existing voucher IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Webhook

**Slug:** `ETERMIN_UPDATE_WEBHOOK`

Update an existing webhook configuration in eTermin. Use this action to modify webhook settings such as the notification email, enable/disable web push notifications, or update the webhook endpoint URL. Note: eTermin webhook management is often only available through the web UI (Configuration -> Integration - API -> API tab). If the API does not support updates for your tenant, this action will return success=False with an informative message. Prerequisites: Use 'List Webhooks' to obtain a valid webhook_id.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Payload containing webhook fields to update. Common fields include: 'Email' (notification email), 'WebPush' (boolean to enable/disable), 'url' (webhook endpoint URL), 'events' (list of event types like 'appointment.created', 'appointment.modified', 'appointment.deleted'). |
| `webhookId` | string | Yes | Unique identifier (UUID) of the webhook to update. Obtain this ID from the 'List Webhooks' action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Working Times

**Slug:** `ETERMIN_UPDATE_WORKING_TIMES`

Tool to update working times for a calendar in eTermin. Use when you need to modify existing working time slots, including their start/end times, weekdays, capacity limits, and other scheduling configurations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the working time that needs to be changed |
| `end` | string | No | End time of the slot in HH:MM format, e.g. 17:00 |
| `start` | string | No | Start time of the slot in HH:MM format, e.g. 09:00 |
| `enable` | integer | No | Set to 0 if the time slot should exist but not being considered yet. Set to 1 to enable the time slot. |
| `nrapps` | integer | No | Amount of appointments that are bookable in this working slot. Use -1 for unlimited appointments. |
| `weekday` | string | No | ID of the weekday where 1 = Sunday, 7 = Saturday. You can add several weekdays separated by a comma e.g. 2,3,5 |
| `slottype` | string ("internal_and_external" | "internal_only") | No | Enum for slot type values. |
| `weektype` | string ("every_week" | "odd_weeks" | "even_weeks" | "first_occurrence" | "second_occurrence" | "third_occurrence" | "fourth_occurrence" | "every_3_weeks_first" | "every_3_weeks_second" | "every_3_weeks_third" | "fifth_occurrence" | "every_4_weeks_first" | "every_4_weeks_second" | "every_4_weeks_third" | "every_4_weeks_fourth") | No | Enum for week type intervals.  Defines in which interval the time slot should be shown. |
| `calendarid` | integer | No | ID of the calendar |
| `locationid` | integer | No | ID of the location for this working slot if locations are used in working times |
| `calendarintervalid` | integer | No | ID of the period for this working slot if periods are used in working times |
| `validwithserviceid` | string | No | Comma-separated list of service IDs that work with this working slot |
| `allserviceidsrequired` | string ("one_required" | "all_exclusive" | "all_required" | "one_exclusive") | No | Enum for service validation mode.  Defines how the validity of services are checked: - ONE_REQUIRED: One service needs to be selected - ALL_EXCLUSIVE: All services need to be selected exclusively - ALL_REQUIRED: All services need to be selected - ONE_EXCLUSIVE: One service needs to be selected exclusively |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Working Times Date

**Slug:** `ETERMIN_UPDATE_WORKING_TIMES_DATE`

Tool to update working times date for a calendar. Use when modifying existing working time slots for appointments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the working time that needs to be changed |
| `end` | string | Yes | End date/time of working time in format YYYY-MM-DD HH:MM |
| `start` | string | Yes | Start date/time of working time in format YYYY-MM-DD HH:MM |
| `nrapps` | integer | No | Amount of appointments that are bookable in this working slot. (-1 = unlimited) |
| `oneoff` | boolean | No | True if this timeslot needs a specific link (requires exactly one service for the validwithserviceid parameter) |
| `reason` | string | No | Reason of the specific working time (this is only visible internally) |
| `slottype` | integer | No | 0 if time slots should be valid for internal and external (online booked) appointments. 1 if timeslots are only valid for internal (manually entered) appointments |
| `calendarid` | integer | Yes | ID of the calendar |
| `locationid` | integer | No | ID of the location for this working slot if locations are used in working times |
| `oneoffcode` | string | No | Specific code that is used for the oneoff-link if oneoff is true |
| `waitinglist` | boolean | No | True if this timeslot should be filled with appointments from the waitinglist |
| `overwriteday` | boolean | No | True if the workingtime for this day should be disabled |
| `validwithserviceid` | string | No | List of services that work with this working slot |
| `allserviceidsrequired` | integer | No | Defines how the validity of the services are checked. 0 = one service needs to be selected, 1 = all services need to be selected exclusively, 2 = all services need to be selected, 3 = one service needs to be selected exclusively |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
