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

# Schedule an event

> Put a drop-off, pickup, or service on the schedule for later using the same event types your team uses in the app.

Event types are your facility's reusable events: Vehicle Drop Off, Vehicle Pick Up, Interior Cleaning, and anything else your team set up under **Settings → Event Types**. The API uses the same list two ways:

* **Do it now:** `POST /cars/{id}/events` logs the event at the current time (see [Car intake workflow](/docs/api-reference/car-intake-workflow)).
* **Schedule it for later:** `POST /appointments` with the event type, shown below.

**Scopes needed:** `read:appointments` (or `read:cars`) to list event types, and `write:appointments` to schedule.

<Steps>
  <Step title="Pick an event type">
    ```bash theme={null}
    curl "https://www.carstoragesoftware.com/api/v1/event-types?scope=vehicle" \
      -H "Authorization: Bearer $CSS_API_KEY"
    ```

    Note the `id` or `value` (for example, `vehicle_pick_up`). `scope` tells you whether the event needs a car (`vehicle`), a customer (`customer`), or neither (`facility`).
  </Step>

  <Step title="Create the appointment">
    ```bash theme={null}
    curl -X POST https://www.carstoragesoftware.com/api/v1/appointments \
      -H "Authorization: Bearer $CSS_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "eventType": "vehicle_pick_up",
        "startAt": "2026-10-10T15:00:00-04:00",
        "endAt": "2026-10-10T15:30:00-04:00",
        "carId": "'"$CAR_ID"'",
        "customerId": "'"$CUSTOMER_ID"'"
      }'
    ```

    Send `eventTypeId` or `eventType`, not both with an `appointmentTypeId`. The appointment shows on the team's schedule with that event type, and its event session is ready for staff to open when the work starts.
  </Step>
</Steps>

<Note>
  Scheduling does not move cars between parking spots. Parking changes happen when your team performs the event, or when you log it with `POST /cars/{id}/events`.
</Note>


## Related topics

- [Assign parking during a Schedule event](/docs/parking-spots/assign-parking-during-a-schedule-event.md)
- [Events overview](/docs/events/overview.md)
- [Test an event setup](/docs/events/test-an-event-setup.md)
- [Configure event types](/docs/events/configure-event-types.md)
- [Create an all-day event](/docs/schedule/create-an-all-day-event.md)


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