> ## Documentation Index
> Fetch the complete documentation index at: https://cal.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Remove a location from an Event

> Removes one location and returns the Event's remaining locations, in the same shape as `GET /v2/events/{uuid}/locations`. Every other location is kept as it is, including one this API version can't represent.

On a published paid Event, locations can't be removed. On a published Event, removing a location emails the guests. If the Event changes while the location is being removed, nothing is saved and 409 is returned.

The authenticated user must be its owner, one of its hosts, or a member of the owning team; an accepted co-host gets 403. PBAC permission for team events: `calEvent.update`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the `EVENT_WRITE` scope is required.



## OpenAPI

````yaml /api-reference/v2/openapi.json delete /v2/events/{uuid}/locations/{locationId}
openapi: 3.0.0
info:
  title: Cal.com API v2
  description: ''
  version: 1.0.0
  contact: {}
servers: []
security: []
tags: []
paths:
  /v2/events/{uuid}/locations/{locationId}:
    delete:
      tags:
        - Events
      summary: Remove a location from an Event
      description: >-
        Removes one location and returns the Event's remaining locations, in the
        same shape as `GET /v2/events/{uuid}/locations`. Every other location is
        kept as it is, including one this API version can't represent.


        On a published paid Event, locations can't be removed. On a published
        Event, removing a location emails the guests. If the Event changes while
        the location is being removed, nothing is saved and 409 is returned.


        The authenticated user must be its owner, one of its hosts, or a member
        of the owning team; an accepted co-host gets 403. PBAC permission for
        team events: `calEvent.update`. Learn more about API access control at
        https://cal.com/docs/api-reference/v2/access-control. If accessed using
        an OAuth access token, the `EVENT_WRITE` scope is required.
      operationId: EventLocationsController_remove
      parameters:
        - name: uuid
          required: true
          in: path
          description: >-
            Event UUID. Accepts the canonical UUID (e.g.
            `018ff5cd-6dc4-7d57-bcbc-374702ca8b38`) or its short-uuid (Flickr
            Base58) form (e.g. `1cbZYoAFoJdwqN4tixezd5`).
          schema:
            type: string
            format: uuid
        - name: locationId
          required: true
          in: path
          description: Id of the location, the `id` from `GET /v2/events/{uuid}/locations`.
          schema:
            type: string
            format: uuid
        - name: Authorization
          in: header
          description: >-
            value must be `Bearer <token>` where `<token>` is api key prefixed
            with cal_, managed user access token, or OAuth access token
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventLocationsOutputResponseDto'
        '400':
          description: >-
            Invalid Event UUID or location id, a published paid Event, or a
            cancelled Event
        '401':
          description: Unauthenticated
        '403':
          description: Insufficient permissions, or a co-host removing a location
        '404':
          description: Event or location not found
        '409':
          description: The Event changed while the location was being removed
components:
  schemas:
    EventLocationsOutputResponseDto:
      type: object
      properties:
        status:
          enum:
            - success
            - error
          type: string
          example: success
        data:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/EventAddressLocationOutput'
                title: Address
              - $ref: '#/components/schemas/EventLinkLocationOutput'
                title: Link
              - $ref: '#/components/schemas/EventIntegrationLocationOutput'
                title: Integration
              - $ref: '#/components/schemas/EventOrganizersDefaultAppLocationOutput'
                title: Organizer Default App
              - $ref: '#/components/schemas/EventUnknownLocationOutput'
                title: Unknown
      required:
        - status
        - data
    EventAddressLocationOutput:
      type: object
      properties:
        id:
          type: string
          description: >-
            Identifier of this location. Pass it to `PATCH` or `DELETE
            /v2/events/{uuid}/locations/{locationId}` to edit or remove this
            location.
        label:
          type: string
          description: Name shown for this location.
          maxLength: 100
        price:
          type: number
          nullable: true
          example: 2500
          description: >-
            Price a guest who picks this location pays, in the currency's
            smallest unit. null when the location is free.
        currency:
          type: string
          nullable: true
          example: usd
          description: Currency of price. null when the location is free.
        capacity:
          type: number
          description: Seats at this location. Absent when unlimited.
          minimum: 1
          maximum: 100000
        type:
          type: string
          example: address
          enum:
            - address
        address:
          type: string
          example: 123 Event Street
      required:
        - id
        - price
        - currency
        - type
        - address
    EventLinkLocationOutput:
      type: object
      properties:
        id:
          type: string
          description: >-
            Identifier of this location. Pass it to `PATCH` or `DELETE
            /v2/events/{uuid}/locations/{locationId}` to edit or remove this
            location.
        label:
          type: string
          description: Name shown for this location.
          maxLength: 100
        price:
          type: number
          nullable: true
          example: 2500
          description: >-
            Price a guest who picks this location pays, in the currency's
            smallest unit. null when the location is free.
        currency:
          type: string
          nullable: true
          example: usd
          description: Currency of price. null when the location is free.
        capacity:
          type: number
          description: Seats at this location. Absent when unlimited.
          minimum: 1
          maximum: 100000
        type:
          type: string
          example: link
          enum:
            - link
        link:
          type: string
          example: https://example.com/event
      required:
        - id
        - price
        - currency
        - type
        - link
    EventIntegrationLocationOutput:
      type: object
      properties:
        id:
          type: string
          description: >-
            Identifier of this location. Pass it to `PATCH` or `DELETE
            /v2/events/{uuid}/locations/{locationId}` to edit or remove this
            location.
        label:
          type: string
          description: Name shown for this location.
          maxLength: 100
        price:
          type: number
          nullable: true
          example: 2500
          description: >-
            Price a guest who picks this location pays, in the currency's
            smallest unit. null when the location is free.
        currency:
          type: string
          nullable: true
          example: usd
          description: Currency of price. null when the location is free.
        capacity:
          type: number
          description: Seats at this location. Absent when unlimited.
          minimum: 1
          maximum: 100000
        type:
          type: string
          example: integration
          enum:
            - integration
        integration:
          type: string
          description: >-
            The integration's API name, e.g. `zoom` or `google-meet`. An app
            without an API name is returned with its stored type, e.g.
            `integrations:dialpad_video`.
          example: zoom
        credentialId:
          type: number
          description: >-
            Identifies which connected account will host the Event when a host
            has multiple connected accounts.
      required:
        - id
        - price
        - currency
        - type
        - integration
    EventOrganizersDefaultAppLocationOutput:
      type: object
      properties:
        id:
          type: string
          description: >-
            Identifier of this location. Pass it to `PATCH` or `DELETE
            /v2/events/{uuid}/locations/{locationId}` to edit or remove this
            location.
        label:
          type: string
          description: Name shown for this location.
          maxLength: 100
        price:
          type: number
          nullable: true
          example: 2500
          description: >-
            Price a guest who picks this location pays, in the currency's
            smallest unit. null when the location is free.
        currency:
          type: string
          nullable: true
          example: usd
          description: Currency of price. null when the location is free.
        capacity:
          type: number
          description: Seats at this location. Absent when unlimited.
          minimum: 1
          maximum: 100000
        type:
          type: string
          example: organizersDefaultApp
          enum:
            - organizersDefaultApp
      required:
        - id
        - price
        - currency
        - type
    EventUnknownLocationOutput:
      type: object
      properties:
        id:
          type: string
          description: >-
            Identifier of this location. Pass it to `PATCH` or `DELETE
            /v2/events/{uuid}/locations/{locationId}` to edit or remove this
            location.
        label:
          type: string
          description: Name shown for this location.
          maxLength: 100
        price:
          type: number
          nullable: true
          example: 2500
          description: >-
            Price a guest who picks this location pays, in the currency's
            smallest unit. null when the location is free.
        currency:
          type: string
          nullable: true
          example: usd
          description: Currency of price. null when the location is free.
        capacity:
          type: number
          description: Seats at this location. Absent when unlimited.
          minimum: 1
          maximum: 100000
        type:
          type: string
          example: unknown
          enum:
            - unknown
        location:
          type: string
          description: >-
            The stored location as JSON, for a location this API version can't
            represent. Remove it with `DELETE
            /v2/events/{uuid}/locations/{locationId}`.
      required:
        - id
        - price
        - currency
        - type
        - location

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.