Dienstplan
Dienstplan turns your WordPress site into a shift and duty roster that runs without a full-time coordinator. It is built for teams that rely on volunteers — fire departments, emergency medical services, first-responder and crisis-response groups, sports clubs and associations. Members open a calendar page and sign up for open shifts themselves. Coordinators see at a glance which shifts are still open, who already volunteered, and who has not yet contributed this period. Every change is recorded, so “who removed me from Saturday?” always has an answer. Everything runs on your own WordPress install. Member data, schedules and assignments stay in your database — no SaaS account, no recurring fee for the free version. Optional outbound connections (public-holiday lookup via openholidaysapi.org, product notices from wp-dienstplan.de) are documented under External services; the holiday lookup is disabled by default. What you can do Define shift types (early/late/night, driver/paramedic — whatever your team uses) and build week or month rosters Drop the roster onto any page with the [dienstplan] shortcode Show public aggregate statistics (completed shifts, hours, active helpers) with [dienstplan_statistik] — no login required, names never exposed Let members sign up for shifts and remove themselves again — coordinators see every change live, no email ping-pong Plan events like training nights, fundraisers or on-call duties with categories (per-event signup lists come with Basis) Show each member their own upcoming shifts in a dashboard widget Let members download their shifts as an ICS calendar file Why WordPress Most volunteer organisations already run a WordPress site for news and member communication. Adding the roster there means members use the account they already have, your data stays in your own database, and there is no external SaaS to vet for data protection. Free, Basis and Pro The version on WordPress.org is Free and stays free forever: one shift schedule, unlimited members, shift types and events — no artificial caps. Two optional add-ons extend the same plugin in place, with your data carrying over automatically: Basis — multiple rosters, recurring events, per-event signups and tasks, shift trading, group and weekday restrictions, automated email notifications, and a community feedback channel. For established teams that need self-service workflows. Pro — everything in Basis plus attendance statistics, a tamper-evident audit log and waiting-list promotion on full events. For organisations with reporting or audit obligations. Pricing and the full comparison are at wp-dienstplan.de. Languages Ships with English, German, Spanish, French and Italian. Source strings are English; further languages can be added via standard .po/.mo files in languages/. External services Product notices (wp-dienstplan.de) In the WordPress admin, on Dienstplan’s own screens only, the plugin may request https://www.wp-dienstplan.de/plugin/notices.json to show time-limited product information (for example a promotion). The request is a plain HTTP GET with no query parameters and no cookies from your site; no personal data, member data, license keys or site-identifying payload is transmitted. The response is cached locally (WordPress transient) for up to 12 hours. Notices are dismissible per administrator and never appear on other admin pages. This call is part of the free plugin distributed via WordPress.org. Public holidays (openholidaysapi.org) This plugin connects to the public OpenHolidays API (https://openholidaysapi.org) to retrieve official public-holiday dates for the country and (optional) region configured under Dienstplan → Settings → Holidays. The dates are stored in your own WordPress options and shown as background highlights on the calendar so members can see at a glance which days are public holidays. The feature is fully optional — clearing the holiday country in settings disables every outbound call to that API. It sends a request to https://openholidaysapi.org in three situations: GET /Countries — once, when the admin opens the holiday-settings page and the country list has not been cached yet. No payload, only an HTTP request. GET /Subdivisions?countryIsoCode=XX — once per country, when the admin selects a country in the settings UI to populate the region dropdown. The configured country code is transmitted as a query parameter. GET /PublicHolidays?countryIsoCode=XX&languageIsoCode=YY&validFrom=YYYY-01-01&validTo=YYYY-12-31[&subdivisionCode=ZZZZ] — once per year via WordPress cron, plus on demand when the admin triggers a manual refresh from the settings page. The configured country code, region code (if any), language code and requested year are sent as query parameters. In every case, only configuration values entered by the administrator are transmitted (country / region / language / year). No member names, email addresses, shift data or audit-log entries are sent. This service is provided by STÜBER SYSTEMS GmbH as an Open Data project: terms of use, privacy policy. Project documentation and the data-source overview are available at https://www.openholidaysapi.org. Privacy Dienstplan is built so that all member-related data — names, email addresses (from the WordPress user account), shift assignments, signup history, audit-log entries — stays exclusively in your own WordPress database. The free plugin’s only outbound HTTP requests are the calls documented in External services above (product notices from wp-dienstplan.de and, if enabled, OpenHolidays). Neither call transmits member or personal data. If you use the optional Basis or Pro add-on The commercial add-on contacts a separate license server at lizenz.wp-dienstplan.de for license activation and a daily license-status check. The data transmitted is limited to the license key, your site URL, and a status flag — no member data, no shift data and no email addresses are sent. License-server activity is logged with industry-standard webserver logs (IP, timestamp, user agent) for fraud prevention; the privacy policy at wp-dienstplan.de documents this in detail. The license server is not active in the free plugin distributed via WordPress.org. Cookies and trackers Dienstplan sets no cookies of its own and uses no third-party trackers. The plugin relies on WordPress’s standard authentication cookies for member login and on localStorage for remembering the last selected roster on multi-roster pages.
Top keywords
- wordpress14×1.44%
- data13×1.34%
- country8×0.82%
- member8×0.82%
- org8×0.82%
- shift8×0.82%
- de7×0.72%
- dienstplan7×0.72%
- own7×0.72%
- wp-dienstplan7×0.72%
- wp-dienstplan de7×0.72%
- members6×0.62%
Simple Google Calendar Outlook Events Widget
Simple block or widget to display events from a public google calendar, microsoft office outlook calendar or an other iCal file, in the style of your website. The Gutenberg block requires at least WordPress 5.9. This simple block/widget fetches events from a public google calendar (or other calendar in iCal format) and displays them in simple list allowing you to fully adapt to your website by applying all kinds of CSS. Google offers some HTML snippets to embed your public Google Calendar into your website. These are great, but as soon as you want to make a few adjustments to the styling, that goes beyond changing some colors, they’re not enough. Plugin Features Calendar block or widget to display appointments/events of a public Google calendar or other iCal file. Block gives live preview in the editor and is not constrained to widget area. Old widget will be displayed in legacy widget block only in widget area. Old widget works also with Elementor (with some limitations e.g. preview in backend editor is not always available). Small footprint, uses only Google ID of the calendar, or ICS link for Outlook, or Url of iCal file, to get event information via iCal Merge more calendars into one block Manage events in Google Calendar, or other iCalendar source. Fully adaptable to your website with CSS. Output in unordered list with Bootstrap 4 listgroup classes and toggle for details. Choose date / time format in settings screen that best suits your website. Displays per event DTSTART, DTEND, SUMMARY, LOCATION and DESCRIPTION. DTSTART is required other components are optional. Displays most common repeating events. Frequency Yearly, Monthly, Weekly, Dayly (not Hourly, Minutely and smaller periods) Basic support for filter on Categories Warning: MS Outlook does not share categories via iCal now. Google and iCloud calendar don’t support categories at all. So this will not work with these calendars. In the screenshot below: Left the block with default settings and clicked on one summary. Right with some adjusted settings. Adjusted settings for start with summary: Lay-out: Start with summary. Date format first line: “. l jS \o\f F” Enddate format first line: ” – l jS \o\f F” Time format time summary line: ” G:i” Time format end time summary line: ” – G:i” Time format start time: “” Time format end time: “” Tag for summary: “strong” Documentation Gets calendar events via iCal url or google calendar ID Merge more calendars into one block Displays maximum the selected number of events as listgroup-items Displays only events in a selected period with a length of the setting “Number of days after today with events” from now limited by the time of the day or the beginning of the day at the start and the and of the at the end. Displays events in timezone of WordPress setting, or in Clients timezone with javascript REST call fetched from the clients browser. Displays event start-date and summary; toggle details, description, start-, end-time, location. Displays most common repeating events Frequency Yearly, Monthly, Weekly, Dayly (not parsed Hourly, Minutely …), INTERVAL (default 1), WKST (default MO) End of repeating by COUNT or UNTIL By day month, monthday or setpos (BYDAY, BYMONTH, BYMONTHDAY, BYSETPOS) no other by… (not parsed: BYWEEKNO, BYYEARDAY, BYHOUR, BYMINUTE, RDATE) Exclude events on EXDATE from recurrence set (after evaluating BYSETPOS) Respects Timezone and Day Light Saving time. Build and tested with Iana timezones as used in php, Google, and Apple now also tested with Microsoft timezones and unknown timezones. For unknown timezone-names using the default timezone of WordPress (probably the local timezone). (This widget is a Fork of version 0.7 of that simple google calendar widget by NBoehr https://nl.wordpress.org/plugins/simple-google-calendar-widget/) Copyright and License This project is licensed under the GNU GPL, version 2 or later. 2017 – 2023 © Bram Waasdorp.