Linux 软件免费装
Banner图

Belltime Events Calendar – Recurring Events & iCal Feed

开发者 frostydev
更新时间 2026年10月8日 11:43
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

calendar event calendar events ical recurring events

下载

0.1.1 0.1.0

详情介绍:

Belltime Events Calendar is an events calendar for sites where a wrong time has a cost — venues, studios, course providers, conference organisers. It does three things carefully and leaves the rest alone. Recurring events, in full, in the free plugin. Not just "every week": intervals, occurrence counts, end dates, ordinal weekdays such as the second Tuesday or the last Friday, days of the month counted from either end, months of the year, set positions, explicit extra dates, and cancelled dates. If your quiz night is every other Tuesday and your class is the first Saturday of the month, the plugin expresses both and produces the right dates for them. Occurrences are never database rows. A weekly class running for two years is one event with one rule, not 104 posts in your database, your sitemap and every other plugin's queries. The dates are worked out when a page is drawn. No scheduled job generates anything, and there is nothing to reconcile when you edit a series. Cancelling or moving a single occurrence records only that exception — the rest of the series keeps its dates and its links. Times that stay right. Every event stores a wall-clock time, a length, and the name of its timezone. That combination is what keeps a 19:00 event at 19:00 after the clocks change, keeps a two-hour event two hours long across a daylight-saving transition, and lets a touring show carry the local time of each city it plays. When the timezone database is updated, the derived values are recalculated rather than left to drift. What it includes What it deliberately does not do Pro A separate paid add-on adds incoming synchronisation: subscribing to .ics feeds from Google Calendar, Outlook and Microsoft 365, Apple iCloud, Nextcloud, Teamup and anything else that speaks iCalendar, with several calendars at once and a panel showing when each last synced and what failed. It is not required, and nothing here is limited or disabled without it. This plugin mentions the add-on only to administrators, and only on its own screens: a "Sync from other calendars" tab and a dismissible line on its settings screen, a line in the "Get started" box while the events list is empty and a button on the list once it has events, a dismissible line when adding an event once one already exists, and a link in its own row on the Plugins screen. Nothing appears in the block editor. None of them is a site-wide notice or a dashboard widget, none opens by itself, none shows a price, and all of them disappear once an add-on is active. Details are on the plugin's home page, which is the Plugin URI on this listing.

安装:

  1. In your WordPress admin, go to Plugins, then Add New, and search for "Belltime Events Calendar".
  2. Press Install, then Activate.
  3. Go to Settings, then General, and make sure the site timezone is a named city such as Europe/Copenhagen rather than a fixed offset such as UTC+1. A fixed offset does not know when your country changes its clocks, and every event will be an hour out for half the year. This is the single most common cause of wrong event times on WordPress sites, and it is not specific to this plugin.
  4. An Events menu appears. Create an event, set its date, its start time as it appears on a wall clock, and how long it runs.
  5. Add the Belltime Events Calendar block to a page — it is under Widgets in the block inserter — or use the shortcode:
[belltime_events] The shortcode takes optional attributes: [belltime_events view="month"] [belltime_events view="list" limit="5" days="90" category="concerts"] Visitors can subscribe to your calendar at /belltime-calendar.ics. If your site's PHP or WordPress version is older than this plugin requires, it will not load and will tell you so in an admin notice. It will not take your site down.

屏幕截图:

  • Every date a repeat rule produced, listed under the event. This one is a six week
  • Cancelling a single occurrence of a series, leaving the other dates untouched.
  • The month grid on the front end.
  • The list view on the front end.
  • The settings screen: two steps to a first calendar with the shortcode to copy, then the

常见问题:

Does it create a post for every occurrence of a repeating event?

No. One event carries one recurrence rule and the dates are calculated when a page is drawn. Only exceptions — a cancelled or moved occurrence — are stored, and there is one record per exception rather than per occurrence.

Which recurrence rules are supported?

FREQ (daily, weekly, monthly, yearly), INTERVAL, COUNT, UNTIL, WKST, BYDAY including ordinals such as 2TU and -1FR, BYMONTHDAY including negative values, BYMONTH, BYSETPOS, plus EXDATE and RDATE. If the plugin meets a rule it cannot expand, it shows the base occurrence and says so in an admin notice rather than silently producing wrong dates.

Can each event have its own timezone?

Yes. The site timezone is the default and any event can override it. Useful for touring productions, online courses and organisations operating in more than one country.

What happens to a two-hour event that crosses a daylight-saving change?

It stays two hours long. The plugin stores a duration rather than an end time, which is what keeps the length correct across a clock change in either direction.

Does it work with the block editor and with page builders?

Both. There is a block for the block editor and a shortcode for classic editors, widget areas, page builders and theme templates. Both take the same options and produce the same output. The plugin's settings screen shows the shortcode in its "Get started" box, so you can copy it without leaving the page. Its attributes are view, limit, days, category and month, and they are documented here.

Will it slow my site down?

It should cost nothing on pages that do not contain a calendar. Seven callbacks are registered — two for the calendar feed (template_redirect, and redirect_canonical so the feed address is not redirected), one on pre_get_posts for the events archive, two on the content filters, and two on the date filters so an event shows its own date rather than the day it was published — and every one of them returns on its first line when the request is not about events. No scheduled task is registered, no database table is created, and exactly two small options are autoloaded. This is worth verifying yourself with Query Monitor rather than taking on trust.

What happens to my events if I delete the plugin?

They stay. Deleting the plugin removes its options and its cached values, and leaves your events in the database. Removing them as well is a checkbox you have to tick deliberately before deleting, because a deletion that cannot be undone should never be the default.

Does it import from Google Calendar or Outlook?

Not in this plugin. Incoming synchronisation is in the separate paid add-on described in the Description section. This plugin publishes an outgoing feed but does not read anyone else's.

I use a page cache, and the month grid highlights the wrong day

That is the cache, and it is worth knowing about rather than working around. The month view marks today while the page is built on your server. A full-page cache then serves that same HTML to everyone until it expires, so if the page was built yesterday, the highlight is on yesterday. Nothing else in the calendar is affected: dates, times and the order of events are all properties of the events themselves, and they stay right. Only the "today" highlight depends on when the page was rendered. We have deliberately not fixed this with JavaScript. The frontend of this plugin ships none at all, which is what lets it work inside caches, AMP-style output and strict content security policies without special cases, and a highlight is not worth giving that up. If it matters on your site, exclude the page from your cache, or set the cache lifetime to expire nightly.

更新日志:

0.1.1 0.1.0