Atomic Events Calendar
by Árpád Lehel Mátyus on WordPress.org
Atomic Events Calendar: A lightweight WordPress events framework that gives agencies full control without the bloat.
Atomic Events Calendar is built for developers and agencies who need events in WordPress without the overhead of full event management plugins.
Instead of starting from scratch on every project, Atomic Events Calendar gives you:
– A ready-to-use Events post type
– Essential event fields (date, venue, type, etc.)
– Developer-friendly shortcodes to display and filter events
– A robust theming structure for easy overrides and custom designs
✨ Think of it as a lightweight framework disguised as a plugin: everything you need to set up events quickly, with the freedom to extend and customize as you like.
Perfect for agencies that want full control over their event implementations—without the bloat.
Features
- Developer-Friendly – Clean code structure with services architecture
 - Responsive Design – Built with Tailwind CSS for modern, responsive layouts
 - Structured Data for Search Engines – Automatic JSON-LD schema markup for better SEO and rich snippets
 - Custom Post Type – Dedicated ‘atomic-event’ post type with all necessary fields
 - Template Override System – Easy theme integration with template hierarchy
 - Shortcode Support – Display events anywhere with 
[atomic-events]shortcode - Featured Events – Mark and display featured events prominently
 - Location Management – Complete address fields (street, city, state, country, postcode)
 - Date & Time Support – Start/end dates with time support
 - Image Support – Featured images with captions
 - Member-Only Events – Restrict events to members only
 - Performance Caching – Automatic shortcode caching with smart invalidation
 
Basic usage is through shortcode:
[atomic-events filter max='10' columns='3' featured='0' 
    skip_first_x='0' skip_first_x_featured='1' order='ASC']
How can I customize the event template?
The plugin provides a default template for single events, but you can override it in your theme:
- Child Theme (recommended): Copy the template to 
child-theme/atomic-events/single/single-atomic-event.php - Parent Theme: Copy the template to 
parent-theme/atomic-events/single/single-atomic-event.php 
The plugin will automatically use your theme’s version instead of the default.
See the example template in templates/theme-override-example.php for reference.
My event pages show 404 errors
If you experience 404 errors when viewing event pages:
1. Go to WordPress Admin  Events  Settings
2. Click “Flush Rewrite Rules”
3. If that doesn’t work, go to Settings  Permalinks and click “Save Changes”
Template Structure
The plugin provides a comprehensive template override system. You can override any template by creating files in your theme:
    your-theme/
    └── atomic-events/
    │   ├── cards/
    │   │   ├── card-item-default.php
    │   │   ├── card-item-featured.php
    │   │   ├── card-list-header-default.php
    │   │   └── card-list-footer-default.php
    │   ├── single/
    │   │   └── single-atomic-event.php
    │   ├── content/
    │   │   └── single-event.php
    │   
Template Hierarchy
The plugin follows WordPress template hierarchy for single event pages. Templates are loaded in this order of priority:
- Child Theme: 
child-theme/atomic-events/single/single-atomic-event.php - Parent Theme: 
parent-theme/atomic-events/single/single-atomic-event.php - Plugin Default: 
plugin/templates/single/single-atomic-event.php 
Template Override System
The plugin uses a custom template loader that checks for theme templates first, then falls back to the plugin’s default template. This ensures:
– Theme compatibility: Works with any WordPress theme
– Customization flexibility: Easy to override in themes
– Update safety: Plugin updates won’t break custom templates
– Developer-friendly: Clear hierarchy and fallback system
Template Hierarchy Priority:
- Child Theme: 
child-theme/atomic-events/[template-name].php - Parent Theme: 
parent-theme/atomic-events/[template-name].php - Plugin Default: 
plugin/templates/[template-name].php 
Available Templates:
– Shortcode Templates: Override how events appear in lists and grids
– Single Event Templates: Customize individual event page layouts
– Content Templates: Modify event content display
The default template includes:
– WordPress header/footer integration
– Event model for accessing custom fields
– Template loader for modular content parts
– Proper WordPress loop structure
Custom Fields Available
When creating custom templates, you have access to these event fields:
$event_model = new AtomicEventModel(get_the_ID()); // Basic event data $event_model->get_title(); $event_model->get_event_start_date(); $event_model->get_event_end_date(); $event_model->get_event_venue(); $event_model->get_event_location_city(); $event_model->get_event_country(); $event_model->get_event_location_state(); $event_model->get_event_location_region(); // Event settings $event_model->is_featured(); $event_model->is_member_only(); $event_model->get_event_all_day(); // Additional data $event_model->get_event_outbound_link(); $event_model->get_event_tag(); $event_model->get_event_image_id(); $event_model->get_permalink();
Creating Custom Templates
- Copy the example template from 
templates/theme-override-example.php - Place it in your theme at the appropriate path
 - Customize the template as needed
 - Test thoroughly to ensure proper functionality
 
Hooks and Filters
The plugin provides several hooks for customization:
// Filter the template path
add_filter('atomic_events_template_path', 'my_custom_template_path', 10, 2);
// Filter event data before display
add_filter('atomic_events_event_data', 'my_custom_event_data', 10, 2);
// Filter whether to show event in lists
add_filter('atomic_events_should_show_in_list', 'my_custom_visibility_logic', 10, 2);
Shortcode Parameters
The [atomic-events] shortcode supports these parameters:
– filter: “future” or “past” (default: “future”)
– max: Maximum number of events (default: 20)
– columns: Number of columns (default: 3)
– featured: Show only featured events (true/false)
– skip_first_x: Skip first X events
– skip_first_x_featured: Skip first X featured events
– order: “ASC” or “DESC” (default: “ASC”)
Best Practices
- Always use child themes for customizations
 - Test with different themes to ensure compatibility
 - Use the event model for accessing custom fields
 - Follow WordPress coding standards
 - Document custom modifications
 - Test thoroughly before deployment