tickets/update-ticket changes a ticket in place: name, description, price, sale window, and capacity if you pass it.
A ticket cannot be moved to a different post. That is not a limitation of this ability — attendee records point at both, and moving one would orphan them.
At a glance
| Ability | tickets/update-ticket |
| Toolset | Event Tickets — toolset/event-tickets |
| Group | Event Tickets › Tickets |
| Requires | Event Tickets, active on the site |
| Capability | manage_options |
| Safety | Writes data |
| Repeatable | Idempotent — running it twice leaves the same result |
| Ships in | AcrossAI Abilities Manager 0.0.34 and later |
Why capacity does not go through post meta
Capacity in Event Tickets is stock plus what has already left it. Set the meta directly to 100 on a ticket that has sold 30, and the plugin now believes 130 seats exist — every sale is counted twice and the event oversells.
Passing capacity here routes through the plugin’s own handling, which subtracts sold and pending from the new number. That reconciliation is the whole reason this ability exists rather than a meta write.
For capacity on its own, tickets/set-ticket-capacity is the narrower tool and reads the result back to confirm it took.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
ticket_id | integer | Yes | The ticket ID. |
name | string | No | The ticket name shown to buyers. |
description | string | No | Ticket description. |
price | string | No | Price. Use "0" for a free ticket. |
capacity | integer | No | How many can be sold. Use -1 for unlimited. Reconciled against what is already sold and pending. |
capacity_mode | string | No | own keeps independent stock; global draws from the event pool; capped draws from the pool up to a limit; unlimited has no cap. |
shared_cap | integer | No | The limit when the mode is capped. |
start_date | string | No | When the ticket goes on sale. |
end_date | string | No | When sales close. |
provider | string | No | Provider class. Omit to leave unchanged. |
What comes back
| Name | Type | What it is |
|---|---|---|
ticket | object | The ticket after the write, read back from the plugin. |
success | boolean | Whether the call completed. |
message | string | A one-line summary of what happened, suitable for showing a human. |
error_code | string | Present only on failure — a stable machine-readable reason, such as a missing field, a wrong field type or an unmet confirmation. |
Example
Ask your assistant:
Drop the early-bird ticket to £20 and close sales a week earlier.
It resolves to one call:
{
"ability": "tickets/update-ticket",
"parameters": {
"ticket_id": 980,
"price": "20",
"end_date": "2026-11-24"
}
}Worth knowing
- Idempotent — sending the same values twice leaves the same ticket.
- Changing the price does not change what past buyers paid, but it does change the estimate in
tickets/get-sales-summary. - A ticket cannot change post. Create a new one on the right post instead.
Related abilities
- Get Ticket — read the current values first
- Set Ticket Capacity — capacity on its own
- Get Sales Summary — what a price change affects
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category