Event Tickets has no trash for tickets. This removes one permanently.
It does one thoughtful thing on the way out: the ticket name is stamped onto everyone who already bought one, so an attendee record still says what they hold rather than pointing at nothing.
Before you run it
Permanent, with no trash and no undo, and the call refuses without confirm: true. Existing attendees keep a record naming a ticket that no longer exists — which is the best available outcome, not a good one. The response reports how many people that affected.
At a glance
| Ability | tickets/delete-ticket |
| Toolset | Event Tickets — toolset/event-tickets |
| Group | Event Tickets › Tickets |
| Requires | Event Tickets, active on the site |
| Capability | manage_options |
| Safety | Destructive — deletes stored values, and refuses to run without confirm: true |
| Repeatable | Not idempotent — each call changes the row set, so re-running is not a no-op |
| Ships in | AcrossAI Abilities Manager 0.0.34 and later |
How it works
The confirmation gate runs before anything is touched, so a refused call leaves the ticket and its buyers alone.
Read attendees_affected in the response. If it is non-zero, real people hold that ticket and someone should know — deleting a sold ticket is a customer-service event, not a tidy-up.
Where the goal is to stop sales rather than erase the ticket, closing the sale window with tickets/update-ticket does that without touching anybody’s record.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
ticket_id | integer | Yes | The ticket ID. |
confirm | boolean | Yes — must be true | The irreversibility gate. Without it the call is refused before anything is touched. |
What comes back
| Name | Type | What it is |
|---|---|---|
ticket_id | integer | The ticket that was deleted. |
deleted | boolean | Whether it was removed. |
attendees_affected | integer | How many people already held this ticket. |
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:
Delete the test ticket I created on this event — nobody bought one.
It resolves to one call:
{
"ability": "tickets/delete-ticket",
"parameters": {
"ticket_id": 981,
"confirm": true
}
}Worth knowing
- No trash, no undo. Check attendee counts before running it.
- To stop sales without deleting, set
end_dateto the past instead. - Not idempotent — a second call finds nothing to delete.
Related abilities
- Update Ticket — close sales instead of deleting
- List Attendees — who holds this ticket
- List Tickets — confirm which ticket you mean
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category