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

# Introduction

> Create and manage events with attendee registration and check-in

The Events API provides full lifecycle management for events such as music festivals, conferences, meetups, and any other gatherings. Create events, register attendees, track check-ins, and manage event details — all through a simple REST interface.

## Key Concepts

### Event Lifecycle

1. **Creation** — Define your event with a name, description, dates, location, and address.
2. **Management** — Update event details or delete events as plans change.
3. **Registration** — Register users as attendees and track their check-in timestamps.
4. **Products** — Associate products (tickets, perks, vouchers) with events via the Products API.

### Event Identification

Events support flexible lookup using either their Mufi-generated UUID or a custom `reference_id` that you provide at creation. This makes it easy to cross-reference events with your own systems.

### Attendee Management

The attendee system tracks two key moments in a user's event journey:

| Timestamp       | Description                                   |
| --------------- | --------------------------------------------- |
| `registered_at` | When the user registered for the event        |
| `checked_in_at` | When the user physically arrived at the venue |

Both timestamps are optional and can be set independently. Calling the register endpoint on an existing attendee updates their record rather than creating a duplicate, making it safe to call repeatedly (e.g., updating check-in after initial registration).

Users must be created via the Users API before they can be registered as event attendees. You can identify attendees by email, user ID, or reference ID.

### Events and Products

Events serve as the parent entity for products. When creating a product (ticket, perk, voucher), you associate it with an event via the `event_id` field. This allows you to:

* Offer multiple product types per event (e.g., general admission, VIP, drink vouchers)
* Track which products belong to which event
* Manage event-scoped inventory and sales

See the [Products tab](/docs/endpoint/engagement/create-product) for product endpoint documentation.

## Available Endpoints

<CardGroup cols={2}>
  <Card title="Create Event" icon="calendar-plus" href="/docs/endpoint/engagement/event-creation">
    Create a new event with name, dates, location, and description.
  </Card>

  <Card title="Fetch Events" icon="calendar-days" href="/docs/endpoint/engagement/fetch-events">
    List all events for your project with pagination support.
  </Card>

  <Card title="Get Event" icon="calendar" href="/docs/endpoint/engagement/get-event">
    Retrieve a single event by its ID or reference ID.
  </Card>

  <Card title="Update Event" icon="pen-to-square" href="/docs/endpoint/engagement/event-update">
    Update event details such as name, description, and dates.
  </Card>

  <Card title="Delete Event" icon="trash" href="/docs/endpoint/engagement/event-deletion">
    Delete an event and all associated data.
  </Card>

  <Card title="Register Attendee" icon="user-plus" href="/docs/endpoint/engagement/event-attendee-registration">
    Register a user for an event or update their registration and check-in timestamps.
  </Card>

  <Card title="Fetch Attendees" icon="users" href="/docs/endpoint/engagement/fetch-event-attendees">
    List all registered attendees for an event with registration and check-in details.
  </Card>
</CardGroup>
