{"id":390492,"date":"2026-10-26T19:47:32","date_gmt":"2026-10-26T19:47:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/gruver-calendar\/"},"modified":"2026-10-26T19:47:15","modified_gmt":"2026-10-26T19:47:15","slug":"gruver-calendar","status":"publish","type":"plugin","link":"https:\/\/cor.wordpress.org\/plugins\/gruver-calendar\/","author":23590238,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.3","requires":"7.0","requires_php":"8.2","requires_plugins":null,"header_name":"GruVer Calendar","header_author":"GruVer","header_description":"Shows your GruVer organisation calendar on your website \u2013 as an event list or a month view, in posts, pages, sidebars and footers.","assets_banners_color":"fcfdfe","last_updated":"2026-10-26 19:47:15","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.gruver.de","rating":0,"author_block_rating":0,"active_installs":0,"downloads":45,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"gruverapp","date":"2026-10-26 19:47:15","revision":3767226}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3767226,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3767226,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3767226,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3767226,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"gruver\/calendar":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"gruver\/calendar","version":"1.0.0","title":"GruVer Calendar","category":"widgets","icon":"calendar-alt","description":"Events from your GruVer calendar as a list or month view.","keywords":["events","calendar","gruver"],"textdomain":"gruver-calendar","attributes":{"feed":{"type":"string","default":""},"view":{"type":"string","enum":["","list","month"],"default":""},"count":{"type":"number","default":5},"compact":{"type":"boolean","default":false}},"supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true,"padding":true},"typography":{"fontSize":true},"color":{"text":true,"background":true,"link":true}},"editorScript":"file:.\/index.js","style":"gruver-calendar","render":"file:.\/render.php"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3767226,"resolution":"1","location":"assets","locale":"","width":1280,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3767226,"resolution":"2","location":"assets","locale":"","width":1280,"height":1000},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3767226,"resolution":"3","location":"assets","locale":"","width":780,"height":1688},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3767226,"resolution":"4","location":"assets","locale":"","width":1280,"height":1700}},"screenshots":{"1":"Event list in a block theme.","2":"Month view with paging.","3":"The same month as a list on a phone.","4":"Settings page with calendar link, status and \u201cRefresh now\u201d."}},"plugin_section":[],"plugin_tags":[416,14241,1486,7103,129376],"plugin_category":[40],"plugin_contributors":[288782],"plugin_business_model":[],"class_list":["post-390492","plugin","type-plugin","status-publish","hentry","plugin_tags-calendar","plugin_tags-club","plugin_tags-events","plugin_tags-ical","plugin_tags-scouts","plugin_category-calendar-and-events","plugin_contributors-gruverapp","plugin_committers-gruverapp"],"banners":{"banner":"https:\/\/ps.w.org\/gruver-calendar\/assets\/banner-772x250.png?rev=3767226","banner_2x":"https:\/\/ps.w.org\/gruver-calendar\/assets\/banner-1544x500.png?rev=3767226","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/gruver-calendar\/assets\/icon-128x128.png?rev=3767226","icon_2x":"https:\/\/ps.w.org\/gruver-calendar\/assets\/icon-256x256.png?rev=3767226","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/gruver-calendar\/assets\/screenshot-1.png?rev=3767226","caption":"Event list in a block theme."},{"src":"https:\/\/ps.w.org\/gruver-calendar\/assets\/screenshot-2.png?rev=3767226","caption":"Month view with paging."},{"src":"https:\/\/ps.w.org\/gruver-calendar\/assets\/screenshot-3.png?rev=3767226","caption":"The same month as a list on a phone."},{"src":"https:\/\/ps.w.org\/gruver-calendar\/assets\/screenshot-4.png?rev=3767226","caption":"Settings page with calendar link, status and \u201cRefresh now\u201d."}],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/www.gruver.de\">GruVer<\/a> is a group management tool for clubs and youth organisations, especially scouts. In GruVer, the leaders of an organisation can create organisation calendars and choose which events they contain. This plugin shows such a calendar on your WordPress website.<\/p>\n\n<ul>\n<li><strong>Event list<\/strong> with date, time, title, location and an expandable description \u2013 or a compact list with date and title only for narrow sidebars.<\/li>\n<li><strong>Month view<\/strong> that visitors can page through. In narrow containers (sidebars, phones) it automatically turns into a list.<\/li>\n<li><strong>Everywhere:<\/strong> as a block (also in widget areas and footers of block themes), as a classic widget and as the shortcode <code>[gruver_calendar]<\/code> for page builders.<\/li>\n<li><strong>Several calendars,<\/strong> e.g. one per age group, each with its own name.<\/li>\n<li><strong>No tracking, no cookies:<\/strong> your web server fetches the calendar from GruVer in the background and stores a copy. Your visitors only load your own website and never contact GruVer.<\/li>\n<li><strong>Fits your theme:<\/strong> the calendar uses the colours and fonts of your theme. Developers can adjust it with CSS custom properties.<\/li>\n<li>Works without JavaScript on your website. Ready for translation.<\/li>\n<\/ul>\n\n<h4>How to get your calendar link<\/h4>\n\n<ol>\n<li>Register your organisation with GruVer at <a href=\"https:\/\/app.gruver.de\/organisation\/register\">app.gruver.de<\/a> or log in if you already use GruVer.<\/li>\n<li>In GruVer, open Organisation \u2192 Settings \u2192 Organisation calendars and create a calendar. Choose which events it shows: all of them or only events with certain tags.<\/li>\n<li>Copy the calendar link. In WordPress, go to Settings \u2192 GruVer Calendar and paste it together with a name.<\/li>\n<li>Add the \u201cGruVer Calendar\u201d block, widget or shortcode where the calendar should appear.<\/li>\n<\/ol>\n\n<p>Treat the calendar link like a password: whoever knows it can read the calendar. The plugin never shows it on your website. If a link gets out, revoke it in GruVer and paste the new one.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin fetches calendars from GruVer (app.gruver.de), a group management service for clubs and youth organisations. The service is required: the plugin shows nothing without a calendar from GruVer.<\/p>\n\n<ul>\n<li><strong>What is fetched:<\/strong> the iCalendar feed behind the calendar link you enter on the settings page (an address at app.gruver.de).<\/li>\n<li><strong>When:<\/strong> after you save a new or changed calendar link, when you click \u201cRefresh now\u201d, and at the chosen refresh interval through WP-Cron (hourly by default).<\/li>\n<li><strong>What is sent:<\/strong> an HTTP request from your web server to the calendar link. Like every request WordPress makes, it contains the IP address of your server and a user agent with the WordPress version and the address of your website. No data about your visitors is sent; they never contact GruVer.<\/li>\n<\/ul>\n\n<p>GruVer: <a href=\"https:\/\/app.gruver.de\/abo-rahmenvereinbarung\">terms of service<\/a>, <a href=\"https:\/\/app.gruver.de\/av-vertrag\">data processing agreement<\/a>, <a href=\"https:\/\/app.gruver.de\/haftungsausschluss\">disclaimer<\/a>, <a href=\"https:\/\/app.gruver.de\/datenschutz\">privacy policy<\/a>, <a href=\"https:\/\/app.gruver.de\/impressum\">imprint<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin from the WordPress plugin directory and activate it.<\/li>\n<li>Go to Settings \u2192 GruVer Calendar and paste the calendar link from GruVer (see \u201cHow to get your calendar link\u201d).<\/li>\n<li>Add the \u201cGruVer Calendar\u201d block to a page or a widget area, or use the shortcode <code>[gruver_calendar]<\/code>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20gruver%20account%3F\"><h3>Do I need a GruVer account?<\/h3><\/dt>\n<dd><p>Yes. The calendar comes from GruVer, where the leaders of your organisation plan events. The plugin does not work with calendars from other services.<\/p><\/dd>\n<dt id=\"which%20events%20appear%3F\"><h3>Which events appear?<\/h3><\/dt>\n<dd><p>The ones the organisation calendar in GruVer contains: all events or only those with certain tags, optionally without some event types or single events. Change this in GruVer; the website follows with the next refresh. Past events stay visible in the month view for 12 months.<\/p><\/dd>\n<dt id=\"how%20often%20is%20the%20calendar%20refreshed%3F\"><h3>How often is the calendar refreshed?<\/h3><\/dt>\n<dd><p>Hourly by default; you can switch to twice a day or daily. The \u201cRefresh now\u201d button on the settings page fetches all calendars at once. WordPress only runs scheduled tasks when someone visits your website. On sites with few visitors, ask your host to call <code>wp-cron.php<\/code> regularly with a real cron job.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20gruver%20cannot%20be%20reached%3F\"><h3>What happens if GruVer cannot be reached?<\/h3><\/dt>\n<dd><p>The plugin keeps showing the last calendar it fetched successfully. The settings page shows when the last refresh happened and what went wrong.<\/p><\/dd>\n<dt id=\"which%20shortcode%20options%20are%20there%3F\"><h3>Which shortcode options are there?<\/h3><\/dt>\n<dd><p>[gruver_calendar view=\"list\" count=\"10\" feed=\"cubs\" compact=\"yes\"]<\/p>\n\n<ul>\n<li><code>view<\/code>: <code>list<\/code> or <code>month<\/code>. Without it, the default view from the settings is used.<\/li>\n<li><code>count<\/code>: number of events in the list (default 5).<\/li>\n<li><code>feed<\/code>: the key of the calendar as shown on the settings page. Without it, the first calendar is used.<\/li>\n<li><code>compact<\/code>: <code>yes<\/code> shows date and title only.<\/li>\n<\/ul><\/dd>\n<dt id=\"can%20i%20hide%20birthdays%3F\"><h3>Can I hide birthdays?<\/h3><\/dt>\n<dd><p>A GruVer calendar only contains birthdays if the leaders enabled them and each member agreed for this very calendar. You can still hide them per calendar on the settings page.<\/p><\/dd>\n<dt id=\"how%20do%20i%20change%20the%20colours%3F\"><h3>How do I change the colours?<\/h3><\/dt>\n<dd><p>The calendar uses the text colour of your theme and the \u201cprimary\u201d colour of block themes as accent. Override <code>--gruver-calendar-accent<\/code>, <code>--gruver-calendar-border<\/code>, <code>--gruver-calendar-muted<\/code> or <code>--gruver-calendar-today<\/code> on <code>.gruver-calendar<\/code> in your theme\u2019s CSS.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20set%20cookies%20or%20track%20visitors%3F\"><h3>Does the plugin set cookies or track visitors?<\/h3><\/dt>\n<dd><p>No. Visitors of your website never contact GruVer. A suggested text for your privacy policy is available under Settings \u2192 Privacy.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release: event list and month view as block, widget and shortcode; several calendars; refresh through WP-Cron.<\/li>\n<\/ul>","raw_excerpt":"Show the events of your GruVer organisation on your website \u2013 as an event list or a month view.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/390492","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=390492"}],"author":[{"embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gruverapp"}],"wp:attachment":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=390492"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=390492"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=390492"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=390492"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=390492"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=390492"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}