Update member scheduled actions
PUT /api/members/{memberId}/scheduled-actions
- Products: Operator (
FOH) - Features: Front of House Generic Access (
FOHGENERIC)
Overview
Reschedules or retargets existing scheduled actions — the future-dated changes that move a member to a different price level, status or site on a given day.
You can only change when an action happens and what it moves the member to. The action's type is fixed when the action is created and cannot be changed here, so an action that changes status will always change status. Retrieve the actions you can update, with their ids and types, from Get member future scheduled actions.
Only the actions you list are touched — actions you omit are left scheduled as they are. Within each entry, however, both fields are written unconditionally, so send actionDate and actionTypeSelection on every entry even when only one is changing.
The whole array is validated before anything is written, and a single bad entry rejects the request with 400 and a message listing the offending ids or dates. Two rules catch people out: every actionDate must be in the future at the moment the request is processed, and a member cannot end up with two actions of the same type on the same calendar day — including a clash with an existing action you did not send.
The member id in the route must match the member id in your access token. Unlike most member endpoints, linked members are not accepted here.
Endpoint
PUT {base_url}/api/members/{memberId}/scheduled-actions
{base_url} is the environment URL issued to your integration. See Authenticating with Gladstone APIs.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
memberId | integer (int32) | Yes | The member whose scheduled actions are updated. Must match the member id in your access token exactly. Every action id you send must already belong to this member, or the request is rejected with 400. |
Request body
The body is a JSON array; send one entry per action you are changing.
| Field | Type | Required | Description |
|---|---|---|---|
[].id | integer (int32) | Yes | The id of the scheduled action to change, from Get member future scheduled actions. Each id may appear only once per request, must exist, and must belong to {memberId}. |
[].actionDate | string (date-time) | Yes | The UTC date and time the action should now take effect. Must be strictly in the future — a date equal to or earlier than the moment the request is processed is rejected, so avoid scheduling for "now". Only the date part is used when checking for clashes with other actions. |
[].actionTypeSelection | string | Yes | What the member is moved to, interpreted according to the action's existing type: a price level id for a PriceLevel action, a status id for a Status action, or a site id for a Site action. The value must exist as that kind of record, and the action's type cannot be changed, so check the type on the action before choosing a value. |
Sample request
curl -X PUT '{base_url}/api/members/{memberId}/scheduled-actions' \
-H 'Authorization: Bearer {accessToken}' \
-H 'X-Use-SSO: true' \
-H 'Content-Type: application/json' \
-d '[
{
"id": 12345,
"actionDate": "2026-08-14T19:00:00Z",
"actionTypeSelection": "string"
}
]'Errors
A successful call returns 204 No Content. Validation is all-or-nothing: if any entry fails, no entry is written.
| Status | Meaning | When |
|---|---|---|
400 | Bad request | An actionDate is not in the future: The following actionDates are in the past, : {dates}. All actionDates must be in the future. |
400 | Bad request | The same id appears twice: The following actionIds are duplicated in the request : {ids}. Each actionId should only appear once in the request. |
400 | Bad request | An id does not exist: The following Scheduled Actions could not be found, actionIds : {ids}. |
400 | Bad request | An id belongs to a different member: The following Scheduled Actions do not belong to memberId : {memberId}, actionIds : {ids}. All Scheduled Actions must belong to the specified Member. |
400 | Bad request | actionTypeSelection is not valid for the action's type: PriceLevelId : {value} could not be found. …, StatusId : {value} could not be found. … or SiteId : {value} could not be found. … |
400 | Bad request | The result would put two actions of the same type on one day: The request would result in duplicate actionTypes on the following actionDates : {dates}. Each actionDate can only contain one action per actionType. |
404 | Not found | No member exists with that id: MemberId : {memberId} could not be found |
500 | Internal server error | The update could not be saved, or another unexpected server-side failure occurred. No detail is returned in the body. |