Description
CalendarDrop takes the busywork out of building an events calendar. Upload a flyer, PDF, or Word document, or connect an inbound-email service to forward email text through the authenticated webhook. CalendarDrop reads the date, time, venue, and description and writes them up as a draft event for you to review.
The free plugin works through your own AI provider key (Bring Your Own Key). You pick the provider, enter your key, and pay that provider directly. All existing BYO features remain available. An optional CalendarDrop service connection provides a separate processing mode with an event allowance. Review current service availability and terms in your CalendarDrop account before using it. Installing or connecting this plugin does not start a paid subscription.
What it does
- Reads event details from flyer images, PDFs, Microsoft Word (.docx) document-body text, and email text received through the authenticated webhook.
- Creates events as drafts so you always review them before anything is published. Nothing goes live on its own.
- Works with The Events Calendar when it is active: your imports land as native events you can open and edit there. The Events Calendar is a separate plugin by StellarWP and is not required.
- Works independently: if you do not use an event plugin, CalendarDrop creates standard WordPress draft posts carrying the event details, so it runs on any WordPress site.
- Forward emails to import: use an inbound webhook service (like Mailgun or Postmark) to route forwarded emails to your site, and CalendarDrop reads them and drafts the event automatically.
- A customizable public or private dropzone (off by default) that lets people you trust submit a flyer without a WordPress login, matched to your site with custom colors, fonts, and a logo.
- Per-upload categories: assign a category to an upload and every event from it is filed under that category, so you can drive separate, filtered calendar views.
- Duplicate handling: ignore a match, flag it as a new draft for review, or merge details into an existing draft. Merge mode leaves published and other non-draft events unchanged and reports that the duplicate needs review.
- Pulls a featured image from the flyer when one is available.
- In BYO mode, a built-in AI diagnostic assistant that helps you check your connection and troubleshoot setup in plain language.
Word imports read the main document text. They do not read embedded images, headers, or footers; export designed Word flyers as PDF. Native PDF processing sends the complete PDF in subscription or Gemini mode. Other BYO providers can use complete browser-extracted PDF text; scanned PDFs require a native-PDF provider. A first-page thumbnail is never substituted for the document.
Choose your AI provider (Bring Your Own Key)
- OpenAI and OpenAI-compatible chat endpoints (including Azure OpenAI and local/self-hosted endpoints)
- Google Gemini (native API)
- Anthropic Claude (native API)
The site administrator chooses the provider, enters their own API key, selects a model, and clicks Test Connection. Keys are stored in your site’s own WordPress options database, on your own server.
Third-Party Services / Privacy
In BYO mode, CalendarDrop uses the AI provider you choose and configure with your own API key. Processing actions, connection tests, and optional scheduled imports contact that provider. Scheduled imports run only if enabled by the administrator.
In BYO mode, when you run one of those actions, CalendarDrop sends the content being processed to the provider you configured. That content can include event text, flyer image data, extracted PDF and Word document text, and diagnostic prompts. Your API key is stored only in your site’s own WordPress database and is never sent to Penner Strategy. You are responsible for reviewing the provider’s Terms of Use and Privacy Policy before using the plugin.
Optional CalendarDrop service. The plugin connects to https://calendardrop.pennerstrategy.com, operated by Penner Strategy. Opening CalendarDrop > Subscription requests service status and plan information and sends your site URL. After you connect, that page also requests your account allowance and billing status using a private site token. Connecting sends the one-time connection code or paid license key and site URL to the service. Connection and processing mode are separate choices; connecting does not change your saved BYO mode.
When you explicitly select subscription mode and submit an import, the plugin sends the site URL, timezone, current date/time, and submitted event text, image, or complete PDF to CalendarDrop. Word document imports send extracted document-body text. CalendarDrop forwards the source and extraction instructions to Google’s Gemini API and returns event details for WordPress draft creation. The service holds its own AI provider credential. Your existing BYO keys are not sent to CalendarDrop. The plugin stores the separate private site token in a non-autoloaded WordPress option and never displays it.
Created draft events consume the service allowance. Duplicate and failed event outcomes release their reservations after confirmation. Interrupted or uncertain imports remain reserved for review. WordPress stores job IDs, per-event outcomes, idempotency context, and saved result summaries for replay and reconciliation; these records are not a full token-cost ledger and currently have no automatic retention cleanup. Pending settlement confirmations can retry in the background without repeating extraction. The service keeps account, usage and billing records and temporarily keeps extracted results for recovery. Review its current data-use and retention information before sending material.
Subscription mode supports event-text imports, authenticated email webhooks, and flyer uploads (up to 4 MB for native images/PDFs). AI diagnostics, AI edits, and scheduled web-feed extraction remain BYO features. Service processing and purchase availability are shown in the CalendarDrop account; the plugin does not guarantee availability or activate a purchase on its own.
CalendarDrop account and service information: https://calendardrop.pennerstrategy.com/account
Data use and retention: https://calendardrop.pennerstrategy.com/privacy
Service terms: https://calendardrop.pennerstrategy.com/terms
Polar handles subscription checkout, payment methods, billing and license verification when those features are available. CalendarDrop sends your account email and customer identity to Polar for checkout or billing access and validates the paid license and connected site with Polar. Card details are handled by Polar rather than this WordPress plugin. Review the purchase terms shown by Polar before confirming. Polar Privacy: https://polar.sh/legal/privacy-policy
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). If you supply your own Google Maps API key and an event has a venue name, CalendarDrop sends that venue/location name to the Google Places API to look up address details. Nothing is sent to Google unless you have configured a Google Maps key. Google Terms: https://cloud.google.com/maps-platform/terms: Privacy: https://policies.google.com/privacy
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.
- Choose your AI provider, enter your API key, pick a model, and click Test Connection. To use the optional CalendarDrop service, open CalendarDrop > Subscription, review service availability, connect the site, and explicitly select subscription mode instead.
- Optional: install and activate The Events Calendar so imports become native calendar events. Without it, CalendarDrop creates standard draft posts instead.
FAQ
-
Do I need an AI provider API key?
-
BYO mode requires your own provider key. The optional CalendarDrop service uses its own provider credential, so you do not need a separate AI provider key for subscription processing. You must connect a site account, select subscription mode, and have an available allowance. Review current service availability in your account.
-
Which AI providers are supported?
-
OpenAI (and OpenAI-compatible endpoints such as Azure OpenAI and local/self-hosted endpoints), Google Gemini, and Anthropic Claude. You choose one, supply your own key, and select a model.
-
Does it require The Events Calendar?
-
No. CalendarDrop works best with The Events Calendar active, where imports become native events. If that plugin is not installed, CalendarDrop falls back to creating standard WordPress draft posts that carry the event details, so it runs on any site.
-
Are events published automatically?
-
No. Everything CalendarDrop creates is a draft. You review and publish each event yourself. Email and webhook imports are forced to draft status as well.
-
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?
-
CalendarDrop provides a secret-authenticated REST webhook URL on the Advanced Integrations tab. Point your inbound-email service at that URL (for example Postmark, Mailgun, or a SendGrid-style inbound parse) so forwarded emails POST to it. CalendarDrop reads the email body, drafts the event, and logs the result. Email forwarding requires a separately configured inbound-email service, which may charge its own fees. CalendarDrop does not provide an email inbox. Subscription mode has a separate event-text form that creates drafts for review. File uploads do not require an inbound-email service.
-
How do categories work?
-
You can assign a category to an upload. Every event imported from that upload is automatically filed under that category, which lets you build separate, filtered calendar views.
-
Is it really free?
-
Yes. The existing BYO plugin features remain free. You pay your chosen provider for its usage. The CalendarDrop service is optional and has its own allowance and billing. A CalendarDrop subscription is not required for BYO features.
-
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.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).