Title: LAPDI Events
Author: Let A Pro Do IT!
Published: <strong>July 31, 2026</strong>
Last modified: September 1, 2026

---

Search plugins

![](https://ps.w.org/lapdi-events/assets/banner-772x250.jpg?rev=3630264)

![](https://ps.w.org/lapdi-events/assets/icon-256x256.jpg?rev=3630264)

# LAPDI Events

 By [Let A Pro Do IT!](https://profiles.wordpress.org/letaprodoit/)

[Download](https://downloads.wordpress.org/plugin/lapdi-events.1.3.0.zip)

 * [Details](https://li.wordpress.org/plugins/lapdi-events/#description)
 * [Reviews](https://li.wordpress.org/plugins/lapdi-events/#reviews)
 *  [Installation](https://li.wordpress.org/plugins/lapdi-events/#installation)
 * [Development](https://li.wordpress.org/plugins/lapdi-events/#developers)

 [Support](https://wordpress.org/support/plugin/lapdi-events/)

## Description

LAPDI Events is a public and member-aware calendar plugin. It provides its own `
lapdi_event`, `lapdi_venue` and `lapdi_organizer` administration types, reusable
event categories/venues/organizers, one-time/daily/weekly/monthly recurrence, and
List/Month/Day calendar views — with each event set to either **Public** or **Members
only** visibility.

#### Features

 * Reusable event categories, venues and organizers
 * One-time, daily, weekly and monthly recurrence with configurable intervals, weekly
   weekdays, monthly ordinal weekdays and end dates
 * Rolling planning window with the next four active meetings from each recurring
   series
 * Linked meeting customization for titles, agendas, images, schedules, logistics,
   visibility, capacity, internal staff notes and follow-up posts
 * Individual meeting cancellation without ending the parent series or deleting 
   existing responses
 * Accessible List, Month and Day views, with search and responsive mobile layouts
 * Per-meeting Apple Calendar downloads and Google Calendar add-event links
 * Stable unique event codes with optional meeting-specific overrides
 * Locally generated event-website QR codes with SVG download
 * Platform-aware venue address links (Apple Maps on Apple devices, Google Maps 
   elsewhere)
 * Per-event **Public** or **Members only** audience
 * Published blog-post follow-ups for event recaps, photos and video
 * Per-occurrence responses: Planning to attend, Attended or Unable to attend
 * Optional per-occurrence meeting capacity with live seat availability and overbooking
   protection
 * Member-visible response lists with names and statuses, hidden from public viewers
 * Administrative attendee log with response removal
 * Per-meeting multiple-choice topic polls with shareable links and optional anonymous
   suggestions
 * Event-grouped poll administration with rounded aggregate results and no voter
   identity display
 * `[lapdi_events]` List/Month/Day calendar shortcode
 * `[lapdi_events_preview]` public home-page preview shortcode
 * Capability-based administration through `manage_lapdi_events`
 * Members-only event visibility supports an optional membership access integration
   and otherwise remains limited to event administrators
 * Idempotent importer from The Events Calendar — safe to re-run without duplicating
   already-imported records
 * No public event archive, REST-exposed event details, or direct event permalinks

#### Required framework and optional member integration

LAPDI Events requires TSP Easy Dev to be installed and active. WordPress will block
LAPDI Events activation until that dependency is available and active.

An optional compatible membership integration can provide the access decision for“
Members only” events. Without a compatible membership integration active, only users
with `manage_lapdi_events` see Members-only events.

## Installation

 1.  Install and activate TSP Easy Dev.
 2.  If migrating from The Events Calendar, keep it active during the initial import.
 3.  Upload LAPDI Events under **Plugins  Add New  Upload Plugin** and activate it.
 4.  Go to **Events  Import Existing Events** and run the importer if migrating existing
     data — it copies records without changing or deleting the originals, and is safe
     to re-run.
 5.  Review the imported **Events**, **Venues** and **Organizers**.
 6.  Add the `[lapdi_events]` shortcode to your events page (commonly at `/events/`).
 7.  Review **Who can see this event?** on every event — new events default to Public.
 8.  To collect discussion topics, select **Add poll** beside a meeting under **Upcoming
     Meetings**.
 9.  Deactivate The Events Calendar only after the import and public page have been
     verified.

## FAQ

### Do I need The Events Calendar plugin?

No — it’s only used as a one-time data source if you’re migrating existing events
into LAPDI Events with the built-in importer. It isn’t required afterward.

### How do I limit an event to logged-in members?

Edit the event and set **Who can see this event?** to **Members only**. Users approved
by a compatible membership integration can view it when one is active; otherwise,
only users who can manage events will see it.

### Can I show events on the front end without exposing a public archive?

Yes — event, venue and organizer post types are intentionally non-public with no
REST exposure or direct permalinks. Use `[lapdi_events]` or `[lapdi_events_preview]`
to display them.

### Can visitors add a meeting to their calendar?

Yes. Every non-cancelled event card includes **Apple Calendar** and **Google Calendar**
actions. Apple Calendar downloads a standard `.ics` file that can also be imported
into other calendar applications. Google Calendar opens Google’s event composer 
in a new tab. Members-only calendar details remain protected by the same access 
rules as the event calendar.

### Does the plugin connect to external services?

Only after a visitor intentionally selects an external link. The Google Calendar
action sends the event title, dates, description, location and event-page URL to
Google in order to prefill its event composer. Google Maps and Apple Maps links 
send the venue address to the selected map provider. The `.ics` calendar download
is generated locally and does not contact Apple. Use of those external links is 
subject to the [Google Privacy Policy](https://policies.google.com/privacy), [Google Terms of Service](https://policies.google.com/terms),
[Apple Privacy Policy](https://www.apple.com/legal/privacy/) and [Apple Website Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html).

### Which recurrence patterns are supported?

Events can occur once or repeat daily, weekly or monthly at a configurable interval.
Weekly events can use an explicitly selected weekday. Monthly events can repeat 
on the same calendar date or on the first, second, third, fourth or last selected
weekday, such as the second Tuesday. The configured start date remains the first
occurrence, and the recurrence pattern controls later occurrences.

The event editor enables only the recurrence controls used by the selected **Repeats**
option. Switching recurrence types preserves inactive weekly and monthly choices
so they are restored if that type is selected again.

### How do I plan individual meetings in a recurring series?

Edit the parent event and use its **Upcoming Meetings** panel. The panel always 
provides the next four active meetings in the series. Select **Customize** to give
one meeting its own title, agenda, image, date/time, venue, organizer, meeting location,
website, cost, capacity, audience or follow-up post. Details you do not change continue
inheriting the parent series. A customized meeting remains linked to the series,
and rescheduling it does not detach its existing attendee responses.

The parent series and each customized meeting also provide an **Internal staff note**.
Only signed-in staff and administrators with permission to manage LAPDI Events can
see it; it is never included for ordinary members or public visitors.

### Can I cancel one meeting without ending the series?

Yes. Customize that meeting and select **Cancel this meeting**. It remains visible
with a Cancelled label so attendees can see what happened, preserves existing responses,
stops accepting new responses and does not consume one of the next four active meeting
slots. Reinstate it by clearing the cancellation setting.

### How do I link directly to one event series or meeting?

Use the parent event’s WordPress slug in the `lapdi_event` query parameter, for 
example `/events/?lapdi_event=weekly-training#lapdi-events-calendar`. Add `lapdi_date`
to select that series on an exact date: `/events/?lapdi_event=weekly-training&lapdi_date
=2026-09-24#lapdi-events-calendar`. The **Upcoming Meetings** panel provides a ready-
made **View** link for each meeting. Free-text search and calendar navigation preserve
the series filter. Sites whose calendar is not at `/events/` can customize the generated
base URL with the `lapdi_events_calendar_url` filter.

### What event-response data is stored?

When a signed-in user responds, the plugin stores the WordPress user ID, event and
occurrence identifiers, response status, and created/updated timestamps in the site’s
database. Event administrators can view and remove all responses. Approved members
can see respondent names and response statuses, while public viewers cannot. Users
can clear their own responses. The plugin does not send response data to an external
service and supports WordPress personal data exports and erasure requests.

### How does meeting capacity work?

Set **Meeting capacity** while editing an event. The limit applies separately to
each occurrence, including recurring events. **Planning to attend** and **Attended**
each occupy one seat. **Unable to attend**, clearing a response, or administrator
removal releases the seat. Leave capacity blank or set it to 0 for unlimited attendance.

### How do meeting topic polls work?

Edit an event and select **Add poll** beside a meeting under **Upcoming Meetings**.
Add the topic choices, selection limit and deadline, change the poll to Open, and
copy its link into Meetup. Open polls also appear on full event cards. Public polls
use a pseudonymous browser cookie; Members-only polls require the same member access
as the event. Voters can revise their ballot until voting closes and see rounded
aggregate results after voting. Administrators see results and anonymous suggestions
under **Events  Polls**, grouped by event.

### What happens when I delete the plugin?

Deleting LAPDI Events permanently deletes all events, venues, organizers, event 
categories, attendee responses, poll ballots, and related plugin data. This cannot
be undone; create a database backup before deleting the plugin. Ordinary deactivation
does not remove data.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“LAPDI Events” is open source software. The following people have contributed to
this plugin.

Contributors

 *   [ Let A Pro Do IT! ](https://profiles.wordpress.org/letaprodoit/)
 *   [ Sharron Denice ](https://profiles.wordpress.org/sharrondenice/)

[Translate “LAPDI Events” into your language.](https://translate.wordpress.org/projects/wp-plugins/lapdi-events)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/lapdi-events/), check
out the [SVN repository](https://plugins.svn.wordpress.org/lapdi-events/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/lapdi-events/) by
[RSS](https://plugins.trac.wordpress.org/log/lapdi-events/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.3.0

 * Add unique event codes with linked-meeting inheritance and overrides.
 * Add locally generated event-destination QR previews and SVG downloads.
 * Expose bounded event identity functions for optional consumers without adding
   plugin dependencies.
 * Add per-meeting multiple-choice topic polls with opaque share links and calendar
   actions.
 * Add revisable anonymous or member ballots, optional topic suggestions and deadline
   enforcement.
 * Add event-grouped administration with rounded aggregate results and no voter 
   identity display.

#### 1.2.0

 * Add per-occurrence Apple Calendar `.ics` downloads and Google Calendar event 
   links.
 * Export customized recurring-meeting titles, schedules, descriptions, venues and
   meeting locations.
 * Ensure Google Calendar receives a non-empty event title before optional event
   details.
 * Protect members-only calendar downloads with the existing event visibility checks.

#### 1.1.0

 * Add optional per-occurrence meeting capacity and available-seat display.
 * Prevent new attending responses when an occurrence is full, including simultaneous
   final-seat requests.
 * Release seats when users become unable to attend, clear their response, or have
   their response removed.
 * Add an explicit weekday selector for weekly recurrence.
 * Add first, second, third, fourth and last weekday patterns for monthly recurrence.
 * Preserve existing monthly same-date behavior and existing event schedules by 
   default.
 * Add a rolling four-meeting planning window for every recurring series.
 * Add linked per-meeting detail overrides with field-level inheritance from the
   parent series.
 * Preserve RSVP and capacity identity when an individual meeting is rescheduled.
 * Add individual meeting cancellation and reinstatement while retaining response
   history.
 * Add inheritable per-meeting internal notes visible only to event staff and administrators.
 * Add exact event-series URL filtering, optional date intersection and ready-made
   meeting links.
 * Enable only recurrence fields relevant to the selected repeat pattern while preserving
   inactive settings.

#### 1.0.0

 * Initial public release.
 * Manage recurring public and member events, venues, organizers and categories.
 * Display accessible List, Month, Day and preview calendars.
 * Import existing records idempotently from The Events Calendar.
 * Record per-occurrence member responses and provide an administrative attendee
   log.
 * Support WordPress personal-data exports, erasure requests and privacy-policy 
   guidance.
 * Attach published blog-post follow-ups to events for recaps, photos and video.
 * Require TSP Easy Dev using WordPress’s dependency header and path-independent
   runtime detection.
 * Provide the Events information page under LAPDI Plugins.
 * Remove all LAPDI Events content and plugin-owned data safely after an administrator
   confirms permanent plugin deletion.

## Meta

 *  Version **1.3.0**
 *  Last updated **12 minutes ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.0.4**
 *  PHP version ** 8.1 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/lapdi-events/)
 * Tags
 * [calendar](https://li.wordpress.org/plugins/tags/calendar/)[events](https://li.wordpress.org/plugins/tags/events/)
   [recurring events](https://li.wordpress.org/plugins/tags/recurring-events/)[venues](https://li.wordpress.org/plugins/tags/venues/)
 *  [Advanced View](https://li.wordpress.org/plugins/lapdi-events/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/lapdi-events/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/lapdi-events/reviews/)

## Contributors

 *   [ Let A Pro Do IT! ](https://profiles.wordpress.org/letaprodoit/)
 *   [ Sharron Denice ](https://profiles.wordpress.org/sharrondenice/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/lapdi-events/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://buymeacoffee.com/letaprodoit)