| name | luma-events |
| description | Create batches of Luma events from a reference Luma event. Use this skill whenever the user asks to clone, schedule, duplicate, or batch-create Luma livestreams/events from an existing Luma URL, especially requests like "schedule the next 3 Thursdays", "copy this Luma template", or "make onboarding events on Luma". Prefer the bundled script over generating one-off curl commands. |
Luma Events
Use this skill to create one or more Luma events by cloning a reference event's title, description, cover image, visibility, timezone, and duration, then scheduling copies at requested times.
Safety and secrets
- Read
LUMA_API_KEY from the shell environment or a local .env; do not print it.
- Do not paste secrets into generated commands, logs, or files.
- The helper script prints event IDs, dates, and public URLs only.
- Leave virtual livestream links empty unless the user explicitly provides a URL.
Default workflow
- Determine the schedule.
- If the user gives explicit dates/times, convert them to script flags.
- If the user gives a date range, choose the matching weekly dates within that range.
- If the user does not specify a schedule, default to the next 3 Thursdays at 2:00pm ET.
- Run the bundled script in dry-run mode first when the request is ambiguous.
- Run with
--execute when the user has clearly asked to create/update events.
- Verify the returned URLs and summarize them.
Bundled script
Use scripts/luma_clone_events.py.
Common examples:
python .agents/skills/luma-events/scripts/luma_clone_events.py \
--weeks 3 \
--weekday thursday \
--time 14:00 \
--timezone America/New_York \
--title "Intro to <BRAND> + <CLOUD_PRODUCT>" \
--execute
Pass --dates 2026-05-07,2026-05-14 for explicit dates, or --range 2026-05-07..2026-05-21 with --weekday for a date range. Set the event to clone with --reference-url <url> or the LUMA_REFERENCE_URL env var — there is no built-in default.
Script behavior
- Without
--execute, the script performs a dry run and shows what it would create.
- With
--execute, it calls the Luma API:
GET /v1/entity/lookup to resolve the reference URL slug.
GET /v1/event/get to fetch reference event metadata.
POST /v1/event/create for each scheduled copy.
GET /v1/calendar/list-events to recover public URLs after creation.
- It omits
meeting_url by default so livestream links remain empty.