{"id":374884,"date":"2026-09-24T22:44:48","date_gmt":"2026-09-24T22:44:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/beacon-events\/"},"modified":"2026-09-27T23:26:41","modified_gmt":"2026-09-27T23:26:41","slug":"beacon-events","status":"publish","type":"plugin","link":"https:\/\/pirate.wordpress.org\/plugins\/beacon-events\/","author":23573100,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.9.1","stable_tag":"0.9.1","tested":"7.1.2","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"Beacon Events \u2013 Events Calendar with Recurring Events & Google Calendar Sync","header_author":"Beacon Events","header_description":"A light, honest events calendar. Recurring events, ICS and Google Calendar import that stays in sync, and calendar views that look like your site \u2014 all free. Uninstalls clean.","assets_banners_color":"182441","last_updated":"2026-09-27 23:26:41","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/beacon-events\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":322,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"0.2.1":{"tag":"0.2.1","author":"beaconevents","date":"2026-09-24 22:44:14","revision":3712140},"0.2.2":{"tag":"0.2.2","author":"beaconevents","date":"2026-09-25 01:21:17","revision":3712218},"0.2.3":{"tag":"0.2.3","author":"beaconevents","date":"2026-09-25 20:49:40","revision":3713562},"0.2.4":{"tag":"0.2.4","author":"beaconevents","date":"2026-09-25 23:07:10","revision":3713677},"0.3.0":{"tag":"0.3.0","author":"beaconevents","date":"2026-09-26 01:50:28","revision":3713742},"0.4.0":{"tag":"0.4.0","author":"beaconevents","date":"2026-09-26 02:03:00","revision":3713765},"0.5.0":{"tag":"0.5.0","author":"beaconevents","date":"2026-09-26 02:09:27","revision":3713771},"0.6.0":{"tag":"0.6.0","author":"beaconevents","date":"2026-09-26 03:24:47","revision":3713790},"0.6.1":{"tag":"0.6.1","author":"beaconevents","date":"2026-09-26 21:42:26","revision":3714768},"0.7.0":{"tag":"0.7.0","author":"beaconevents","date":"2026-09-26 23:07:18","revision":3714822},"0.8.0":{"tag":"0.8.0","author":"beaconevents","date":"2026-09-26 23:53:32","revision":3714848},"0.8.1":{"tag":"0.8.1","author":"beaconevents","date":"2026-09-27 16:14:31","revision":3715713},"0.8.2":{"tag":"0.8.2","author":"beaconevents","date":"2026-09-27 16:51:28","revision":3715743},"0.8.3":{"tag":"0.8.3","author":"beaconevents","date":"2026-09-27 17:54:47","revision":3715882},"0.8.4":{"tag":"0.8.4","author":"beaconevents","date":"2026-09-27 18:13:12","revision":3715943},"0.8.5":{"tag":"0.8.5","author":"beaconevents","date":"2026-09-27 19:15:15","revision":3715989},"0.9.0":{"tag":"0.9.0","author":"beaconevents","date":"2026-09-27 21:57:43","revision":3716089},"0.9.1":{"tag":"0.9.1","author":"beaconevents","date":"2026-09-27 23:26:41","revision":3716140}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3712142,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3712142,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3712142,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3712142,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"beacon\/events":{"name":"beacon\/events","title":"Events"},"beacon\/term-details":{"name":"beacon\/term-details","title":"Venue \/ category details"}},"tagged_versions":["0.2.1","0.2.2","0.2.3","0.2.4","0.3.0","0.4.0","0.5.0","0.6.0","0.6.1","0.7.0","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.8.5","0.9.0","0.9.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3712142,"resolution":"1","location":"assets","locale":"","width":1292,"height":1496},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3712142,"resolution":"2","location":"assets","locale":"","width":1386,"height":1250},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3712142,"resolution":"3","location":"assets","locale":"","width":2880,"height":1800},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3712142,"resolution":"4","location":"assets","locale":"","width":2880,"height":1800},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3713743,"resolution":"5","location":"assets","locale":"","width":1280,"height":800}},"screenshots":{"1":"The month view, inheriting the theme.","2":"The list view, grouped by day.","3":"Editing an event: when, how often, where \u2014 in one box.","4":"Feeds and the sync log.","5":"Import from The Events Calendar, Events Manager or All-in-One Event Calendar, or a CSV file: one click, nothing deleted."}},"plugin_section":[],"plugin_tags":[4754,4743,7103,6296,5881],"plugin_category":[],"plugin_contributors":[282603],"plugin_business_model":[],"class_list":["post-374884","plugin","type-plugin","status-publish","hentry","plugin_tags-events-calendar","plugin_tags-google-calendar","plugin_tags-ical","plugin_tags-ics","plugin_tags-recurring-events","plugin_contributors-beaconevents","plugin_committers-beaconevents"],"banners":{"banner":"https:\/\/ps.w.org\/beacon-events\/assets\/banner-772x250.png?rev=3712142","banner_2x":"https:\/\/ps.w.org\/beacon-events\/assets\/banner-1544x500.png?rev=3712142","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/beacon-events\/assets\/icon-128x128.png?rev=3712142","icon_2x":"https:\/\/ps.w.org\/beacon-events\/assets\/icon-256x256.png?rev=3712142","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/beacon-events\/assets\/screenshot-1.png?rev=3712142","caption":"The month view, inheriting the theme."},{"src":"https:\/\/ps.w.org\/beacon-events\/assets\/screenshot-2.png?rev=3712142","caption":"The list view, grouped by day."},{"src":"https:\/\/ps.w.org\/beacon-events\/assets\/screenshot-3.png?rev=3712142","caption":"Editing an event: when, how often, where \u2014 in one box."},{"src":"https:\/\/ps.w.org\/beacon-events\/assets\/screenshot-4.png?rev=3712142","caption":"Feeds and the sync log."},{"src":"https:\/\/ps.w.org\/beacon-events\/assets\/screenshot-5.png?rev=3713743","caption":"Import from The Events Calendar, Events Manager or All-in-One Event Calendar, or a CSV file: one click, nothing deleted."}],"raw_content":"<!--section=description-->\n<p>Beacon Events is an events calendar that does the basics properly and doesn't charge you for them. <strong><a href=\"https:\/\/store-safety.duckdns.org\/demo\/\">See it running<\/a><\/strong> on a stock Twenty Twenty-Five site: month grid with the filter bar, day view, event pages, venue pages.<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=_X5LTwl0Y3I<\/p>\n\n<p><strong>Who it's for.<\/strong> Churches publishing weekly services and a monthly potluck. Yoga, fitness and dance studios with a class schedule that repeats every week. Libraries and schools with story times, term dates and board meetings. Clubs, meetups and volunteer groups, bars and venues with a weekly music night, and anyone running online events on Zoom or Google Meet.<\/p>\n\n<p>Recurring rules use the iCalendar RRULE standard, the same format Google Calendar and Outlook use, so a rule like \"second Tuesday of the month\" round-trips with calendar apps.<\/p>\n\n<ul>\n<li><strong>Recurring events are free.<\/strong> Daily, weekly, monthly (\"second Tuesday\", \"last Friday\"), yearly \u2014 with an end date or a count, dates you can skip, and single dates you can cancel or move.<\/li>\n<li><strong>Import from Google Calendar or any ICS feed, and stay in sync.<\/strong> Feeds are checked hourly. Every sync is logged \u2014 created, updated, removed \u2014 so nothing drifts silently. Events that disappear from a feed are set to draft, never deleted behind your back.<\/li>\n<li><strong>Views that look like your site.<\/strong> List, month and day views as blocks, shortcodes or an Elementor widget, with an optional filter bar (category, venue, search). Our stylesheet does layout only \u2014 colours and fonts come from your theme, and every element has a class you can target. Give a category a colour and its events get a dot or a bar.<\/li>\n<li><strong>No bloat.<\/strong> Styles load only on pages that show events. No add-on store, no upsell screens, no nag notices.<\/li>\n<li><strong>Online events.<\/strong> Flip \"Online event\", paste the meeting link, and visitors get a Join button; calendar apps get the link too.<\/li>\n<li><strong>Search engines understand your events.<\/strong> schema.org Event markup on every event page, one entry per upcoming date.<\/li>\n<li><strong>Venues with addresses.<\/strong> Each venue has a street address, shown on the event with a map link \u2014 no API key, no embedded map slowing the page down.<\/li>\n<li><strong>Export.<\/strong> Every event has \"Add to calendar (.ics)\" and \"Add to Google Calendar\" links, and your whole calendar has a subscribable feed.<\/li>\n<li><strong>Moving from The Events Calendar, Events Manager or All-in-One Event Calendar?<\/strong> Events \u2192 Import \/ Export copies events, venues, organizers, categories, images and recurring rules in one click, without touching the old plugin. Deactivate it when you are happy; old links are redirected. Anything else comes in through a CSV file, and every event can go out as one.<\/li>\n<li><strong>Uninstalls clean.<\/strong> Turn on \"delete all data on uninstall\" and the plugin removes everything it created \u2014 events, venues, categories, settings, its table.<\/li>\n<\/ul>\n\n<h4>External services<\/h4>\n\n<p>Beacon Events does not phone home, track anything, or load scripts from third parties. Two things touch the outside world, both under your control:<\/p>\n\n<ul>\n<li><strong>Calendar feeds you add.<\/strong> If you enter an ICS URL under Events \u2192 Settings (for example your Google Calendar's public iCal address), the plugin fetches that URL from your server once an hour to keep events in sync. Nothing is fetched unless you add a feed.<\/li>\n<li><strong>Plain links.<\/strong> The \"Map\" and \"Add to Google Calendar\" links on an event are ordinary hyperlinks to google.com\/maps and calendar.google.com. They open in the visitor's browser; the plugin sends nothing itself. Google's terms: https:\/\/policies.google.com\/terms<\/li>\n<\/ul>\n\n<h4>Data the plugin stores<\/h4>\n\n<p>One database table, <code>{prefix}beacon_occurrences<\/code>, holding the expanded dates of each event. It is removed on uninstall only if you turn on \"delete all data on uninstall\" under Events \u2192 Settings.<\/p>\n\n<h4>Shortcode<\/h4>\n\n<pre><code>[beacon_events view=\"list\" days=\"60\" limit=\"20\" category=\"workshops\"] \u2014 `category` takes one slug or several, comma-separated (`category=\"workshops,talks\"` shows events in either).\n[beacon_events view=\"month\"]\n[beacon_events view=\"list\" filters=\"1\"] \u2014 adds the category \/ venue \/ search \/ list-month bar.\n[beacon_events layout=\"compact\" limit=\"5\"] \u2014 one line per event, for sidebars.\n[beacon_events view=\"day\"] \u2014 today, with previous\/next links.\nvenue=\"slug\" and `organizer=\"slug\"` work like `category`.\n<\/code><\/pre>\n\n<h4>Block<\/h4>\n\n<p>Add the <strong>Events<\/strong> block and choose list, month or day in the sidebar, or the <strong>Upcoming events<\/strong> variation for a short one-line list. Elementor users: the <strong>Beacon Events<\/strong> widget has the same options.<\/p>\n\n<h4>Tickets and RSVP<\/h4>\n\n<p>Free covers the calendar. If you need people to sign up or pay \u2014 RSVP with capacity per date, paid tickets through Stripe or your WooCommerce checkout, a waitlist when a date is full, reminder emails the day before, attendee lists with CSV export, QR tickets with phone check-in at the door, visitor-submitted events \u2014 there is a paid add-on, Beacon Events Pro, with a 14-day free trial that needs no card. Nothing in the free plugin is time-limited, crippled or nagged.<\/p>\n\n<h4>Setup in five minutes<\/h4>\n\n<ol>\n<li>Events \u2192 Add New Event. Set Starts and Ends in the When panel; pick Repeats if it recurs (weekly on Tuesday, second Tuesday of the month, last Friday\u2026). Add a venue and a category from the sidebar.<\/li>\n<li>Put the <strong>Events<\/strong> block on a page (or the shortcode below). Choose list, month or day, and switch on the filter bar if you have several categories or venues.<\/li>\n<li>Moving from another plugin? Events \u2192 Import \/ Export. Have a Google Calendar? Events \u2192 Settings \u2192 paste its iCal address.<\/li>\n<\/ol>\n\n<p>That is the whole setup. Everything else \u2014 colours, venues with maps, online events, per-date changes \u2014 is optional.<\/p>\n\n<h4>Roadmap<\/h4>\n\n<p>Next, in this order: a CSV import for attendees, Modern Events Calendar import, per-event reminder settings, and translations. Requests and bug reports on the support forum get answered; the plugin is small enough that most fixes ship within days.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"are%20recurring%20events%20really%20free%3F\"><h3>Are recurring events really free?<\/h3><\/dt>\n<dd><p>Yes. That's the point.<\/p><\/dd>\n<dt id=\"does%20it%20work%20as%20a%20church%20calendar%3F\"><h3>Does it work as a church calendar?<\/h3><\/dt>\n<dd><p>Yes. Enter the weekly service once as a recurring event, add special services and holidays as single events, and cancel or move one date when plans change. The month view and the upcoming list go on any page, and members can add the whole calendar to their phone with the subscribe link.<\/p><\/dd>\n<dt id=\"how%20do%20i%20connect%20google%20calendar%3F\"><h3>How do I connect Google Calendar?<\/h3><\/dt>\n<dd><p>In Google Calendar, open the calendar's settings and copy the \"Public address in iCal format\". Paste it under Events \u2192 Settings \u2192 Calendar feeds. It syncs hourly, and you can press \"Sync feeds now\" any time.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20an%20event%20is%20removed%20from%20my%20google%20calendar%3F\"><h3>What happens if an event is removed from my Google Calendar?<\/h3><\/dt>\n<dd><p>It's set to draft on your site and the removal is written to the sync log. You decide whether to delete it.<\/p><\/dd>\n<dt id=\"will%20it%20change%20how%20my%20site%20looks%3F\"><h3>Will it change how my site looks?<\/h3><\/dt>\n<dd><p>No. The stylesheet only does layout. Colours, fonts and spacing inherit from your theme.<\/p><\/dd>\n<dt id=\"can%20i%20move%20my%20events%20from%20the%20events%20calendar%20or%20events%20manager%3F\"><h3>Can I move my events from The Events Calendar or Events Manager?<\/h3><\/dt>\n<dd><p>Yes. Events \u2192 Import \/ Export finds what either plugin stored in your database (it works even if that plugin is already deactivated) and copies events, venues with addresses, organizers, categories, featured images, timezones and recurring rules across. Nothing is deleted. Run it again later and it updates what it imported instead of making duplicates. Old event, venue and category links are redirected to the imported items.<\/p><\/dd>\n<dt id=\"all-in-one%20event%20calendar%20%28time.ly%29%20was%20removed%20from%20wordpress.org.%20can%20i%20move%20my%20events%3F\"><h3>All-in-One Event Calendar (Time.ly) was removed from wordpress.org. Can I move my events?<\/h3><\/dt>\n<dd><p>Yes. Its events stay in your database, and Events \u2192 Import \/ Export reads them directly, even with All-in-One Event Calendar still active or already deactivated. Events, categories with their colours, venues with addresses, contacts, featured images, timezones, recurring rules and skipped dates come across; \"every weekday\" rules become a weekly rule on those days. Events it pulled in from calendar feeds keep their feed IDs, so adding the same feed under Events \u2192 Settings adopts them instead of duplicating them. Its old category and calendar-view links are redirected, and the report tells you which page used to show the calendar.<\/p><\/dd>\n<dt id=\"what%20about%20my%20tickets%20and%20attendees%20from%20event%20tickets%20or%20event%20tickets%20plus%3F\"><h3>What about my tickets and attendees from Event Tickets or Event Tickets Plus?<\/h3><\/dt>\n<dd><p>The free importer moves events, venues, organizers and categories, and shows how many tickets and confirmed attendees it found. Beacon Events Pro, the paid add-on, imports those too: each event's ticket price and capacity, every RSVP \"yes\", every attendee of a completed Tickets Commerce order, and every Event Tickets Plus attendee whose WooCommerce order is completed or processing, with the order linked. Unpaid orders are left behind and no emails are sent.<\/p><\/dd>\n<dt id=\"can%20i%20import%20from%20a%20spreadsheet%3F\"><h3>Can I import from a spreadsheet?<\/h3><\/dt>\n<dd><p>Yes. Save it as CSV with a header row (title and start are the only required columns; venue, address, organizer, categories, repeat rule, skip dates, online link and image URL are optional) and upload it on Events \u2192 Import \/ Export. Export gives you every event in the same format, and an edited export comes back as updates.<\/p><\/dd>\n<dt id=\"can%20i%20cancel%20or%20move%20just%20one%20date%20of%20a%20recurring%20event%3F\"><h3>Can I cancel or move just one date of a recurring event?<\/h3><\/dt>\n<dd><p>Yes. Under the rule in the editor sidebar (or the When box in the classic editor) the next few dates are listed; mark one cancelled and it stays on the calendar as cancelled, or move it to another time. Skipped dates, by contrast, disappear entirely.<\/p><\/dd>\n<dt id=\"can%20i%20sell%20tickets%20without%20eventbrite%27s%20per-ticket%20fees%3F\"><h3>Can I sell tickets without Eventbrite's per-ticket fees?<\/h3><\/dt>\n<dd><p>Yes, with Beacon Events Pro, as an Eventbrite alternative for tickets you sell from your own site. Buyers pay through your own Stripe account or your WooCommerce checkout, so the only fee is your payment provider's card fee. Eventbrite's US pricing adds a service fee of 3.7% + $1.79 to every paid ticket. Pro is $49 a year for one site and includes a capacity per date, a waitlist, reminder emails, an attendee list, QR tickets you scan at the door with a phone, and a printable door list. Each event can have several ticket types, like early bird and VIP, with their own prices and capacities. There is no reserved seating, so it suits classes, workshops and small events.<\/p><\/dd>\n<dt id=\"what%27s%20in%20the%20paid%20version%3F\"><h3>What's in the paid version?<\/h3><\/dt>\n<dd><p>Tickets and RSVPs with card payments, attendee export, and priority support. You can try it free for 14 days without a card. Nothing in the free version moves behind a paywall.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.9.1<\/h4>\n\n<ul>\n<li>The Tickets &amp; RSVP page and FAQ mention QR tickets with phone check-in (Beacon Events Pro 0.7.0).<\/li>\n<\/ul>\n\n<h4>0.9.0<\/h4>\n\n<ul>\n<li>Fixed: a repeating event that began more than two years ago showed no upcoming dates. This hit series brought in by an import or a Google Calendar sync, like a weekly service that has run since 2019. Every series now keeps a year of past dates and always reaches two years ahead, and a daily task extends open-ended series so they never run out.<\/li>\n<li>Fixed: calendar sync overwrote a whole repeating series when a feed changed or cancelled one of its dates (Google Calendar sends those as separate entries). The date now shows as moved or cancelled on the series. A title-only change to one date is left out, since Beacon can't show a different title for one date.<\/li>\n<li>Fixed: only the last skipped date survived when a feed listed several, and skipped dates or end dates written in UTC could land on the wrong day. A weekly series written in UTC now keeps its local weekday, so a Tuesday 7:30 pm class no longer shows up on Wednesday.<\/li>\n<li>Cancelled events in a feed are no longer imported. Monthly rules written with BYSETPOS (Outlook's \"second Tuesday\") are read.<\/li>\n<li>The Tickets &amp; RSVP page mentions check-in at the door and the printable door list (Beacon Events Pro 0.6.0).<\/li>\n<\/ul>\n\n<h4>0.8.5<\/h4>\n\n<ul>\n<li>The Tickets &amp; RSVP page and FAQ describe ticket types (early bird, general, VIP\u2026), new in Beacon Events Pro 0.5.0.<\/li>\n<\/ul>\n\n<h4>0.8.4<\/h4>\n\n<ul>\n<li>Import from The Events Calendar now also counts Event Tickets Plus tickets and the attendees of paid WooCommerce orders, so you can see what will come across. Beacon Events Pro 0.4.0 imports them.<\/li>\n<\/ul>\n\n<h4>0.8.3<\/h4>\n\n<ul>\n<li>The paid add-on can now be tried free for 14 days with just an email, no card. The Tickets &amp; RSVP page and the editor panel link to the trial.<\/li>\n<\/ul>\n\n<h4>0.8.2<\/h4>\n\n<ul>\n<li>The block editor shows a collapsed \"Tickets &amp; RSVP\" panel on events, saying what the paid add-on does and linking to its page. It only appears while the add-on isn't installed. There are still no notices anywhere in WordPress admin.<\/li>\n<\/ul>\n\n<h4>0.8.1<\/h4>\n\n<ul>\n<li>One database query less on every page load: the \"flush rewrite rules\" flag is now kept (set to 0) after activation instead of deleted, since WordPress looks a missing option up again on each request unless a persistent object cache is installed.<\/li>\n<\/ul>\n\n<h4>0.8.0<\/h4>\n\n<ul>\n<li>Import from All-in-One Event Calendar by Time.ly (closed on wordpress.org in 2025): events, recurring rules and skipped dates, categories with their colours, venues and addresses, contacts, featured images and timezones. \"Every day except weekends\" rules become a weekly rule on the remaining days. Events that came from calendar feeds keep their feed IDs. Old category, calendar-view and event links are redirected once it is deactivated.<\/li>\n<li>Calendar navigation no longer hands search engines an endless set of dates: previous\/next and day links are nofollow, date and filter pages are marked noindex, and the robots.txt WordPress generates asks crawlers to skip them (filter <code>beacon_robots_txt<\/code> to turn that off).<\/li>\n<li>Fixed: on a standalone day view, the previous\/next arrows did not change the date.<\/li>\n<li>Fixed: \"delete all data on uninstall\" now also removes the import log and any unfinished import.<\/li>\n<\/ul>\n\n<h4>0.7.0<\/h4>\n\n<ul>\n<li>Import from The Events Calendar now counts your Event Tickets data (tickets, RSVPs and confirmed attendees) and says what happens to it. Beacon Events Pro 0.3.0 imports it along with the events.<\/li>\n<li>An extension point after each imported event (<code>beacon_import_after_event<\/code>) for add-ons.<\/li>\n<\/ul>\n\n<h4>0.6.1<\/h4>\n\n<ul>\n<li>Readme: a five-minute setup section, the full block and shortcode reference, and the roadmap. The Tickets &amp; RSVP page describes the current add-on (Stripe or WooCommerce, waitlist, reminders).<\/li>\n<\/ul>\n\n<h4>0.6.0<\/h4>\n\n<ul>\n<li>Import from Events Manager (events, locations with addresses, categories, repeating events with their rule and excluded dates; generated occurrence posts are skipped). Old \/events\/\u2026 and \/locations\/\u2026 links are redirected once Events Manager is deactivated.<\/li>\n<li>CSV import and export (Events \u2192 Import \/ Export): one event per row, with venue, address, organizers, categories, repeat rule, skip dates, online link and image URL. Export first and the file comes back as updates, not duplicates.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>Elementor widget (\"Beacon Events\"): list, month or day view with the same options as the block.<\/li>\n<li>Filter bar on any list or month view: category, venue, search, and a list\/month switch. Plain links, works without JavaScript.<\/li>\n<li>Day view (<code>view=\"day\"<\/code>), and the month grid's day numbers open that day.<\/li>\n<li>Compact layout (<code>layout=\"compact\"<\/code>) and an \"Upcoming events\" block variation: one line per event for sidebars and footers.<\/li>\n<li>Category colours: pick one on Events \u2192 Event Categories; events show a dot in lists and a bar in the month grid.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Change one date of a recurring event: cancel it (it stays listed as cancelled) or move it to another time, from the editor sidebar or the classic When box. Calendar feeds and the RSVP form follow.<\/li>\n<li>Online events: an \"Online event\" switch with a meeting link; a Join button on the event page, \"Online\" in the views, the link in calendar files.<\/li>\n<li>schema.org Event markup on event pages (one entry per upcoming date) so search engines can show your events. Filter <code>beacon_schema<\/code> to change or disable it.<\/li>\n<li>Venue, organizer and category pages on block themes: address and map link, description, a subscribe link and that term's upcoming events. Per-venue, per-organizer and per-category .ics feeds.<\/li>\n<li>\"Duplicate\" on the events list.<\/li>\n<li>Block and shortcode: <code>venue<\/code> and <code>organizer<\/code> filters next to <code>category<\/code>.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Import from The Events Calendar (Events \u2192 Import): events, venues with addresses, organizers, categories with their hierarchy, featured images, timezones and recurring rules (both the current rule-set format and the older serialized one) in one click. Nothing in The Events Calendar is changed or deleted; running it again updates instead of duplicating. Old category and view links are redirected once The Events Calendar is deactivated; event, venue and organizer links keep their addresses.<\/li>\n<\/ul>\n\n<h4>0.2.4<\/h4>\n\n<ul>\n<li>Block editor: the monthly \"On\" field (e.g. 2TU for the second Tuesday) can be typed letter by letter again; it was being cleared after every keystroke.<\/li>\n<\/ul>\n\n<h4>0.2.3<\/h4>\n\n<ul>\n<li>The <code>category<\/code> attribute (block and shortcode) accepts several slugs separated by commas; an event in any of them is shown.<\/li>\n<\/ul>\n\n<h4>0.2.2<\/h4>\n\n<ul>\n<li>A small review link in the footer of Beacon's own admin screens. Still no admin notices anywhere.<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>Event and archive URLs now work immediately after activation, instead of 404ing until permalinks were re-saved.<\/li>\n<li>Admin styles are enqueued properly and load only on the event editor.<\/li>\n<li>Calendar export hardened: carriage returns and control characters in a site name or venue can no longer break the .ics file.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Events archive and single-event pages now use proper event templates on block themes (no more \"Written by\" on an event).<\/li>\n<li>Venues have a street address, shown with a map link and sent to calendar apps.<\/li>\n<li>\"Add to Google Calendar\" link alongside the .ics download.<\/li>\n<li>The \"When\" panel opens by default in the editor and fills in an end time for you.<\/li>\n<li>One \"Tickets &amp; RSVP\" page describing the optional paid add-on. No banners anywhere else.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First release: events, venues, organizers, categories; recurring rules; list and month views as blocks and shortcodes; ICS and Google Calendar import with hourly sync and a log; iCal export; clean uninstall.<\/li>\n<\/ul>","raw_excerpt":"Free events calendar with recurring events, Google Calendar and ICS sync, and one-click import from The Events Calendar or Events Manager.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/374884","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=374884"}],"author":[{"embeddable":true,"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/beaconevents"}],"wp:attachment":[{"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=374884"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=374884"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=374884"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=374884"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=374884"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=374884"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}