Skip to content

Cancel Appointment

Cancels an existing appointment. The appointment remains in the database and is marked with deleted: true.

Request

POST /api/oauth/v2/resource/appointments/{uuid}/cancel

HeaderValue
AuthorizationBearer {access_token}
Content-Typeapplication/json

Required scope: appointments. For course appointments additionally customers.

URL parameters

ParameterTypeRequiredDescription
uuidstring (UUID)YesUUID of the appointment to cancel

Request body

json
{
  "reason": "Kunde hat abgesagt",
  "notify": false
}

Request fields

FieldTypeRequiredDescription
reasonstringNoCancellation reason
notifybooleanNoControl notification. Default: false for past appointments, otherwise according to company settings.

Response

Success (200 OK)

json
{
  "data": {
    "id": "d4e5f6a7-b8c9-0123-defa-123456789012",
    "title": "Erstordination – Anna Muster",
    "start": "2026-04-02T09:00:00+02:00",
    "end": "2026-04-02T10:00:00+02:00",
    "allDay": false,
    "status": "active",
    "type": "customer",
    "note": "Bitte nüchtern erscheinen",
    "customer": {
      "id": "e5f6a7b8-c9d0-1234-efab-234567890123",
      "firstName": "Anna",
      "lastName": "Muster"
    },
    "service": {
      "id": "c3d4e5f6-a7b8-9012-cdef-012345678901",
      "name": "Erstordination"
    },
    "course": null,
    "source": "oauth",
    "deleted": true,
    "deletedAt": "2026-04-01T15:00:00+02:00",
    "stornoReason": "Kunde hat abgesagt",
    "createdAt": "2026-04-01T14:23:00+02:00",
    "updatedAt": "2026-04-01T15:00:00+02:00"
  }
}

Response fields

FieldTypeDescription
data.idstring (UUID)Unique appointment ID
data.titlestringAppointment title
data.startstring (ISO 8601)Start time
data.endstring (ISO 8601)End time
data.allDaybooleanAll-day appointment
data.statusstringAppointment status (active or request)
data.typestringAppointment type (e.g. customer)
data.notestring | nullInternal note for the appointment
data.customerobject | nullLinked customer
data.customer.idstring (UUID)Customer ID
data.customer.firstNamestringFirst name
data.customer.lastNamestringLast name
data.serviceobject | nullBooked service
data.service.idstring (UUID)Service ID
data.service.namestringName of the service
data.courseobject | nullLinked course (if appointment is a course appointment)
data.sourcestringBooking source (e.g. oauth)
data.deletedbooleantrue — appointment has been cancelled
data.deletedAtstring (ISO 8601)Time of cancellation
data.stornoReasonstring | nullCancellation reason, null if no reason given
data.createdAtstring (ISO 8601)Creation time
data.updatedAtstring (ISO 8601)Last modification time
Beispiele
bash
curl -X POST "https://my.offisy.at/api/oauth/v2/resource/appointments/b2c3d4e5-f6a7-8901-bcde-f01234567890/cancel" \
  -H "Authorization: Bearer {access_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "beispiel",
    "notify": "beispiel"
  }'
Parameter
Zuerst Token anfordern

Possible errors

StatusCodeDescription
401invalid_clientInvalid or missing access token
403insufficient_scopeScope appointments missing; or course appointment without scope customers
404not_foundAppointment not found or belongs to a different tenant
422unprocessable_entityAppointment is already cancelled or this appointment type cannot be cancelled

Offisy GmbH