{"id":307997,"date":"2026-06-11T12:50:50","date_gmt":"2026-06-11T12:50:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dienstplan\/"},"modified":"2026-10-20T23:26:21","modified_gmt":"2026-10-20T23:26:21","slug":"dienstplan","status":"publish","type":"plugin","link":"https:\/\/me.wordpress.org\/plugins\/dienstplan\/","author":23480443,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.11.1","stable_tag":"3.11.1","tested":"7.1.3","requires":"6.3","requires_php":"8.1","requires_plugins":null,"header_name":"Dienstplan","header_author":"Nusselt Management GmbH, Alexander Nusselt","header_description":"The simple solution for digital shift scheduling.","assets_banners_color":"d6dadf","last_updated":"2026-10-20 23:26:21","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.wp-dienstplan.de","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":20,"downloads":1092,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"3.10.0":{"tag":"3.10.0","author":"wpdienstplan","date":"2026-10-15 11:59:50","revision":3748373},"3.11.0":{"tag":"3.11.0","author":"wpdienstplan","date":"2026-10-19 14:34:18","revision":3754989},"3.11.1":{"tag":"3.11.1","author":"wpdienstplan","date":"2026-10-20 23:26:21","revision":3757558},"3.4.2":{"tag":"3.4.2","author":"wpdienstplan","date":"2026-06-11 12:50:38","revision":3568853},"3.5.0":{"tag":"3.5.0","author":"wpdienstplan","date":"2026-06-15 09:00:46","revision":3572690},"3.5.1":{"tag":"3.5.1","author":"wpdienstplan","date":"2026-06-25 09:15:22","revision":3585929},"3.5.2":{"tag":"3.5.2","author":"wpdienstplan","date":"2026-07-25 10:23:19","revision":3622327},"3.6.0":{"tag":"3.6.0","author":"wpdienstplan","date":"2026-07-26 08:30:44","revision":3623104},"3.7.0":{"tag":"3.7.0","author":"wpdienstplan","date":"2026-09-02 12:50:35","revision":3678025},"3.7.1":{"tag":"3.7.1","author":"wpdienstplan","date":"2026-10-12 09:52:32","revision":3741018},"3.7.2":{"tag":"3.7.2","author":"wpdienstplan","date":"2026-10-12 16:02:09","revision":3742075},"3.8.0":{"tag":"3.8.0","author":"wpdienstplan","date":"2026-10-13 05:55:14","revision":3742972},"3.9.0":{"tag":"3.9.0","author":"wpdienstplan","date":"2026-10-13 22:08:08","revision":3744969}},"upgrade_notice":{"3.11.1":"<p>The Shift Leader role moves to the Premium add-on. Using Basic or Pro? Update Dienstplan first, then the add-on to 1.11.1.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3569919,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3569919,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500-de.jpg":{"filename":"banner-1544x500-de.jpg","revision":3569955,"resolution":"1544x500","location":"assets","locale":"de","width":1544,"height":500},"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3568853,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250-de.jpg":{"filename":"banner-772x250-de.jpg","revision":3569955,"resolution":"772x250","location":"assets","locale":"de","width":772,"height":250},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3568853,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["3.10.0","3.11.0","3.11.1","3.4.2","3.5.0","3.5.1","3.5.2","3.6.0","3.7.0","3.7.1","3.7.2","3.8.0","3.9.0"],"block_files":[],"assets_screenshots":{"screenshot-1-de.png":{"filename":"screenshot-1-de.png","revision":3586003,"resolution":"1","location":"assets","locale":"de","width":1584,"height":1029},"screenshot-1.png":{"filename":"screenshot-1.png","revision":3622326,"resolution":"1","location":"assets","locale":"","width":1584,"height":1033},"screenshot-2-de.png":{"filename":"screenshot-2-de.png","revision":3757557,"resolution":"2","location":"assets","locale":"de","width":600,"height":1071},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3757557,"resolution":"2","location":"assets","locale":"","width":600,"height":1071},"screenshot-3-de.png":{"filename":"screenshot-3-de.png","revision":3757557,"resolution":"3","location":"assets","locale":"de","width":1584,"height":1318},"screenshot-3-es.png":{"filename":"screenshot-3-es.png","revision":3757558,"resolution":"3","location":"assets","locale":"es","width":1584,"height":1318},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3757557,"resolution":"3","location":"assets","locale":"","width":1584,"height":1318},"screenshot-4-de.png":{"filename":"screenshot-4-de.png","revision":3757557,"resolution":"4","location":"assets","locale":"de","width":1584,"height":1029},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3757557,"resolution":"4","location":"assets","locale":"","width":1584,"height":1318},"screenshot-5-de.png":{"filename":"screenshot-5-de.png","revision":3757557,"resolution":"5","location":"assets","locale":"de","width":1584,"height":1062},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3757557,"resolution":"5","location":"assets","locale":"","width":1584,"height":1318},"screenshot-6-de.png":{"filename":"screenshot-6-de.png","revision":3757558,"resolution":"6","location":"assets","locale":"de","width":1002,"height":1149},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3757558,"resolution":"6","location":"assets","locale":"","width":1005,"height":1138}},"screenshots":{"1":"Calendar on your site: members sign up with one click.","2":"On phones the calendar shows a list: tap + to sign up.","3":"Shift planner in the admin.","4":"Events list.","5":"\"My shifts\" dashboard widget.","6":"Plan comparison Free, Basic and Pro."}},"plugin_section":[262246],"plugin_tags":[416,11419,268,266666,65258],"plugin_category":[40],"plugin_contributors":[266667],"plugin_business_model":[],"class_list":["post-307997","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-calendar","plugin_tags-roster","plugin_tags-scheduling","plugin_tags-shifts","plugin_tags-volunteers","plugin_category-calendar-and-events","plugin_contributors-wpdienstplan","plugin_committers-wpdienstplan"],"banners":{"banner":"https:\/\/ps.w.org\/dienstplan\/assets\/banner-772x250.png?rev=3568853","banner_2x":"https:\/\/ps.w.org\/dienstplan\/assets\/banner-1544x500.png?rev=3568853","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/dienstplan\/assets\/icon-128x128.png?rev=3569919","icon_2x":"https:\/\/ps.w.org\/dienstplan\/assets\/icon-256x256.png?rev=3569919","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/dienstplan\/assets\/screenshot-1.png?rev=3622326","caption":"Calendar on your site: members sign up with one click."},{"src":"https:\/\/ps.w.org\/dienstplan\/assets\/screenshot-2.png?rev=3757557","caption":"On phones the calendar shows a list: tap + to sign up."},{"src":"https:\/\/ps.w.org\/dienstplan\/assets\/screenshot-3.png?rev=3757557","caption":"Shift planner in the admin."},{"src":"https:\/\/ps.w.org\/dienstplan\/assets\/screenshot-4.png?rev=3757557","caption":"Events list."},{"src":"https:\/\/ps.w.org\/dienstplan\/assets\/screenshot-5.png?rev=3757557","caption":"\"My shifts\" dashboard widget."},{"src":"https:\/\/ps.w.org\/dienstplan\/assets\/screenshot-6.png?rev=3757558","caption":"Plan comparison Free, Basic and Pro."}],"raw_content":"<!--section=description-->\n<p>Dienstplan adds a shift roster to your WordPress site. Members open the calendar page, pick an open shift and sign up. Coordinators see which shifts are still open and who is on duty.<\/p>\n\n<p>Made for fire departments, emergency medical services, first responders, sports clubs and other volunteer teams.<\/p>\n\n<p>All data stays in your own WordPress database. No external account, no monthly fee.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Shifts and events in a week, month or list view (list view on phones)<\/li>\n<li>Members sign up for open shifts themselves<\/li>\n<li>Show the calendar on any page with <code>[dienstplan]<\/code><\/li>\n<li>Show events with <code>[dienstplan_termine]<\/code><\/li>\n<li>Public statistics without names with <code>[dienstplan_statistik]<\/code><\/li>\n<li>\"My shifts\" dashboard widget and calendar download (ICS)<\/li>\n<li>Public holidays in the calendar (optional)<\/li>\n<li>Light and dark color scheme<\/li>\n<li>English, German, Spanish, French and Italian<\/li>\n<\/ul>\n\n<h4>Free, Basic and Pro<\/h4>\n\n<p>This plugin is free, with no time limit: one roster, unlimited members, shifts and events.<\/p>\n\n<p>Basic and Pro are optional add-ons, for example for multiple rosters, recurring events, shift trading and e-mail notifications. Your data stays when you add or remove them. Details at <a href=\"https:\/\/www.wp-dienstplan.de\">wp-dienstplan.de<\/a>.<\/p>\n\n<h3>Third-party assets<\/h3>\n\n<p>Calendar icons (<code>assets\/icons.svg<\/code>) are adapted from <a href=\"https:\/\/tabler.io\/icons\">Tabler Icons<\/a>, MIT License.<\/p>\n\n<h3>External services<\/h3>\n\n<h4>Product notices (wp-dienstplan.de)<\/h4>\n\n<p>On Dienstplan's own admin screens, the plugin loads <code>https:\/\/www.wp-dienstplan.de\/plugin\/notices.json<\/code> to show short product notices. It is a plain request without parameters. No personal data, member data or site data is sent. The user agent only contains the plugin name and version, not your site address. The answer is cached for up to 12 hours. Admins can dismiss each notice.<\/p>\n\n<p>Provided by Nusselt Management GmbH: <a href=\"https:\/\/www.wp-dienstplan.de\/en\/terms.html\">terms of use<\/a>, <a href=\"https:\/\/www.wp-dienstplan.de\/en\/privacy.html\">privacy policy<\/a>.<\/p>\n\n<h4>Public holidays (openholidaysapi.org)<\/h4>\n\n<p>Holidays in the calendar are optional and off by default. The plugin gets them from the OpenHolidays API (<code>https:\/\/openholidaysapi.org<\/code>):<\/p>\n\n<ul>\n<li>the country list and the regions of the selected country, when an admin opens <strong>Dienstplan \u2192 Settings \u2192 Holidays<\/strong> (cached for a week; this also happens while holidays are off, so you can pick a country),<\/li>\n<li>the regions of another country, when you select it there,<\/li>\n<li>only while holidays are on: the holidays of the current and next year, when you save the settings, once a year and when you refresh them manually.<\/li>\n<\/ul>\n\n<p>Only the country, region, language and year you set are sent. No member data. The user agent only contains the plugin name and version, not your site address. Turn holidays off to stop the holiday requests; the country and region lists are then only loaded while you are on the holiday settings page.<\/p>\n\n<p>Provided by ST\u00dcBER SYSTEMS GmbH: <a href=\"https:\/\/www.stueber.de\/en\/legal\/imprint.php\">terms of use<\/a>, <a href=\"https:\/\/www.stueber.de\/en\/legal\/privacy.php\">privacy policy<\/a>.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>All member data (names, e-mail addresses, shifts, sign-ups) stays in your own WordPress database. The plugin only makes the requests listed under <strong>External services<\/strong>, and none of them contain member data.<\/p>\n\n<p>Dienstplan sets no cookies of its own and uses no trackers. It uses the normal WordPress login and <code>localStorage<\/code> to remember the last selected roster.<\/p>\n\n<p>The optional Basic and Pro add-ons contact <code>lizenz.wp-dienstplan.de<\/code> to check the license. Only the license key, site URL and a status are sent. This server is not used by this plugin.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong>, search for \"Dienstplan\", install and activate it.<\/li>\n<li>Open <strong>Dienstplan \u2192 Overview<\/strong> and set up your shifts.<\/li>\n<li>Add <code>[dienstplan]<\/code> to the page where members should see the calendar.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20do%20i%20need%3F\"><h3>What do I need?<\/h3><\/dt>\n<dd><p>WordPress 6.3 or newer and PHP 8.1 or newer. Normal shared hosting is enough.<\/p><\/dd>\n<dt id=\"where%20is%20member%20data%20stored%3F\"><h3>Where is member data stored?<\/h3><\/dt>\n<dd><p>Only in your own WordPress database. The plugin sends no member data to us or anyone else.<\/p><\/dd>\n<dt id=\"how%20do%20members%20sign%20up%3F\"><h3>How do members sign up?<\/h3><\/dt>\n<dd><p>They log in to your site, open the calendar page and click an open shift. To remove an entry, they ask an admin.<\/p><\/dd>\n<dt id=\"does%20my%20data%20stay%20if%20i%20add%20basic%20or%20pro%3F\"><h3>Does my data stay if I add Basic or Pro?<\/h3><\/dt>\n<dd><p>Yes. The add-ons use the same data. Nothing is moved or deleted.<\/p><\/dd>\n<dt id=\"where%20do%20i%20get%20help%3F\"><h3>Where do I get help?<\/h3><\/dt>\n<dd><p>In the support forum for this plugin. Basic and Pro customers can also write to info@wp-dienstplan.de.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.11.1 \u2014 2026-10-20<\/h4>\n\n<ul>\n<li>The Shift Leader role is now part of the Premium add-on.<\/li>\n<li>Requests for product notices and public holidays no longer send your site address.<\/li>\n<\/ul>\n\n<h4>3.11.0 \u2014 2026-10-19<\/h4>\n\n<ul>\n<li>New setting \"Calendar page\": links can open a single shift in the calendar.<\/li>\n<li>List view: the link parameter <code>dp_filter=open<\/code> shows only open shifts.<\/li>\n<li>Calendar download uses correct time zones. Shifts you imported before may show up twice once.<\/li>\n<li>Fixed: names with \"&amp;\" are shown correctly.<\/li>\n<\/ul>\n\n<h4>3.10.0 \u2014 2026-10-15<\/h4>\n\n<ul>\n<li>Fixed: switching a shift on or off no longer resets its settings.<\/li>\n<\/ul>\n\n<h4>3.9.0 \u2014 2026-10-14<\/h4>\n\n<ul>\n<li>New list view, used automatically on phones.<\/li>\n<li>Tap a name in the calendar to see what you can do with it.<\/li>\n<li>Light and dark color scheme (Settings \u2192 General).<\/li>\n<li>New icons in the calendar.<\/li>\n<li>Fixed: the calendar updates right after signing up.<\/li>\n<li>Fixed: long member lists in the admin can be scrolled and searched.<\/li>\n<\/ul>\n\n<h4>3.8.0 \u2014 2026-10-12<\/h4>\n\n<ul>\n<li>The calendar hides shifts that are not offered in the visible period.<\/li>\n<\/ul>","raw_excerpt":"Shift rosters for volunteer teams. Members sign up for shifts themselves, right on your WordPress site.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/307997","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=307997"}],"author":[{"embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wpdienstplan"}],"wp:attachment":[{"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=307997"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=307997"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=307997"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=307997"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=307997"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=307997"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}