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 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.
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 and service 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

Installation
- Upload the
calendardropfolder to/wp-content/plugins/, or upload the zip directly from Plugins > Add New > Upload Plugin. - Activate CalendarDrop through the Plugins menu.
- Open CalendarDrop in the WordPress admin menu.
- 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.
- 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
-
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.
-
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.
-
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.
ContributorsTranslate “CalendarDrop” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by 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).
