Antylogic
DemoApp login

399 operational guides

Docs sections
DocsServices calendar
Device

Update Service

Update an existing non-recurring service from the Services calendar. One save updates the service event, public or internal visibility, capacity references, required role counts, and staff schedule child events as one service bundle.

In this article

Use this guide when a Harbor Soho manager needs to adjust a service such as Soho lunch service. Antylogic opens the event from the Services calendar, loads the full service bundle, and keeps service details, role requirements, and staff schedules together.

The flow is guarded before save. Started services are read-only, recurring services are diverted to the recurring update flow, and active reservations can block changes that would make the service window or visibility invalid.

Before you start

  • You are signed in to Harbor Demo Group and working in Harbor Soho.
  • You have service:view and service:manage access for the location.
  • You have staff-schedule:view access, and staff-schedule:manage access when changing assigned staff schedules.
  • The service exists in the selected location and its event kind is service.
  • The service has not started. The current GB SERVICE_EVENT_ID is Soho lunch service, which started on 2026-06-23 at 12:30 UTC, so it demonstrates the started-service lock but not a successful save.
  • For a public service, a layout and catalogue such as Demo floor plan 1 and Soho Menu are available. Internal services can omit those capacity references.

Instructions

  1. 1.

    Open the service editor

    Open the Services calendar in week mode and select the service to edit. The app opens the service edit route and loads the full service bundle before the form becomes usable.

  2. 2.

    Review service details

    Use the Info tab to review the title, start and end time, visibility, layout, catalogue, and optional optimisation configuration. The form requires a title and a valid time range where start is before end.

  3. 3.

    Set visibility

    Keep visibility Public when guests can book the service and the service should keep layout, catalogue, and optional optimisation references. Switch to Internal when the service is only a planning block; the app clears and hides public booking capacity fields before saving.

  4. 4.

    Update required roles

    Use Required roles to set the minimum and recommended staff counts for each role, such as floor, kitchen, or bar coverage for a lunch service.

  5. 5.

    Update staff schedules

    Use Staff to add, change, or remove staff schedule child events for the service, such as assigning Olivia Hart or Mason Reed. These schedules are managed through the service bundle instead of standalone calendar edits.

  6. 6.

    Save the bundle

    Select Save. For a future non-recurring service, Antylogic sends the service bundle update, refreshes calendar and occurrence data, displays any operation warnings, and returns to the calendar.

Validations and limits

  • The selected organisation, location, and event ID must be present.
  • The event must belong to the selected location and the existing kind must be service.
  • A service whose start time has passed is locked for editing; Save and Delete are disabled and the backend rejects the update with error.calendar.service.started_locked.
  • Public services require layout_id and catalog_id. Internal services can omit them and are not public booking services.
  • optimization_config_id is optional, must be valid when present, and requires reservation-automatic:use access.
  • Each required-role row must include a staff_role_id, cannot duplicate another role in the same bundle, and must use positive counts.
  • Each staff schedule must use kind staff_schedule and include staff_id, role_id, parent_event_id, time_mode, and a valid absolute or relative time range.
  • Changing a public service with active reservations to Internal is rejected with error.calendar.service.reservations_internal.
  • Changing the service window in a way that places active reservations outside the new range is rejected with error.calendar.service.reservations_range.
  • Recurring services open the recurring-scope modal instead of using the direct services.update save in the app flow.

Expected result

A future non-recurring service is updated transactionally as one service bundle. The parent service event, required roles, and staff schedule child events are saved together, and the calendar returns with fresh occurrence data and any operation warnings.