Added

OnSched 3.11.0 - appointment padding and reschedule history

API

  • Preview the same padding you will book: Authenticated GET /v3/availability accepts overridePadding in whole minutes. Pass the same query parameter to POST /v3/appointment, /hold, or /reserve to store it on the appointment.
  • Override one appointment without changing the Service: Authenticated appointment responses include nullable overridePadding. 0 disables padding; null means the Service padding applies.
  • Change padding safely: PUT /v3/appointment/{id} and /reschedule accept overridePadding. Increasing effective padding revalidates the slot and rolls back on conflict; decreasing it applies without slot validation. Changes are allowed for IN, RS, and BK appointments, but rejected for CN and RE records.
  • Public booking remains unchanged: Public availability and appointment mutation routes ignore overridePadding, including malformed values, and public mutation responses do not expose the protected field.
  • Operational evidence and side effects: Normal PUT /v3/appointment/{id} padding changes clear affected availability caches after commit and add update_padding audit rows; reschedules keep their existing reschedule audit type. Padding-only updates do not emit lifecycle notifications or webhooks. Existing separate Google or Outlook padding events are refreshed best-effort without replacing the main appointment event.
  • Reschedule predecessor id: After PUT /v3/appointment/{id}/reschedule, the new appointment includes rescheduledFromAppointmentId pointing at the row left in RE status. A booking that was never created by a reschedule has null. The pointer stays if that successor is later rescheduled again or cancelled. Holds and reserved appointments get the same field. See Appointments Guide.
  • No backfill: Appointments created before this release stay null. The field is read-only; sending it on create, update, book, reschedule, cancel, or confirm returns 400.
  • Public responses unchanged: GET /v3/public/appointment/{id} still returns only id and bookedBy.
  • Audit trail of ids: GET /v3/appointment/{id}/audit adds rescheduleFromTrail (nearest predecessor first) and rescheduleFromTrailTruncated. Event data stays scoped to the path appointment. See Appointment Audit Events.

See Availability, Appointment Guide, and Appointment Audit Events.

Dashboard

  • Appointment detail: When a booking has a predecessor, the edit panel shows that id. Click it to open that appointment.