Skip to main content
import { Luma } from "@alhwyn/luma";

const luma = new Luma(process.env.LUMA_API_KEY!);
const { data, hasMore, nextCursor } = await luma.events.list({
  pagination_limit: 20,
});

for (const event of data) {
  console.log(event.name);
}
{
  "data": [
    {
      "api_id": "evt-abc123",
      "name": "SDK test event",
      "start_at": "2026-07-01T18:00:00.000Z",
      "end_at": "2026-07-01T20:00:00.000Z",
      "timezone": "America/Los_Angeles"
    }
  ],
  "hasMore": true,
  "nextCursor": "cursor_xyz789"
}
SDK luma.events.list(params?: EventListParams): Promise<ListResponse<EventListEntry>> Returns a paginated list of events on your calendar.
import { Luma } from "@alhwyn/luma";

const luma = new Luma(process.env.LUMA_API_KEY!);
const { data, hasMore, nextCursor } = await luma.events.list({
  pagination_limit: 20,
});

for (const event of data) {
  console.log(event.name);
}
{
  "data": [
    {
      "api_id": "evt-abc123",
      "name": "SDK test event",
      "start_at": "2026-07-01T18:00:00.000Z",
      "end_at": "2026-07-01T20:00:00.000Z",
      "timezone": "America/Los_Angeles"
    }
  ],
  "hasMore": true,
  "nextCursor": "cursor_xyz789"
}

Parameters

params
EventListParams
Optional pagination and filter options. See the official Luma API docs for available fields.
See Client — List responses for the shared pagination shape.

Pagination

List methods are cursor-based. Read one page, then pass nextCursor as pagination_cursor to fetch the next page. First page:
const page = await luma.events.list({ pagination_limit: 50 });

for (const event of page.data) {
  console.log(event.name);
}
Next page (when page.hasMore is true and page.nextCursor is set):
const nextPage = await luma.events.list({
  pagination_limit: 50,
  pagination_cursor: page.nextCursor!,
});

for (const event of nextPage.data) {
  console.log(event.name);
}
Repeat with each page’s nextCursor until hasMore is false. The same pattern applies to events.guests.list, events.ticketTypes.list, and webhooks.list.

Test it

import { Luma } from "@alhwyn/luma";

const luma = new Luma(process.env.LUMA_API_KEY!);
const { data } = await luma.events.list({ pagination_limit: 5 });
console.log(data.map((e) => e.name ?? e.api_id));