{"id":270248,"date":"2026-01-05T02:50:59","date_gmt":"2026-01-05T02:50:59","guid":{"rendered":"https:\/\/en-au.wordpress.org\/plugins\/vieww-events-calendar\/"},"modified":"2026-03-05T02:11:07","modified_gmt":"2026-03-05T02:11:07","slug":"vieww-events-calendar","status":"publish","type":"plugin","link":"https:\/\/bo.wordpress.org\/plugins\/vieww-events-calendar\/","author":23428051,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.2.0","stable_tag":"2.2.0","tested":"6.9.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Vieww Events Calendar","header_author":"Jarrad Nicoll","header_description":"A professional, self-contained events calendar plugin with recurring events, design customization, and mobile-optimized views. Features grid, list, and interactive month calendar displays.","assets_banners_color":"","last_updated":"2026-03-05 02:11:07","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/nextpointdigital.com.au","rating":5,"author_block_rating":0,"active_installs":0,"downloads":228,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.1.1":{"tag":"2.1.1","author":"jarradnpd","date":"2026-01-05 03:34:53"},"2.2.0":{"tag":"2.2.0","author":"jarradnpd","date":"2026-03-05 02:11:07"}},"upgrade_notice":{"2.2.0":"<p>Major feature update: dark mode, Google Fonts, frontend search, Gutenberg blocks, REST API, iCal export, swipe gestures, and performance improvements with HTML caching.<\/p>","2.1.1":"<p>Initial WordPress.org release - Full-featured events calendar with recurring events, design customization, mobile optimization, and three beautiful display views. All features included free!<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":{"vieww\/events-grid":{"name":"vieww\/events-grid","title":"Vieww Events Grid"},"vieww\/events-list":{"name":"vieww\/events-list","title":"Vieww Events List"},"vieww\/events-calendar":{"name":"vieww\/events-calendar","title":"Vieww Events Calendar"}},"tagged_versions":["2.1.1","2.2.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Grid\/Card View - Responsive 3-column layout","2":"List View - Filterable with date range selection","3":"Calendar Month View - Interactive calendar grid","4":"Admin Cache Settings Page","5":"Event Edit Screen with ACF Fields"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[416,4747,1486,4754,5881],"plugin_category":[40],"plugin_contributors":[253294],"plugin_business_model":[],"class_list":["post-270248","plugin","type-plugin","status-publish","hentry","plugin_tags-calendar","plugin_tags-event-management","plugin_tags-events","plugin_tags-events-calendar","plugin_tags-recurring-events","plugin_category-calendar-and-events","plugin_contributors-jarradnpd","plugin_committers-jarradnpd"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/vieww-events-calendar.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Vieww Events Calendar is a professional, self-contained WordPress plugin for managing and displaying events. No external dependencies required! Built with performance in mind, it features advanced caching, multiple display options, and native WordPress meta boxes.<\/p>\n\n<p><strong>Key Features:<\/strong><\/p>\n\n<ul>\n<li><p><strong>Three Beautiful Display Views:<\/strong><\/p>\n\n<ul>\n<li>Grid\/Card View - Responsive 3-column grid showing upcoming events<\/li>\n<li>List View - Filterable list with date range selection and pagination<\/li>\n<li>Calendar View - Interactive month calendar with navigation<\/li>\n<\/ul><\/li>\n<li><p><strong>Recurring Events:<\/strong> Set events to repeat on specific days of the week automatically<\/p><\/li>\n<li><p><strong>Design Customization:<\/strong> Full control over colors, fonts, and spacing to match your brand<\/p><\/li>\n<li><p><strong>Mobile Optimized:<\/strong> Enhanced mobile experience with event detail modals and calendar\/list toggle<\/p><\/li>\n<li><p><strong>Performance Optimized:<\/strong> Advanced caching system with transient storage<\/p><\/li>\n<li><p><strong>Self-Contained:<\/strong> Native WordPress meta boxes - no external plugins needed<\/p><\/li>\n<li><p><strong>Cache Management:<\/strong> Built-in admin interface for cache control<\/p><\/li>\n<li><p><strong>Developer Friendly:<\/strong> Clean, well-documented code following WordPress standards<\/p><\/li>\n<\/ul>\n\n<p><strong>Requirements:<\/strong><\/p>\n\n<ul>\n<li>WordPress 5.0 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<\/ul>\n\n<p>That's it! No external plugins or dependencies required.<\/p>\n\n<h3>Developer Notes<\/h3>\n\n<p><strong>File Structure:<\/strong>\n    <code>vieww-events-calendar\/\n\u251c\u2500\u2500 vieww.php (Main plugin file)\n\u251c\u2500\u2500 includes\/\n\u2502   \u251c\u2500\u2500 class-vieww-post-type.php (CPT, REST API, Gutenberg blocks)\n\u2502   \u251c\u2500\u2500 class-vieww-meta-boxes.php (Native meta boxes with validation)\n\u2502   \u251c\u2500\u2500 class-vieww-core.php (Caching, event instances)\n\u2502   \u251c\u2500\u2500 class-vieww-shortcodes.php (Grid, list, calendar shortcodes)\n\u2502   \u2514\u2500\u2500 class-vieww-ical.php (iCal export, Google Calendar)\n\u251c\u2500\u2500 admin\/\n\u2502   \u251c\u2500\u2500 class-vieww-admin.php\n\u2502   \u251c\u2500\u2500 class-vieww-design-settings.php (Colors, fonts, dark mode)\n\u2502   \u251c\u2500\u2500 class-vieww-welcome.php\n\u2502   \u2514\u2500\u2500 class-vieww-help.php\n\u251c\u2500\u2500 assets\/\n\u2502   \u251c\u2500\u2500 css\/\n\u2502   \u2502   \u251c\u2500\u2500 grid-view.css\n\u2502   \u2502   \u251c\u2500\u2500 list-view.css\n\u2502   \u2502   \u251c\u2500\u2500 calendar-view.css\n\u2502   \u2502   \u2514\u2500\u2500 admin-modern.css\n\u2502   \u2514\u2500\u2500 js\/\n\u2502       \u251c\u2500\u2500 modal.js (Event modals, swipe gestures)\n\u2502       \u251c\u2500\u2500 calendar-ajax.js (AJAX calendar navigation)\n\u2502       \u251c\u2500\u2500 admin-meta-boxes.js\n\u2502       \u251c\u2500\u2500 admin-welcome.js\n\u2502       \u2514\u2500\u2500 admin-help.js\n\u2514\u2500\u2500 uninstall.php<\/code><\/p>\n\n<p><strong>Hooks:<\/strong><\/p>\n\n<p>Action: <code>vieww_events_uninstall<\/code> - Fired when plugin is uninstalled<\/p>\n\n<p><strong>Functions:<\/strong><\/p>\n\n<ul>\n<li><code>Vieww()<\/code> - Returns main plugin instance<\/li>\n<\/ul>\n\n<p><strong>Cache Key:<\/strong><\/p>\n\n<p>The plugin uses transient key <code>vieww_cached_events_v6<\/code> for caching events, plus versioned HTML cache transients.<\/p>\n\n<h3>Support<\/h3>\n\n<p>For support, please use the WordPress.org support forums for this plugin.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/vieww-events-calendar\/<\/code> directory, or install through the WordPress plugins screen<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress<\/li>\n<li>Go to Events \u2192 Add New to create your first event!<\/li>\n<li>Use shortcodes in your pages to display events<\/li>\n<\/ol>\n\n<p>The plugin automatically registers the custom post type and creates all necessary fields. No additional setup required!<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20any%20other%20plugins%3F\"><h3>Do I need any other plugins?<\/h3><\/dt>\n<dd><p>No! The plugin is completely self-contained. It registers its own custom post type and creates native WordPress meta boxes for all event fields.<\/p><\/dd>\n<dt id=\"what%20fields%20are%20available%20for%20events%3F\"><h3>What fields are available for events?<\/h3><\/dt>\n<dd><p>When creating an event, you'll see two meta boxes:<\/p>\n\n<p><strong>Event Details:<\/strong>\n* Event Date (for one-off events)\n* Event Time\n* Event Description\n* Event Image (via featured image sidebar)<\/p>\n\n<p><strong>Recurring Event Settings:<\/strong>\n* Recurring Days (checkbox for days of week)\n* Recurring Start Date\n* Recurring End Date<\/p><\/dd>\n<dt id=\"what%20shortcodes%20are%20available%3F\"><h3>What shortcodes are available?<\/h3><\/dt>\n<dd><p><strong>Grid\/Card View:<\/strong>\n    [vieww_calendar]<\/p>\n\n<p>Displays the next 9 upcoming events in a 3-column responsive grid.<\/p>\n\n<p><strong>List View:<\/strong>\n    [vieww_list per_page=\"10\"]<\/p>\n\n<p>Displays events in a list with date filters and pagination. The <code>per_page<\/code> parameter is optional (default: 10).<\/p>\n\n<p><strong>Calendar Month View:<\/strong>\n    [vieww_calendar_view show_images=\"yes\"]<\/p>\n\n<p>Displays an interactive month calendar with navigation. The <code>show_images<\/code> parameter is optional (default: yes).<\/p><\/dd>\n<dt id=\"how%20do%20i%20create%20a%20recurring%20event%3F\"><h3>How do I create a recurring event?<\/h3><\/dt>\n<dd><ol>\n<li>Go to Events \u2192 Add New<\/li>\n<li>Leave the Event Date field empty in the Event Details box<\/li>\n<li>In the Recurring Event Settings box, check the days of the week<\/li>\n<li>Set the Recurring Start Date and Recurring End Date<\/li>\n<li>Fill in Event Time and Description<\/li>\n<li>Publish!<\/li>\n<\/ol><\/dd>\n<dt id=\"how%20do%20i%20create%20a%20one-time%20event%3F\"><h3>How do I create a one-time event?<\/h3><\/dt>\n<dd><ol>\n<li>Go to Events \u2192 Add New<\/li>\n<li>Fill in the Event Date in the Event Details box<\/li>\n<li>Leave the Recurring Event Settings box empty<\/li>\n<li>Fill in Event Time and Description<\/li>\n<li>Publish!<\/li>\n<\/ol><\/dd>\n<dt id=\"events%20aren%27t%20showing%20up%2C%20what%20do%20i%20do%3F\"><h3>Events aren't showing up, what do I do?<\/h3><\/dt>\n<dd><ol>\n<li>Go to Events \u2192 Cache Settings in your WordPress admin<\/li>\n<li>Click \"Refresh Event Cache\"<\/li>\n<li>Alternatively, add <code>?refresh_events=1<\/code> to any page URL<\/li>\n<\/ol><\/dd>\n<dt id=\"does%20this%20work%20with%20cache%20plugins%3F\"><h3>Does this work with cache plugins?<\/h3><\/dt>\n<dd><p>Yes! The plugin automatically clears popular cache plugins including:\n* WP Fastest Cache\n* WP Super Cache\n* W3 Total Cache\n* WP Rocket<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20styling%3F\"><h3>Can I customize the styling?<\/h3><\/dt>\n<dd><p>Yes! The plugin includes a visual customization interface at Events \u2192 Design Settings. You can adjust:<\/p>\n\n<ul>\n<li>Colors (primary, accent, text, backgrounds)<\/li>\n<li>Typography (font families, sizes, weights)<\/li>\n<li>Spacing (padding, margins, gaps)<\/li>\n<\/ul>\n\n<p>You can also override styles by adding custom CSS to your theme. The plugin uses separate CSS files for each view:<\/p>\n\n<ul>\n<li><code>grid-view.css<\/code> - Grid\/card view styles<\/li>\n<li><code>list-view.css<\/code> - List view styles<\/li>\n<li><code>calendar-view.css<\/code> - Calendar view styles<\/li>\n<\/ul><\/dd>\n<dt id=\"how%20do%20i%20debug%20cache%20issues%3F\"><h3>How do I debug cache issues?<\/h3><\/dt>\n<dd><p>Add <code>?debug_cache=1<\/code> to any page URL to see cache status and contents (requires admin permissions).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>FEATURE: Frontend event search - filter list view events by title, description, or location<\/li>\n<li>FEATURE: Google Fonts integration - 15 Google Fonts available in Design Settings<\/li>\n<li>FEATURE: Dark mode support - off, auto (system preference), or always on<\/li>\n<li>FEATURE: Mobile swipe gestures - swipe left\/right to navigate calendar months<\/li>\n<li>FEATURE: Gutenberg blocks - 3 server-side rendered blocks for the block editor<\/li>\n<li>FEATURE: REST API support - event meta fields exposed via WordPress REST API<\/li>\n<li>FEATURE: iCal export and Google Calendar integration<\/li>\n<li>FEATURE: AJAX calendar navigation for smoother month browsing<\/li>\n<li>FEATURE: Event modal popups with add-to-calendar links<\/li>\n<li>PERFORMANCE: Rendered HTML caching with version-counter invalidation<\/li>\n<li>PERFORMANCE: Per-request instance deduplication for recurring events<\/li>\n<li>SECURITY: Enhanced nonce verification and input sanitization throughout<\/li>\n<li>IMPROVEMENT: Admin meta box validation with real-time feedback<\/li>\n<li>IMPROVEMENT: Tabbed help documentation with persistent tab state<\/li>\n<li>IMPROVEMENT: Dismissable onboarding welcome page<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>RELEASE: Initial WordPress.org release - Full-featured free version<\/li>\n<li>MAJOR: Removed ACF dependency - now completely self-contained with native WordPress meta boxes<\/li>\n<li>FEATURE: Recurring events - set events to repeat on specific days<\/li>\n<li>FEATURE: Design customization system with colors, typography, and spacing controls<\/li>\n<li>FEATURE: Three beautiful display views (grid, list, calendar)<\/li>\n<li>FEATURE: Mobile modal popups and calendar\/list view toggle<\/li>\n<li>FEATURE: Getting started dashboard and help documentation<\/li>\n<li>SECURITY: Full nonce verification, input sanitization, and output escaping<\/li>\n<li>SECURITY: WordPress 6.9 compatibility and coding standards compliance<\/li>\n<li>PERFORMANCE: Advanced caching system with transient storage<\/li>\n<li>PERFORMANCE: Iteration safeguards to prevent infinite loops<\/li>\n<li>Complete plugin restructure with organized class files, separated CSS, and i18n support<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Added calendar month view<\/li>\n<li>Improved caching system<\/li>\n<li>Added admin interface for cache management<\/li>\n<li>Performance optimizations<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Grid and list views<\/li>\n<li>Basic caching functionality<\/li>\n<\/ul>","raw_excerpt":"A professional, self-contained events calendar plugin with recurring events, design customization, and mobile-optimized views.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/270248","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=270248"}],"author":[{"embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jarradnpd"}],"wp:attachment":[{"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=270248"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=270248"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=270248"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=270248"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=270248"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=270248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}