Using WP-CLI

If your host gives you WP-CLI, HappenBoard adds two command groups: one to create events, one to run imports. They are useful for scripted setups, for seeding a staging site, and for importing files too large to push through a browser.

Creating an event

The command is wp happenboard event create. Two options are required, the rest are optional.

  • --title=<title>: the event title. Required.
  • --start=<datetime>: the start, written in any format PHP can read, such as "2026-06-15 18:00". Required.
  • --end=<datetime>: the end. Defaults to one hour after the start.
  • --all-day: mark the event as running all day.
  • --rrule=<rrule>: a repeat rule, such as "FREQ=WEEKLY;BYDAY=MO;COUNT=8".
  • --venue=<id>: link an existing venue by its post ID.
  • --organizer=<id>: link an existing organizer by its post ID.
  • --capacity=<n>: the number of places, where 0 means unlimited.
  • --format=<format>: in_person, virtual or hybrid. Defaults to in_person.
  • --status=<status>: the post status. Defaults to publish.
  • --description=<text>: the event content.
  • --timezone=<tz>: the time zone your start and end are written in, such as Europe/Paris. Defaults to the site time zone.
  • --porcelain: print only the new event ID, for scripting.

A simple call and a recurring one:

wp happenboard event create --title="Launch Party" --start="2026-06-15 18:00"

wp happenboard event create --title="Standup" --start="2026-06-15 09:00" --end="2026-06-15 09:30" --rrule="FREQ=WEEKLY;BYDAY=MO,WE,FR;COUNT=10"

Dates are read in the time zone you gave (or the site one) and stored in UTC, exactly as the editor does. The dates of a series are rebuilt straight away, so the new event shows up in calendar and list blocks without a further save.

A few behaviours to expect: an end before the start stops the command with an error; a --venue or --organizer that is not a real record of that type is ignored with a warning rather than aborting the run; an unusable repeat rule leaves you with a single occurrence.

Running a migration

Three sources have their own subcommand, and each accepts --dry-run to preview without writing:

  • wp happenboard migrate tec [--dry-run] for The Events Calendar.
  • wp happenboard migrate em [--dry-run] for Events Manager.
  • wp happenboard migrate sugar [--dry-run] for Sugar Calendar.

Each one checks that the source is actually present and stops with an error if not, reports how many events it found, then works through them in batches of 100 until finished. At the end it prints a created, skipped and failed count per resource, with any errors listed as warnings above.

EventKoi and Amelia have no command of their own. Both appear in the admin interface, so run those from the Migration settings screen instead.

Importing a calendar file

wp happenboard migrate ics --file=<path> reads an .ics file from disk.

  • --file=<path>: the path to the file, absolute or relative. Required.
  • --limit=<n>: stop after this many calendar entries. Handy for testing a large export.
  • --dry-run: report without writing.

It finishes with a created, updated, skipped and errors count. Everything it reads and everything it ignores is the same as the browser version, described in the .ics import guide. The command line is simply the better option for a file too big to upload comfortably.

One more command worth knowing

Not a HappenBoard command, but the one its scheduled tasks depend on: wp cron event run --due-now, run every minute from your server, is what makes reminder emails punctual. The health screen shows you whether you need it.

What’s next