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.
[atomic-events] shortcodeBasic usage is through shortcode:
[atomic-events filter max='10' columns='3' featured='0'
skip_first_x='0' skip_first_x_featured='1' order='ASC']
The plugin provides a default template for single events, but you can override it in your theme:
child-theme/atomic-events/single/single-atomic-event.phpparent-theme/atomic-events/single/single-atomic-event.phpThe plugin will automatically use your theme’s version instead of the default.
See the example template in templates/theme-override-example.php for reference.
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”
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
│
The plugin follows WordPress template hierarchy for single event pages. Templates are loaded in this order of priority:
child-theme/atomic-events/single/single-atomic-event.phpparent-theme/atomic-events/single/single-atomic-event.phpplugin/templates/single/single-atomic-event.phpThe 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/atomic-events/[template-name].phpparent-theme/atomic-events/[template-name].phpplugin/templates/[template-name].phpAvailable 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
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();
templates/theme-override-example.phpThe 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);
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”)