Plugin documentation

Use HT Event Importer for Meetup with confidence.

This guide walks through installation, group setup, manual imports, shortcodes, privacy controls, schema.org Event data, Pro licensing, scheduled imports, and common troubleshooting steps.

Start fast

Install the plugin, add one Meetup group slug, test it, import events, then place [ht_meetups_events] on a page.

Publish safely

Tune privacy options before publishing so descriptions, locations, coordinates, images, attendance, waitlist, and capacity match your community policy.

Grow with Pro

Pro adds multiple groups, scheduled imports, the Chrome extension connector, multisite support, and Pro updates while your license is active.

Overview

HT Event Importer for Meetup imports Meetup events into WordPress as real event posts. Those posts can have featured images, venue metadata, maps, attendee counts when Meetup exposes them, and schema.org Event JSON-LD for search engines.

The plugin is designed for organizers who want their events to live on their own WordPress site while keeping control over what information is public.

  • Free supports one Meetup group, manual imports, public event pages, shortcode layouts, widgets, privacy controls, schema settings, and metadata bridges.
  • Pro adds multiple Meetup groups, scheduled imports, the authenticated Chrome extension connector, multisite support, and access to Pro updates.
  • If a Pro subscription is not renewed, installed Pro features can keep working, but update access stops until renewal.
HT Event Importer for Meetup is not affiliated with, endorsed by, sponsored by, or officially connected to Meetup LLC or meetup.com. Meetup is a trademark of its respective owner.

Installation

  1. Upload the hyperthings-event-importer-for-meetup folder to /wp-content/plugins/.
  2. Activate HT Event Importer for Meetup from Plugins in WordPress.
  3. Open HT Event Importer for Meetup > Settings and review display, import, privacy, and schema defaults.
  4. Open HT Event Importer for Meetup > Groups and add your first Meetup group slug.
  5. Use Test / Resolve to validate the group before importing events.
  6. Open HT Event Importer for Meetup > Events and run an import.
  7. Create or edit a WordPress page and add [ht_meetups_events] where the event list should appear.
After changing the Event URL slug in settings, visit Settings > Permalinks and save once if your event URLs do not refresh automatically.

Configuring Meetup Groups

Groups are managed under HT Event Importer for Meetup > Groups. The free plugin allows one active group. Pro allows multiple groups.

Find the group slug

Use the readable part of the Meetup URL, not the numeric group ID. For example, if the URL is https://www.meetup.com/es-es/madrid-pianomeetups/, use madrid-pianomeetups.

Validate the group

After adding a group, click Test / Resolve. A valid group stores resolved metadata such as the group name, resolved URL, group ID, member count when available, and validation time.

  • Valid means the group was found and can be used for imports.
  • Untested means the group was saved but has not been resolved yet.
  • Unsupported usually means a numeric group ID was used instead of a slug.
  • Locked means the group is present but not available under the current Free/Pro plan.
  • Error means Meetup did not return usable public data for that group at validation time.

Group-level schema overrides

Each configured group can override the global schema organizer, performer, and offer fields. Leave fields empty to inherit the global defaults from settings.

Importing Events

Events are imported from HT Event Importer for Meetup > Events. Imports create or update one WordPress event post per Meetup event, using the Meetup event ID as a stable slug.

Import by group

  • Choose a group, or choose all configured groups when your plan allows it.
  • Choose Future events only for normal publishing.
  • Choose All events, including past when you want historical events in WordPress too.
  • Click Import Events and review the result notice showing how many events were found and imported.

Import by event ID or URL

Use Import by Event ID or URL when you need one or more specific events. You can paste one ID or URL per line.

315466787
https://www.meetup.com/example/events/315466787/

Update policy

The settings page controls what happens when an imported event already exists. You can update existing events, status, category, title/description, and featured image independently.

SettingWhat it does
Update existing eventsAllows re-imports to update already imported WordPress event posts.
Update statusLets imports change post status according to the configured import status behavior.
Update categoryLets imports replace the assigned WordPress category.
Update title and descriptionLets imports refresh post title and content from Meetup.
Update featured imageLets imports refresh the featured image when Meetup exposes an image.

Displaying Events

The main display tool is the [ht_meetups_events] shortcode. Add it to any page, post, or block that supports shortcodes.

[ht_meetups_events]
[ht_meetups_events limit="6" future_only="yes" format="list"]
[ht_meetups_events limit="6" format="grid"]
[ht_meetups_events limit="12" format="calendar"]
[ht_meetups_events group_id="12345" category="music" order="asc" orderby="start_time"]
[ht_meetups_events start_date="2026-01-01" end_date="2026-12-31" past_events="yes"]
AttributeValuesDefaultPurpose
limitNumber10Maximum number of events to show.
posts_per_pageNumberEmptyAlias for limit.
future_onlyyes or noyesShow only upcoming events unless disabled.
past_eventsyes or nonoSet to yes to include past events.
formatlist, grid, calendarlistChoose the layout.
show_emptyyes or noyesShow or hide the empty-state message.
group_idMeetup group IDEmptyShow events from one imported Meetup group.
categoryWordPress category slugEmptyShow events assigned to one category.
start_dateYYYY-MM-DDEmptyFilter events on or after this date.
end_dateYYYY-MM-DDEmptyFilter events on or before this date.
orderasc or descascSort direction.
orderbystart_time, event_start_date, title, post_titlestart_timeSort by event date or title.

Widget

The plugin includes a Meetup Events widget for sidebars and widget areas. It lists imported events and supports the same list, grid, or calendar output style.

Theme styling hooks

The shortcode outputs predictable CSS classes so your theme can style the list without editing plugin files.

.mpm-meetup-events {}
.mpm-meetup-event {}
.mpm-meetup-event__title {}
.mpm-meetup-event__thumb {}
.mpm-meetup-event__body {}
.mpm-meetup-event__meta {}
.mpm-meetup-event__description {}
.mpm-meetup-events--list {}
.mpm-meetup-events--grid {}
.mpm-meetup-events-calendar {}
.mpm-meetup-events-empty {}

Settings Reference

Display and privacy

SettingRecommended use
Show descriptionDisable when you want compact listings or when imported descriptions include sensitive details.
Location displayHidden, City, or Exact. Use City for a privacy-first default.
Show coordinatesEnable only when exact coordinates are appropriate for public display.
Map zoomControls the map zoom level from 1 to 18.
Show attendee countDisplays RSVP/attendance counts when Meetup exposes them.
Show waitlistDisplays waitlist count when available.
Show capacityDisplays event capacity when available.
Use featured imageUses imported Meetup event images as WordPress featured images when available.
Link event listings directly to MeetupMakes listing links go to Meetup instead of the local WordPress event page.

Import behavior

SettingRecommended use
Event URL slugThe base path for event posts. Default is meetup-events.
Frontend time formatUse WordPress default, 12-hour, or 24-hour display.
Import post statusChoose publish, draft, or pending for imported events.
Imported event categoryAssign all imported events to a WordPress category.
Update policy checkboxesControl whether re-imports update existing status, category, content, and image fields.

Google Event Schema

Single imported event pages output schema.org Event JSON-LD. This helps search engines understand event dates, names, descriptions, venue data, images, source URL, organizer, performer, and ticket/offer information when available.

Schema data can be configured at three levels. Event-level settings win over group settings, and group settings win over global settings.

  1. HT Event Importer for Meetup > Settings: global organizer, performer, and offer defaults.
  2. HT Event Importer for Meetup > Groups: per-group schema overrides.
  3. HT Event Importer for Meetup > Events: per-event schema overrides.
Schema fieldPurpose
Organizer name and URLIdentifies the organization publishing or organizing the event.
Performer name and URLUseful for talks, workshops, concerts, panels, or named speakers.
Offer enabledAdds ticket/price information when Meetup does not expose pricing but your event has a known price.
Offer name, price, currency, URL, availabilityOutputs schema.org offer data. Currency should be a 3-letter code such as EUR or USD.
Imported Meetup pricing data is used first when available. Configured offer defaults are used as a fallback.

Integrations

HT Event Importer for Meetup stores events as WordPress posts and syncs common metadata for popular event plugins when they are installed.

  • The Events Calendar
  • Events Manager
  • GatherPress
  • Conditional Elementor elements when Elementor is active
  • Conditional WPBakery elements when WPBakery is active

These integrations are metadata bridges. Your theme or event plugin may still require template adjustments depending on how it displays custom event fields.

Pro, Licensing, and Updates

The Pro add-on requires the free plugin to be installed and active. After installing Pro, go to HT Event Importer for Meetup > Pro License, paste the license key, save, and optionally run Test connectivity.

  • A valid license makes multiple groups, scheduled imports, Chrome extension connector access, multisite support, and Pro updates available.
  • A stale license means Pro features remain enabled locally, but update access is not available until renewal.
  • An invalid or empty license keeps Pro-only features not active.
The yearly Pro fee is for update access. If you do not renew, you miss future Pro updates and compatibility fixes, but your installed Pro features are not removed by the license server.

Scheduled Imports

Scheduled imports are a Pro feature. They use WordPress cron, so they run when your site receives traffic or when your server triggers WP-Cron externally.

  1. Activate the Pro add-on and save a valid license.
  2. Open HT Event Importer for Meetup > Settings.
  3. Enable scheduled imports.
  4. Choose the frequency, such as daily, twelve hours, or six hours when available.
  5. Save settings and check the last-run/last-result fields after the next scheduled run.
Low-traffic sites may not run WordPress cron exactly on schedule. For production sites, consider a real server cron that calls wp-cron.php.

Chrome Extension Connector

The Chrome extension connector is a Pro feature for administrator-approved authenticated imports when public Meetup data is incomplete. It is useful when Meetup hides venue, address, coordinates, or other event details from anonymous visitors.

  1. Install and activate the Pro add-on with a valid license.
  2. Open the connector area in plugin settings and confirm the connector token is present.
  3. Install the bundled Chrome extension package supplied by Pro.
  4. Sign in to meetup.com using the Chrome profile that will provide the session.
  5. Use the extension to send the session payload to your WordPress site.
  6. Return to WordPress and run the import again.
Only trusted site administrators should use authenticated session import. Review Meetup terms and your own privacy obligations before importing non-public data.

Troubleshooting

ProblemWhat to check
Group will not validateConfirm you entered the group slug, not a full URL or numeric ID. Try opening the Meetup group in a private browser window to see whether public data is visible.
No events importedCheck whether the group has future events, try All events, including past, and confirm Meetup returns public event pages.
Location or map is missingMeetup may hide venue/address/coordinates. Check privacy settings and consider the Pro Chrome extension connector if authenticated access is appropriate.
Event URL returns 404Save Settings > Permalinks in WordPress after changing the event slug.
Shortcode shows no eventsCheck future_only, past_events, date filters, post status, and whether events are published.
Featured image is missingConfirm Meetup exposes an image and that WordPress can download remote media from your server.
Scheduled import does not runScheduled imports require Pro and WordPress cron. Low-traffic sites may need a server cron.
Pro license shows invalidConfirm the license key, product key, license server endpoint, and outbound HTTPS connectivity from WordPress.

Privacy and External Services

The plugin connects to meetup.com to retrieve event and group information selected by the site administrator. Meetup may receive your server IP address and normal HTTP request metadata.

The plugin can store event title, date, description, image URL, venue, approximate location, coordinates, attendee count, waitlist count, capacity, status, Meetup source URL, and related metadata when Meetup exposes those fields.

  • The plugin does not display attendee names.
  • The plugin does not display organizer names by default.
  • Exact location and coordinates can be hidden from frontend output.
  • Authenticated session imports should be used only by trusted administrators.

FAQ

Can I use the plugin for free?

Yes. The free plugin supports one Meetup group, manual imports, event pages, shortcode display, widgets, privacy controls, schema data, and supported metadata bridges.

Do I need Meetup.com Pro?

No. HT Event Importer Pro is this WordPress plugin add-on. It is separate from Meetup.com Pro or any organizer subscription paid to Meetup.

What happens if I stop paying for Pro?

Your installed Pro features keep working locally. You simply stop receiving Pro updates, compatibility fixes, and new Pro improvements until renewal.

Can I translate the docs?

Yes. This page is backed by a language file. Add another docs.{locale}.php file and load it with ?lang={locale}.