# Events API

Read-only access to your calendar events. This includes showings, synced Google Calendar events, and Cal.com bookings.

## List Events

```
GET /api/v1/events
```

Returns events ordered by start time.

**Query Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| `page` | number | Page number (default: 1) |
| `limit` | number | Items per page (default: 20) |
| `startAfter` | datetime | Only events starting after this time (ISO 8601) |
| `startBefore` | datetime | Only events starting before this time (ISO 8601) |
| `type` | string | Filter by type: `showing`, `call`, `inspection`, or `meeting` |

**Response:**

```json
{
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "type": "showing",
      "propertyId": "660e8400-e29b-41d4-a716-446655440000",
      "contactId": "770e8400-e29b-41d4-a716-446655440000",
      "title": "Showing: 123 Main St",
      "description": null,
      "startTime": "2026-02-15T14:00:00Z",
      "endTime": "2026-02-15T14:30:00Z",
      "timeZone": "America/New_York",
      "location": "123 Main St, Apt 4B",
      "status": "confirmed",
      "notes": null,
      "source": "internal",
      "reminderSentAt": null,
      "createdAt": "2026-02-10T10:00:00Z",
      "updatedAt": "2026-02-10T10:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 8,
    "totalPages": 1
  }
}
```

## Notes

- **Read-only** — to create showings, use the [Showings API](/docs/api-reference/showings). Other event types are created via calendar sync.
- `source` indicates where the event came from: `internal` (created in Rentalot), `google_calendar`, or `calcom`.
- Use date range filters to fetch a specific week or month for calendar display.
