# Cancel a shift

Calls the shift off. It is marked as cancelled, it stops being published, and
everyone holding a place on it is moved to a cancelled status - which is what
triggers whatever your account has set up to tell them.
The work is queued and the response is a token for the queued job, so **nothing has
changed by the time it comes back**. The token is not something you can poll; read
the shift back to confirm. **This is a GET that changes things**, which is unusual
for this API and worth knowing before you put it behind a link or a prefetch.
A shift can only be cancelled while it is published, has not started and is not
already cancelled; otherwise the call is a 404. Cancelling is not deleting - the
shift stays, and it can be un-cancelled afterwards.

Endpoint: GET /api/v2/event/{event_id}/shift/{shift_id}/cancel
Version: 2.0.0
Security: default

## Path parameters:

  - `event_id` (integer, required)
    The ID of the event.

  - `shift_id` (integer, required)
    The ID of the shift to cancel.

## Header parameters:

  - `Rosterfy-Platform` (string)

## Response 200 fields (application/json):

  - `queue` (string)

