Title: CalendarDrop
Author: thejoshpenner
Published: <strong>September 28, 2026</strong>
Last modified: October 4, 2026

---

Search plugins

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

![](https://ps.w.org/calendardrop/assets/icon-256x256.png?rev=3717772)

# CalendarDrop

 By [thejoshpenner](https://profiles.wordpress.org/thejoshpenner/)

[Download](https://downloads.wordpress.org/plugin/calendardrop.1.4.2.zip)

 * [Details](https://pcd.wordpress.org/plugins/calendardrop/#description)
 * [Reviews](https://pcd.wordpress.org/plugins/calendardrop/#reviews)
 *  [Installation](https://pcd.wordpress.org/plugins/calendardrop/#installation)
 * [Development](https://pcd.wordpress.org/plugins/calendardrop/#developers)

 [Support](https://wordpress.org/support/plugin/calendardrop/)

## Description

Got an event flyer? Put it on your website without typing it all again.

Upload the flyer. CalendarDrop fills in the event details. Check them, then publish.
It works on WordPress websites, with The Events Calendar, WP Event Manager, or ordinary
posts. PDFs and Word documents work too.

Use your own AI provider key and pay that provider directly, or use optional CalendarDrop
credits. The plugin is free either way.

### Try your first import

CalendarDrop offers five event drafts to try, with no card and no separate AI key
required. Install and activate the plugin, then follow the [setup guide](https://calendardrop.pennerstrategy.com/help)
to connect your site. Installing or connecting does not start a paid subscription.
Your CalendarDrop account shows current plans, availability and terms.

### Choose where drafts go

Choose where drafts go: The Events Calendar, WP Event Manager, or ordinary WordPress
posts. WP Event Manager supports individual timed events and must be selected in
CalendarDrop settings. Existing sites keep their current Automatic routing. Both
calendar plugins are separate products.

### What you can import

 * Flyer images, PDFs and Word (.docx) documents.
 * Email text forwarded through a separately configured service such as Mailgun 
   or Postmark.
 * Files submitted through an optional upload page for people you trust. This page
   is off by default.

Every imported event starts as a draft. Choose an existing category to apply it 
to new drafts from the file. Where available, CalendarDrop also uses the flyer as
a featured image.

By default, CalendarDrop skips likely duplicates so you can review the existing 
event before making changes. If a skipped result is actually another session, eligible
CalendarDrop-credit imports can create that session as a separate draft after confirmation.
The original event stays unchanged.

Word imports read the main document text, not embedded images, headers or footers.
Export designed Word flyers as PDF. CalendarDrop credits and Gemini process the 
complete PDF. Other BYO providers use its complete browser-extracted text; scanned
PDFs need a provider that accepts native PDFs. CalendarDrop never substitutes a 
first-page thumbnail for the document.

### Use your own AI provider

Choose OpenAI, Google Gemini or Anthropic Claude, or configure an OpenAI-compatible
endpoint. Enter the API address and model supplied by your provider. Add a key if
the server requires one, save your settings, then click **Test Connection**.

Custom endpoints must support the plugin’s chat-completions request format. A model
that accepts text may not accept images. A successful connection test checks a short
text request, not flyer accuracy or every file type. Local servers must be reachable
from the computer hosting WordPress; an address on your laptop is not automatically
reachable from your website.

Your provider key stays in your site’s WordPress database and goes only to the endpoint
you configure. Review that provider’s terms and privacy policy before use. AI troubleshooting
and AI edits use your own provider key. AI edits are available for ordinary posts
and The Events Calendar events.

### Third-Party Services / Privacy

**Using your own AI key.** File and authenticated email/webhook imports, connection
tests, diagnostics and AI edits send relevant content or prompts to your chosen 
provider. This may include event text, images, complete PDFs or extracted PDF/Word
text. Your key stays in your WordPress database and is sent only to your configured
provider, never to CalendarDrop.

**Optional CalendarDrop processing.** Opening **CalendarDrop > Subscription** sends
your site URL to https://calendardrop.pennerstrategy.com, operated by Joshua Penner,
for status and plans. Connecting sends your connection code or license key and stores
a private site token for account checks. Connecting does not change your processing
mode.

When you select subscription mode, imports send submitted text, images, complete
PDFs or Word document-body text, plus your site URL, timezone and date/time, to 
CalendarDrop. The service forwards the material to Google Gemini to extract event
details. It uses its own AI key.

**Payments.** Polar receives account email, customer identity and license/site details
for checkout, billing and license verification. Card details are handled by Polar,
not this plugin. [Polar privacy](https://polar.sh/legal/privacy-policy).

**Storage.** Your site retains uploads, drafts and import records; recovery records
have no automatic cleanup. CalendarDrop retains account, usage and billing records,
plus extracted results for recovery. See the [data-use and retention policy](https://calendardrop.pennerstrategy.com/privacy)
and [service terms](https://calendardrop.pennerstrategy.com/terms).

Supported providers and their terms:

 * OpenAI: https://openai.com: Terms: https://openai.com/policies/terms-of-use: 
   Privacy: https://openai.com/policies/privacy-policy
 * Google Gemini: https://ai.google.dev: Terms: https://ai.google.dev/gemini-api/
   terms: Privacy: https://policies.google.com/privacy
 * Anthropic Claude: https://www.anthropic.com: Terms: https://www.anthropic.com/
   legal/consumer-terms: Privacy: https://www.anthropic.com/legal/privacy

**Google Places (optional).** For The Events Calendar imports, if no local venue
matches and you supply a Google Maps API key, CalendarDrop may send the venue name
to Google Places to look up address details. This lookup does not run for ordinary
posts or WP Event Manager drafts. Nothing is sent to Google Places unless you have
configured a Google Maps key. Google Terms: https://cloud.google.com/maps-platform/
terms: Privacy: https://policies.google.com/privacy

## Screenshots

[⌊An event flyer becomes an event on a WordPress website. Two excerpts from the 
same actual The Events Calendar preview; its featured flyer is omitted between them.
This fictional event was created in a September 30, 2026 local WordPress test with
live Google Gemini processing and simulated billing, and remains unpublished. This
is a historical example, not a new import or a claim of typical accuracy. Check 
every event against its source before publishing.⌉⌊An event flyer becomes an event
on a WordPress website. Two excerpts from the same actual The Events Calendar preview;
its featured flyer is omitted between them. This fictional event was created in 
a September 30, 2026 local WordPress test with live Google Gemini processing and
simulated billing, and remains unpublished. This is a historical example, not a 
new import or a claim of typical accuracy. Check every event against its source 
before publishing.⌉[

An event flyer becomes an event on a WordPress website. Two excerpts from the same
actual The Events Calendar preview; its featured flyer is omitted between them. 
This fictional event was created in a September 30, 2026 local WordPress test with
live Google Gemini processing and simulated billing, and remains unpublished. This
is a historical example, not a new import or a claim of typical accuracy. Check 
every event against its source before publishing.

## Installation

 1. Upload the `calendardrop` folder to `/wp-content/plugins/`, or upload the zip directly
    from Plugins > Add New > Upload Plugin.
 2. Activate CalendarDrop through the Plugins menu.
 3. Open **CalendarDrop** in the WordPress admin menu.
 4. Use your own AI key in Settings, or open **CalendarDrop > Subscription** to connect
    your site and select **Use CalendarDrop credits**. For your own key, save your 
    settings and click **Test Connection** before importing.
 5. In Dashboard & Settings, choose your Import destination and save. Automatic uses
    The Events Calendar when active, or ordinary WordPress posts otherwise. To use 
    WP Event Manager, install that plugin and select its destination explicitly.

## FAQ

### What if two sessions share the same title?

CalendarDrop may treat same-title events on one day as duplicates. For eligible 
imports made with CalendarDrop credits in version 1.4.2 or later, compare the skipped
result with the saved event and choose **Create this separate draft** if it is another
session. Confirmation creates only that draft for one credit, without another AI
call. Featured images and original category assignments are not copied; add them
in the native editor if needed. Older imports, changed timezone settings and expired
results may require manual entry. Own-key imports keep their existing behavior; 
add a separate event in the native editor when needed.

### Is it really free?

Yes. Use your own AI key with the free plugin and pay your provider for any usage
charges. CalendarDrop credits are optional and have separate plans and billing.

### Do I need an AI provider API key?

Only if you choose to use your own AI provider. To use CalendarDrop instead, connect
your site, select **Use CalendarDrop credits**, and check that you have credits 
available.

### Does it require The Events Calendar?

No. CalendarDrop can create ordinary WordPress draft posts without a calendar plugin.
You can also choose The Events Calendar or WP Event Manager for native event drafts.
Automatic keeps the existing behavior: The Events Calendar when active, or posts
otherwise.

### Can I import into WP Event Manager?

Choose WP Event Manager drafts in Dashboard & Settings and save before uploading.
The free-core destination was tested with WP Event Manager 3.4.1. Existing sites
keep Automatic routing to The Events Calendar when active, or ordinary WordPress
posts otherwise. Installing WP Event Manager does not select it. If your explicitly
selected plugin is unavailable, imports stop with an actionable message instead 
of silently switching destinations.

Use this destination for individual events with stated start and end times. All-
day events and recurring series are not supported yet. Explicit all-day/recurrence
flags are rejected. Missing-end, equal-time and midnight-boundary results also require
manual time review before import. These conservative checks do not detect every 
unsupported source or prove that extracted times appeared in the source. Check each
draft against your source before publishing. Unknown all-day or source timezone 
context is shown as unknown; times without source timezone context use the WordPress
site timezone. Native site-timezone mode converts a known differing source timezone
without changing site settings.

Only an unambiguous existing published venue is linked when the native venue feature
is configured. Missing or ambiguous venues stay unlinked with source details for
review. CalendarDrop never creates or publishes venue, organizer or setup-page records
for this destination. Use the native editor for manual changes. CalendarDrop AI 
edits, merge-duplicate mode, calendar export, ticketing, recurring rules, migration
and custom-field mapping are not supported for WP Event Manager. In the default 
mode, likely duplicates are skipped. An eligible skipped CalendarDrop-credit result
can be confirmed as a separate draft for one credit; the existing event stays unchanged.

Changing the destination does not move existing drafts. Retrying a saved import 
returns its original result; changed source, date context or site settings may start
a new import. Existing prices, free own-provider processing and subscription entitlements
are unchanged.

### Are events published automatically?

No. Everything CalendarDrop creates is a draft. You review and publish each event
yourself. This includes email and webhook imports.

### What does CalendarDrop automate?

CalendarDrop extracts event details and creates drafts from submitted files and 
authenticated email/webhook text. Subscription mode also has an event-text form.
It does not monitor websites or poll calendar feeds. Review and publish each draft
yourself. Pending subscription credit confirmations can retry in the background 
without repeating extraction.

### Can an AI assistant or another app send events to CalendarDrop?

Yes. A site owner can configure an integration to send event text to the existing
authenticated WordPress webhook. CalendarDrop uses the site’s selected processing
mode and creates drafts for review. Copy the Webhook Target URL from CalendarDrop
> Settings > Advanced Integrations and store the webhook secret privately in your
integration. The guide covers the exact request, limits, per-event results, duplicates
and recovery. It does not require an AI assistant, and it does not provide a separate
hosted extraction API.

[Setup and integration guide](https://calendardrop.pennerstrategy.com/integrations)
| [Plain-text reference](https://calendardrop.pennerstrategy.com/integrations.md)

### Can CalendarDrop connect directly to Google Calendar or Outlook?

CalendarDrop creates drafts in The Events Calendar, WP Event Manager or ordinary
WordPress posts, based on your saved destination. It does not connect to Google 
Calendar or Outlook accounts. Ordinary posts with event details have an Add to Google
Calendar link. Public, unprotected ordinary posts and The Events Calendar events
can be exported as an iCalendar file. These manual links and exports do not cover
WP Event Manager drafts and do not synchronize calendars.

### Which AI providers are supported?

OpenAI, Google Gemini and Anthropic Claude have built-in settings. You can also 
configure an OpenAI-compatible endpoint. Custom services and local servers need 
a compatible API and a model that accepts your input type. Compatibility and extraction
quality vary; test your model with a representative file before relying on it.

### How does the public dropzone work?

CalendarDrop can expose a public dropzone where someone can submit a flyer without
logging in. It is off by default. When you enable it, the link is protected by a
secret, uploads are rate-limited and validated server-side, and every submission
still becomes a draft for your review.

### How do I set up email or webhook forwarding?

Open Advanced Integrations and connect an inbound-email service such as Postmark
or Mailgun. It forwards the email body to CalendarDrop’s protected webhook, which
creates drafts and records the result. The email service needs separate setup and
may charge a fee. CalendarDrop does not provide an inbox. You do not need email 
forwarding to upload files.

### How do categories work?

Choose an existing category for your selected destination. CalendarDrop applies 
it to newly created drafts from that upload. Skipped or merged events keep their
existing categories. WP Event Manager categories must be enabled in that plugin.

### Where can I ask a question or share feedback?

For CalendarDrop questions, bug reports, or feedback, email josh@pennerstrategy.
com. Include your WordPress and CalendarDrop versions and a short description of
what happened.

### Where is my API key stored, and is it sent to you?

Your BYO provider key lives in your site’s WordPress options database. It is sent
only to the AI provider you configure, never to the CalendarDrop subscription service.
Subscription mode stores a separate private site token for requests to its configured
service.

Deleting the plugin removes local subscription credentials and job records. It does
not cancel a service subscription or release unresolved service reservations. Resolve
pending imports and manage billing from the service account before removing the 
plugin.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

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

Contributors

 *   [ thejoshpenner ](https://profiles.wordpress.org/thejoshpenner/)

[Translate “CalendarDrop” into your language.](https://translate.wordpress.org/projects/wp-plugins/calendardrop)

### Interested in development?

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

## Changelog

#### 1.4.2

 * Recover an eligible skipped CalendarDrop-credit result as one separate draft 
   after confirmation. Preserve the original event and prevent repeat recovery charges.
 * Review all results from a saved hosted batch without repeating extraction.
 * Correct duplicate-handling guidance.

#### 1.4.1

 * Shortens the opening description and corrects installation steps and calendar
   FAQs to match the WP Event Manager destination introduced in 1.4.0.
 * Clarifies that manual Google Calendar links and iCalendar exports do not cover
   WP Event Manager drafts. No import behavior changed.

#### 1.4.0

 * Adds an explicit WP Event Manager free-core draft destination for timed single
   events.
 * Preserves existing Automatic routing, native editorial changes and original subscription
   replay outcomes across destination changes.
 * Links only unambiguous existing published venues; missing venues remain marked
   for native review. Imports never publish venues or organizers.

#### 1.3.6

 * Correct the setup FAQ: Claude uses extracted PDF text in this plugin. CalendarDrop
   credits and Gemini receive the complete PDF.

#### 1.3.5

 * Add an explicit Other / local OpenAI-compatible provider option, including servers
   that do not require an API key.
 * Keep the selected server and model when pasting a key. Clear the key field when
   changing servers and prevent saved-key fallback to a different address.
 * Reject incomplete or malformed responses from the custom provider path.
 * Replace simulated upload stages with one processing status and clearer messages
   for partial results and interrupted imports.
 * Clarify setup, credits and draft review in the plugin and guide.

#### 1.3.4

 * Compare extracted details with currently saved values when an import matches 
   an existing event or displays a previous result.
 * Show date, time, venue and available timezone/all-day context without changing
   saved events; label missing information and historical results clearly.
 * Keep the flyer analysis button and comparison tables readable on narrow screens.

#### 1.3.3

 * Show the selected processing mode and missing setup before choosing or preparing
   a flyer.
 * Explain saved subscription connections when own-provider mode is selected, with
   direct links to both setup routes.
 * Keep file selection and analysis disabled until required settings are saved, 
   without changing modes or making a connection check automatically.

#### 1.3.2

 * Show each imported event’s outcome and a direct review link, instead of opening
   every draft on the site.
 * Clearly distinguish new drafts, skipped duplicates, previous results and failures
   while preserving saved edits.
 * Keep partial results reviewable, handle incomplete records safely, and avoid 
   claiming success when a request times out.

#### 1.3.1

 * Add a public setup and authenticated webhook reference for site owners, integrations
   and AI assistants.
 * Clarify supported calendar destinations, manual exports and the absence of automatic
   calendar synchronization.
 * Correct stale scheduled-feed wording. Website monitoring and feed polling are
   not supported.

#### 1.3.0

 * Keep complete native PDF bytes, reject preview-only PDF imports, bound expanded
   Word XML, and show clear repeated/empty import results.
 * Remove local subscription secrets and receipts on plugin deletion.
 * Add an optional CalendarDrop service connection with a private site token, draft-
   based credits, and pending settlement recovery. Service availability and purchases
   are managed separately in the CalendarDrop account.
 * Preserve direct AI provider mode and draft review requirements.

#### 1.2.4

 * Require editorial review for all imports, including sites with an older automatic-
   publish setting.
 * Keep published and other non-draft events unchanged when a duplicate import requests
   a merge.
 * Clarify supported imports and duplicate-review behavior.

#### 1.2.3

 * Correct the description and upload error messages to match the supported file-
   upload and authenticated email/webhook import paths.
 * Clarify the separate inbound-email service requirement and the absence of a paste-
   text import screen.

#### 1.2.2

 * Prevent calendar-property injection by escaping all newline forms in exported
   event text at output.

#### 1.2.1

 * Prevent public calendar exports from disclosing draft, private, pending, scheduled,
   trashed, or password-protected event content.
 * Reject malformed export IDs and verify post visibility before reading event data.
 * Update compatibility metadata after local WordPress 7.1 activation and calendar-
   export regression checks.

#### 1.2.0

 * Enqueue all scripts/styles per WordPress.org guidelines.

#### 1.1.9

 * Removed the website-import reader so the plugin only processes flyers, PDFs, 
   Word documents, and forwarded email/webhook text.

#### 1.1.8

 * Events now pull a featured image from the flyer (image files and PDF page 1).
 * Added the built-in AI diagnostic assistant with formatted, plain-language responses.
 * Added per-upload categories for filtered calendar views.
 * All assets are now bundled locally (no external CDN or font requests); public
   credit attribution defaults to off.
 * Hardened the public upload and email/webhook paths (rate limiting, server-side
   validation, secret authentication).

## Meta

 *  Version **1.4.2**
 *  Last updated **16 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 8.0 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/calendardrop/)
 * Tags
 * [AI](https://pcd.wordpress.org/plugins/tags/ai/)[calendar](https://pcd.wordpress.org/plugins/tags/calendar/)
   [events](https://pcd.wordpress.org/plugins/tags/events/)[flyer](https://pcd.wordpress.org/plugins/tags/flyer/)
   [import](https://pcd.wordpress.org/plugins/tags/import/)
 *  [Advanced View](https://pcd.wordpress.org/plugins/calendardrop/advanced/)

## Ratings

No reviews have been submitted yet.

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

[See all reviews](https://wordpress.org/support/plugin/calendardrop/reviews/)

## Contributors

 *   [ thejoshpenner ](https://profiles.wordpress.org/thejoshpenner/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/calendardrop/)