OXP Events Calendar adds an Events post type to WordPress and a visual composer to put it on a page. You build the calendar once, watch it render live at full width while you work, and copy out a shortcode.
Recurring events are stored once and expanded when a month is rendered, so a weekly meetup running for five years is one row in your database, not 260.
The free plan is a working calendar rather than a demo: two calendars, sixty events and six event categories, with everything below included. Venues and organizers are never counted.
Events
Calendars
Three choices drive the output, and the preview updates as you make them.
Colour comes from the event categories: set it once and every calendar follows.
Front end
.oxpec- class, and day cells also carry --today, --past and --futureImport and export (Premium)
JSON in and out, from the Events list. An export is self-contained: events, recurrence rules, terms, featured image URLs, and the full definition of every category, venue and organizer it references. Terms are matched by slug and reused, and an event already there with the same slug and start is skipped, so re-importing never doubles your calendar.
Integrations
.ics download per event and a feed for a whole calendarEvent structured data for rich resultsget_field() and field bindings resolve without a second editing UIEverything described above is in the free plugin. Three things are counted, and one feature is reserved:
Nothing is counted while you stay under the limits, and nothing is deleted or hidden if a site already sits above them: the counts only decide whether one more can be created. Events, Categories and Settings each show where the site stands, and Events, Upgrade lists what a licence adds.
Premium is not on sale yet.
This plugin connects to Google Fonts, and to nothing else. No data about your visitors is ever sent anywhere.
Google Fonts (fonts.googleapis.com and fonts.gstatic.com)
What it is and what it is used for: Google Fonts is Google’s font hosting service. The calendar composer offers a short list of Google font families for the calendar’s typography. When you pick one, the plugin downloads that font from Google once, to your own server, and serves it from your uploads directory from then on. This is done so that your visitors’ browsers never contact Google: the font is self-hosted, which is what keeps a calendar built with a custom font compatible with the GDPR.
What is sent and when: a request is made only in wp-admin, and only when an administrator saves a calendar that uses a Google font or previews one in the composer. The request asks https://fonts.googleapis.com/css2 for the stylesheet of the family, weight and style you chose, and then asks https://fonts.gstatic.com for the .woff2 files that stylesheet points to. What Google receives is therefore the name of the font you picked, your server’s IP address, and the user agent of the request, which for the font files is WordPress’s own user agent string and includes your site address. No personal data, no visitor data, no content of your site and no site identifier of ours is sent. Nothing is requested again once the font is on disk, and no request is ever made while a page is being rendered for a visitor.
If you do not choose a Google font, the plugin never contacts Google at all.
Service provided by Google: terms of service, privacy policy, Google Fonts privacy FAQ.
Importing events
The JSON import is not a third party service, but it does make your site fetch remote files: an export records the URL of each event’s featured image, so importing a file downloads those images into your media library. The requests go to whatever site the file was exported from, which is normally your own, and they only happen when you deliberately import a file.
Settings Implementation lists every place the plugin can put a calendar. A builder integration only becomes selectable once that builder is detected on the site, and unchecking one removes it from that editor without touching pages that already use it.
[oxpec_calendar id="12"]
Every attribute below overrides the saved calendar for that one placement:
mode: calendar or agendascheme: light or darktheme: minimal, cards, compact or custom (raw is the same thing, and keeps working)color: force one hex colour on every event, in place of its category colourtext_color: force a hex colour on titles and body textcategories, venues, organizers: comma-separated IDs or slugslink: modal, single or urlweekends: show, hide or dimfilters, ajax, legend, hide_past: 1 or 0per_page, max_per_day: numbersmonth, year: the period to open onExample: [oxpec_calendar id="12" mode="agenda" theme="compact" categories="concerts,talks" filters="0"]
The earlier view (grid and list), design and hide_weekends attributes are still accepted and mapped to the ones that replaced them, so a shortcode never stops rendering because an attribute was renamed.
Write to [email protected]. The Support and Suggestions links on the Plugins screen and at the top of Events Settings open a mail with the subject already filled in and the plugin version included, which is the first thing any reply would otherwise have had to ask for.
Filters:
oxpec_event_post_type_args: event post type registration argumentsoxpec_occurrences: the resolved occurrences for a windowoxpec_event_query_args: the WP_Query arguments used to collect eventsoxpec_calendar_html: the complete calendar markupoxpec_event_html: the markup of a single occurrenceoxpec_single_details_html: the details block on the event pageoxpec_schema_event: the JSON-LD nodeoxpec_category_color: the colour resolved for a categoryoxpec_enable_scf_bridge: whether to register the SCF / ACF field group