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

# Create Event

> Create a new event, optionally with its dates.

All dates and times in the request are in the site timezone. See [Dates and times](https://docs-restapi.wplimit.com/api-reference/events/overview.md#dates-and-times).

## Required Parameters

**name** `string` *required*

Event name

## Optional Parameters

**slug** `string`

URL slug

**summary** `string`

Short summary

**description** `string`

Full description. HTML is allowed.

**status** `string` (default: draft)

Event status. Available values: `draft`, `published`, `cancelled`, `completed`

**event\_type** `string` (default: in\_person)

Event type. Available values: `in_person`, `online`

**online\_url** `string`

Meeting URL for online events

**category\_id** `integer`

Event category ID. Must be an existing [event category](https://docs-restapi.wplimit.com/api-reference/events/categories-list.md).

**featured\_image\_id** `integer`

WordPress media attachment ID to use as the featured image

**price** `number` (default: 0)

Price per ticket (`0` = free event)

**capacity** `integer` (default: 0)

Maximum number of places. `0` or empty = unlimited. Negative values are saved as `1`.

**location\_text** `string`

Location shown for the event

**organizer\_name** `string`

Organizer shown for the event

**charge\_per\_ticket** `boolean` (default: true)

Multiply the price by the number of tickets

**ask\_ticket\_quantity** `boolean` (default: true)

Ask for a ticket quantity in the booking form

**registration\_start** `string`

When registration opens (`YYYY-MM-DD HH:MM`). `null` = opens immediately.

**registration\_end** `string`

When registration closes (`YYYY-MM-DD HH:MM`). `null` = closes when the event starts.

**order\_number** `integer`

Display order

**dates** `array`

Event dates. Each item is an object with:

* `start` (required): `YYYY-MM-DD HH:MM`
* `end` (optional): `YYYY-MM-DD HH:MM`, must be on or after `start`. Defaults to `start`.

## Pro Parameters

> [!NOTE]
>
> These parameters require **LatePoint Pro Features** and are only applied when the corresponding feature (Ticket Types or Waiting List) is enabled in LatePoint settings. Otherwise they are ignored.

**use\_ticket\_types** `boolean`

Sell the event through ticket types instead of a single price

**ticket\_types** `array`

Ticket types, each with `name`, `price` and `capacity` (`0` = unlimited). Send `id` to keep or update an existing ticket type.

This list **replaces** the event's ticket types: types you leave out are deleted if they were never sold, otherwise they are set to `disabled`.

**waiting\_list\_enabled** `boolean`

Enable the waiting list for the event

**waiting\_list\_capacity** `integer`

Maximum number of people in the waiting list (`0` = unlimited)

**waiting\_list\_capacity\_by\_type** `object`

Waiting list places per ticket type, as `{ "ticket_type_id": places }`

## Example Request

```bash theme={null}
POST /wp-json/latepoint-api/v1/events
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "name": "Yoga Retreat",
  "summary": "Two mornings",
  "status": "published",
  "event_type": "in_person",
  "category_id": 1,
  "price": 25,
  "capacity": 10,
  "location_text": "Studio A",
  "organizer_name": "Ana",
  "ask_ticket_quantity": false,
  "registration_end": "2026-12-01 18:00",
  "dates": [
    { "start": "2026-12-05 09:00", "end": "2026-12-05 12:00" },
    { "start": "2026-12-06 09:00", "end": "2026-12-06 12:00" }
  ],
  "use_ticket_types": true,
  "ticket_types": [
    { "name": "General", "price": 20, "capacity": 8 }
  ],
  "waiting_list_enabled": true,
  "waiting_list_capacity": 5
}
```

## Response

Returns `201 Created` with the full event, including `dates`:

```json theme={null}
{
  "success": true,
  "message": "Event created successfully",
  "data": {
    "id": 2,
    "name": "Yoga Retreat",
    "slug": "yoga-retreat",
    "summary": "Two mornings",
    "description": null,
    "status": "published",
    "event_type": "in_person",
    "online_url": null,
    "category_id": 1,
    "category": {
      "id": 1,
      "name": "Workshops"
    },
    "featured_image_id": null,
    "featured_image_url": null,
    "location_text": "Studio A",
    "organizer_name": "Ana",
    "price": 25,
    "formatted_price": "$25.00",
    "is_paid": true,
    "charge_per_ticket": true,
    "ask_ticket_quantity": false,
    "start": "2026-12-05 09:00:00",
    "end": "2026-12-06 12:00:00",
    "start_utc": "2026-12-05 12:00:00",
    "end_utc": "2026-12-06 15:00:00",
    "registration_start": null,
    "registration_end": "2026-12-01 18:00:00",
    "registration_open": true,
    "capacity": {
      "unlimited": false,
      "total": 10,
      "booked": 0,
      "available": 10,
      "sold_out": false
    },
    "timezone": "America/Montevideo",
    "order_number": 0,
    "created_at": "2026-10-28 13:05:42",
    "updated_at": "2026-10-28 13:05:42",
    "dates": [
      {
        "id": 1,
        "event_id": 2,
        "start": "2026-12-05 09:00:00",
        "end": "2026-12-05 12:00:00",
        "start_utc": "2026-12-05 12:00:00",
        "end_utc": "2026-12-05 15:00:00"
      },
      {
        "id": 2,
        "event_id": 2,
        "start": "2026-12-06 09:00:00",
        "end": "2026-12-06 12:00:00",
        "start_utc": "2026-12-06 12:00:00",
        "end_utc": "2026-12-06 15:00:00"
      }
    ],
    "use_ticket_types": true,
    "ticket_types": [
      {
        "id": 1,
        "event_id": 2,
        "name": "General",
        "price": 20,
        "formatted_price": "$20.00",
        "capacity": 8,
        "booked": 0,
        "available": 8,
        "sold_out": false,
        "status": "active",
        "order_number": 0
      }
    ],
    "waiting_list": {
      "enabled": true,
      "capacity": 5,
      "queue_count": 0
    }
  }
}
```

## Error Responses

| Status | Code | Description |
| - | - | - |
| `400` | `missing_field` | `name` is missing |
| `400` | `invalid_status` | `status` is not one of the allowed values |
| `400` | `invalid_event_type` | `event_type` is not `in_person` or `online` |
| `400` | `invalid_dates` | `dates` is not an array, a date has no `start`, or `end` is before `start` |
| `400` | `invalid_datetime` | A date or time is not in `YYYY-MM-DD HH:MM` format |
| `400` | `invalid_category` | `category_id` does not match an existing event category |
| `422` | `save_error` | LatePoint could not save the event |
| `503` | `feature_disabled` | Events is disabled in LatePoint settings |

```json theme={null}
{
  "code": "invalid_dates",
  "message": "dates[0].end must be on or after its start",
  "data": {
    "status": 400
  }
}
```


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