
The Events Calendar: #1 calendar plugin for WordPress. Create/manage events (virtual too!) on your site with the free plugin.
Easily create and manage an events calendar on your WordPress site with The Events Calendar free plugin. Whether your events are in-person or virtual events, this WordPress calendar plugin boasts professional features backed by our world-class team of developers and designers.
See more videos on our YouTube channel
Packed with loads of features, The Events Calendar is ready to go out of the box. It’s also extensible, easy to use, and completely customizable.
See the calendar in action on our demo experience. Just getting started? Read through the New User Primer to get set up.
Looking for additional features like recurring events, ticket sales, user-submitted events, automatic imports, and more?
Check out Events Calendar Pro, Event Aggregator, and more add-ons.
The Events Calendar is built to work out of the box. Simply install the plugin, configure your settings, and start creating events in minutes.
Want to add your personal touch? Use The Events Calendar as the foundation for customization. Personalize to your heart’s content with the help of a skeleton stylesheet, partial template overrides, template tags, hooks and filters, careful documentation, and a library of free extensions.
Whether your vision is big or small, you’re in good company. Hundreds of thousands of small businesses, musicians, venues, restaurants, and non-profits are publishing and promoting their in-person and virtual events with The Events Calendar. Our plugins have also been scaled to work on large networks for Fortune 100 companies, universities, and government institutions.
Our feature-rich plugin comes with everything you need to create and manage your calendar.
✔️ Rapidly create events
✔️ Saved venues & organizers
✔️ Calendar month view with tooltips
✔️ Event List view
✔️ Day view
✔️ Block Editor support
✔️ Event search
✔️ Google maps
✔️ Widget: Upcoming events list
✔️ Events Taxonomies (Categories & Tags)
✔️ Google Calendar and iCal exporting
✔️ WP REST API endpoints
✔️ Completely ajaxified for super smooth browsing
✔️ Completely responsive from mobile to tablet to desktop
✔️ Tested on the major theme frameworks such as Avada, Divi, Enfold, Genesis, and many more.
✔️ Increase your SEO with JSON-LD Structured Data
✔️ Internationalized & translated
✔️ Multiple stylesheets to improve integration
✔️ Extensive template tags for customization
✔️ Hooks & filters galore
✔️ Caching support
✔️ Debug mode for developers
✔️ Library of extensions
All of our documentation can be found in our Knowledgebase.
Additional helpful links:
If you have any questions about this plugin, you can post a thread in the WordPress.org forum. Please search existing threads before starting a new one.
Take your calendar to the next level by pairing it with our plugins for ticketing, crowdsourcing, email marketing, and more. Learn more about all our products on our website.
Our Free Plugins:
🎟️ Event Tickets
📐 Advanced Post Manager
Our Premium Plugins and Services:
⚡ Events Calendar PRO
↪️ Event Aggregator (service)
🎟️ Event Tickets Plus
📱 Event Tickets Wallet Plus
✉️ Promoter
👥 Community Events
🎟️ Community Tickets
✏️ Filter Bar
🗓️ Eventbrite Tickets
📡 Virtual Events
🔄 Event Automator
If you aren’t familiar with The Events Calendar, check out our New User Primer. It will have you creating events in no time.
Ready to dig deeper? Check out these resources:
We check in on the The Events Calendar forum here on WordPress.org about once a week to help users with basic troubleshooting and identifying bugs. If you’re looking for premium, personalized support, consider upgrading to Events Calendar Pro.
Still have a question? Shoot us an email at support@theeventscalendar.com.
Installing the plugin is easy. Just follow one of the following methods:
That’s it! Just configure your settings as you see fit, and you’re on your way to creating events in style. Need help getting things started? Check out our new user primer for help with settings and features.
First, make sure that you’re running the latest version of The Events Calendar. If you’re running Events Calendar PRO or any other add-ons, make sure those are current / running the latest code as well.
The most common issues we see are either plugin or theme conflicts. You can test if a plugin or theme is conflicting by manually deactivating other plugins until just The Events Calendar is running on your site. If the issue persists from there, revert to the default Twenty Twenty theme. If the issue is resolved after deactivating a specific plugin or your theme, you’ll know that is the source of the conflict.
Note that we aren’t going to say “tough luck” if you identify a plugin/theme conflict. While we can’t guarantee 100% integration with any plugin or theme out there, we will do our best (and reach out the plugin/theme author as needed) to figure out a solution that benefits everyone.
Users of the free The Events Calendar should post their questions in the plugin’s WordPress.org forum, which we visit about once a week. Please make sure to read our sticky post providing an overview of the support we provide free users BEFORE posting. If you find you’re not getting support in as timely a fashion as you wish, you might want to consider purchasing a license for Events Calendar Pro.
If you’re already an Events Calendar Pro user, you’re entitled access to our actively-monitored Premium Support on our website. We can provide a deeper level of support here and hit these forums on a daily basis during the work week. Generally, except in times of increased support loads, we reply to all tickets within 24-48 hours during the business week.
The Events Calendar is our cornerstone plugin, and it’s required in order to run any of our premium calendar add-ons, including Events Calendar Pro, Community Events, Filter Bar, and others.
In other words, Events Calendar Pro runs alongside The Events Calendar and enhances it with extra features, including recurring events, additional calendar views, calendar shortcodes, advanced widgets, custom event fields and more.
The following add-ons are available for The Events Calendar:
Yes! The Events Calendar has a built-in CSV import tool. If you want to step it up and automatically import events from Google Calendar, Meetup, Eventbrite and more, check out Event Aggregator.
You’ll want to use our Event Tickets plugin for that. This free plugin works alongside The Events Calendar and lets you create RSVPs and tickets for events. Event Tickets integrates with PayPal so you can collect payments for tickets, while our premium solution, Event Tickets Plus fully integrates with WooCommerce or Easy Digital Downloads. If you want to include digital tickets like Apple Wallet passes and PDF tickets check out Event Tickets Wallet Plus.
Unfortunately, no. However, you can use event categories or tags to create calendar views that only display certain events. For example, you could create a direct link to a calendar view that only shows events categorized as “Fitness,” like this example from our demo site.
With Events Calendar Pro, you can use shortcodes to embed your calendar on other WordPress pages and posts, then filter that calendar by category.
This is available with the Community Events add-on to facilitate submissions. Install Community Events alongside The Events Calendar and a page will be added to your WordPress site with a form that visitors can use to submit events. As the calendar owner, you have full control over whether event submissions are published immediately or require moderation first.
If you want to let users sell tickets for the events they submit, check out Community Tickets. It runs with The Events Calendar, Community Events, and Event Tickets and empowers visitors to create and sell tickets, splitting the profits with you.
The Events Calendar is our cornerstone plugin, and it’s required in order to run any of our premium calendar add-ons, including Events Calendar Pro, Community Events, Filter Bar, and others.
In other words, Events Calendar Pro runs alongside The Events Calendar and enhances it with extra features, including recurring events and event Series, additional calendar views, calendar shortcodes, advanced widgets, custom event fields, a duplicate event tool, and more.
We’ve got an ideas page where we’re actively watching for feature ideas from the community. Vote up existing feature requests or add your own, and help us shape our roadmap.
Check out our extensive knowledgebase for articles on using, tweaking, and troubleshooting our plugins.
tec_events_integration_elementor_bypass_template_override, tec_events_display_settings_toc, tec_events_general_settings_tocsingle-event-blocks, v2/month/mobile-events/mobile-day/day-marker@param and corrected @return to docblock for filter_display_events_bar() – credit goes to @IanDelMarTribe\Events\Views\V2\Views\Traits\Breakpoint_Behavior.php – credit goes to @IanDelMar$ics_filname to $ics_filename and $deleteable_statuses_interval to $deletable_statuses_interval and $delimter to `$delimiter. Credit goes to @szepeviktor.tec_events_general_settings_toc, tec_events_display_settings_toc.month_multiday_classes, month_day_classes, get_before_events_html, get_after_events_html, tribe_events_views_v2_month_multiday_classes and tec_events_month_day_classes_comparison_date to provide more clarity.tec_views_v2_subscribe_link_visibility, tec_views_v2_subscribe_link_{$slug}_visibility, tribe_get_view_permalink(), tribe_get_basic_gmap_embed_url(), tribe_event_featured_image(), tribe_get_map_link() and tribe_get_map_link_html() methods and add docblocks for the tribe_events_google_map_link, tribe_get_map_link and tribe_get_map_link_html filters.tec_events_integration_elementor_bypass_template_override, tec_events_display_settings_toc, tec_events_general_settings_tocsingle-event-blocks, v2/month/mobile-events/mobile-day/day-markerregenerator-runtime. [TECTRIA-149]tec_events_integration_elementor_bypass_template_override to allow users to bypass the single event template. [TECTRIA-56]tribe_create_venue(), tribe_create_organizer(), tribe_create_event(), tribe_update_event(), tribe_update_venue(), tribe_update_organizer(), tribe_delete_organizer() and tribe_delete_venue() docblocks to indicate future deprecation.src/Tribe/Featured_Events/Permalinks_Helper.php and src/Tribe/Featured_Events/Query_Helper.php.single-eventtribe_event_delete() docblock to indicate future deprecation.tec_events_elementor_widgets_registered [TEC-5091]tec_events_filter_events_template_setting_option, tec_events_filter_tribe_get_single_option, tec_events_{$slug}_visibility_is_visible, tec_events_{$slug}_visibility_is_visible:{$area}, tec_events_{$slug}_visibility_is_visible:{$area}:{$post_id}, tec_events_display_remove_event_end_time_optionstribe_events_register_venue_post_type_labelstec_events_elementor_widgets_registeredsingle-event/recurring-description, v2/list/event/featured-imagetec_events_elementor_loadeddate() to gmdate() for display in the date settings section. [ECP-1618]tec_events_allow_archive_block_template, tec_events_allow_single_block_template, tec_events_elementor_widget_asset_widgets, tec_events_elementor_built_with_elementor, tec_events_elementor_registered_{$this->type}, tec_events_elementor_event_widget_title, tec_events_elementor_event_{$slug}_widget_title, tec_events_elementor_event_widget_element_classes, tec_events_elementor_event_{$slug}_widget_element_classes, tec_events_elementor_event_widget_class, tec_events_elementor_event_{$slug}_widget_class, tec_events_elementor_event_widget_icon_class, tec_events_elementor_event_{$slug}_widget_icon_class, tec_events_elementor_widget_event_id, tec_events_elementor_widget_{$slug}_event_id, tec_events_elementor_widget_template_data, tec_events_elementor_widget_{$slug}_template_data, tec_events_elementor_event_calendar_link_widget_link_text, tribe_get_event_categories, tec_events_elementor_event_categories_widget_event_categories_html, tec_events_elementor_event_category_widget_header_class, tec_events_elementor_event_category_widget_link_wrapper_class, tec_events_elementor_event_export_widget_dropdown_class, tec_events_elementor_event_export_widget_dropdown_button_class, tec_events_elementor_event_export_widget_dropdown_list_class, tec_events_elementor_event_export_widget_dropdown_list_item_class, tec_events_elementor_event_export_widget_dropdown_link_class, tec_events_elementor_event_export_widget_dropdown_content_class, tec_events_elementor_event_export_widget_dropdown_icon_class, tec_events_elementor_event_export_widget_export_icon_class, tec_events_elementor_event_export_widget_dropdown_gcal_class, tec_events_elementor_event_export_widget_dropdown_ical_class, tec_events_elementor_event_export_widget_dropdown_365_class, tec_events_elementor_event_export_widget_dropdown_live_class, tec_events_elementor_event_organizer_widget_email_header_text, tec_events_elementor_event_organizer_widget_phone_header_text, tec_events_elementor_event_organizer_widget_website_header_text, tec_events_elementor_event_organizer_header_class, tec_events_elementor_event_organizer_name_class, tec_events_elementor_event_organizer_name_wrapper_class, tec_events_elementor_event_organizer_phone_class, tec_events_elementor_event_organizer_phone_wrapper_class, tec_events_elementor_event_organizer_phone_header_class, tec_events_elementor_event_organizer_email_class, tec_events_elementor_event_organizer_email_wrapper_class, tec_events_elementor_event_organizer_email_header_class, tec_events_elementor_event_organizer_website_class, tec_events_elementor_event_organizer_website_wrapper_class, tec_events_elementor_event_organizer_website_header_class, tec_events_elementor_event_passed_label_text, tec_events_elementor_event_tags_separator, tec_events_elementor_event_tags_widget_header_text, tec_events_elementor_event_tags_header_class, tec_events_elementor_event_tags_links_class, tec_events_elementor_event_tags_link_class, tec_events_elementor_event_venue_widget_header_text, tec_events_elementor_event_venue_widget_website_header_text, tec_events_elementor_event_venue_widget_phone_header_text, tec_events_elementor_event_venue_widget_address_header_text, tec_events_elementor_event_venue_header_class, tec_events_elementor_event_venue_name_class, tec_events_elementor_event_venue_address_class, tec_events_elementor_event_venue_phone_class, tec_events_elementor_event_venue_website_class, tec_events_elementor_event_venue_map_class, tec_events_elementor_event_website_widget_header_class, tec_events_elementor_event_website_widget_link_class, tec_events_elementor_widget_classes, tec_events_should_display_events_template_settingtribe_get_venue_website_link_labeltec_events_elementor_register_widget_assets, tec_events_elementor_enqueue_frontend_assets, tec_events_elementor_register_editor_styles, tec_events_elementor_widget_enqueue_style, tec_events_elementor_widget_{$slug}_enqueue_styleintegrations/elementor/templates/blank, integrations/elementor/templates/starter, integrations/elementor/widgets/base, integrations/elementor/widgets/empty, integrations/elementor/widgets/event-calendar-link, integrations/elementor/widgets/event-categories, integrations/elementor/widgets/event-categories/header, integrations/elementor/widgets/event-cost, integrations/elementor/widgets/event-cost/header, integrations/elementor/widgets/event-datetime, integrations/elementor/widgets/event-datetime/all-day, integrations/elementor/widgets/event-datetime/end-date, integrations/elementor/widgets/event-datetime/end-time, integrations/elementor/widgets/event-datetime/header, integrations/elementor/widgets/event-datetime/range-separator, integrations/elementor/widgets/event-datetime/start-date, integrations/elementor/widgets/event-datetime/start-time, integrations/elementor/widgets/event-datetime/time-separator, integrations/elementor/widgets/event-datetime/timezone, integrations/elementor/widgets/event-export, integrations/elementor/widgets/event-export/button, integrations/elementor/widgets/event-export/link, integrations/elementor/widgets/event-export/list-item, integrations/elementor/widgets/event-image, integrations/elementor/widgets/event-navigation, integrations/elementor/widgets/event-navigation/next, integrations/elementor/widgets/event-navigation/previous, integrations/elementor/widgets/event-organizer, integrations/elementor/widgets/event-organizer/details, integrations/elementor/widgets/event-organizer/details/email, integrations/elementor/widgets/event-organizer/details/email/content, integrations/elementor/widgets/event-organizer/details/email/header, integrations/elementor/widgets/event-organizer/details/phone, integrations/elementor/widgets/event-organizer/details/phone/content, integrations/elementor/widgets/event-organizer/details/phone/header, integrations/elementor/widgets/event-organizer/details/website, integrations/elementor/widgets/event-organizer/details/website/content, integrations/elementor/widgets/event-organizer/details/website/header, integrations/elementor/widgets/event-organizer/header, integrations/elementor/widgets/event-organizer/names, integrations/elementor/widgets/event-status, integrations/elementor/widgets/event-status/passed, integrations/elementor/widgets/event-status/status, integrations/elementor/widgets/event-tags, integrations/elementor/widgets/event-tags/content, integrations/elementor/widgets/event-tags/header, integrations/elementor/widgets/event-title, integrations/elementor/widgets/event-venue, integrations/elementor/widgets/event-venue/address, integrations/elementor/widgets/event-venue/address/address, integrations/elementor/widgets/event-venue/address/header, integrations/elementor/widgets/event-venue/address/map_link, integrations/elementor/widgets/event-venue/header, integrations/elementor/widgets/event-venue/map, integrations/elementor/widgets/event-venue/name, integrations/elementor/widgets/event-venue/phone, integrations/elementor/widgets/event-venue/phone/header, integrations/elementor/widgets/event-venue/phone/phone, integrations/elementor/widgets/event-venue/single-venue, integrations/elementor/widgets/event-venue/website, integrations/elementor/widgets/event-venue/website/header, integrations/elementor/widgets/event-venue/website/website, integrations/elementor/widgets/event-website, integrations/elementor/widgets/event-website/header, integrations/elementor/widgets/event-website/link, integrations/event-tickets/emails/template-parts/body/event/venue/websiteintegrations/event-tickets/emails/template-parts/body/event/venue/websiteUndefined array key "venue" in /var/www/html/wp-content/plugins/the-events-calendar/src/Tribe/Linked_Posts.php on line 1007.blocks/classic-event-details, blocks/event-website, v2/components/events-bar/views, v2/components/json-ld-data, v2/components/subscribe-links/list, v2/day/top-bar/datepicker, v2/list/top-bar/datepicker, v2/month/top-bar/datepickertec_tickets_wallet_plus_apple_wallet_date_format, tec_tickets_wallet_plus_apple_wallet_time_formattec_events_get_full_site_block_template_servicesblocks/event-links, single-event, v2/components/dataPHP Deprecated: Creation of dynamic property Tribe__Events__Aggregator__Record__gCal::$image_uploader is deprecated. [ECP-1603]tec_events_custom_tables_v1_migration_after_dry_runtec_events_custom_tables_v1_migration_after_dry_run filter. [ET-1715]tribe-events-calendar-month__day--past and tribe-events-calendar-month__day--current classes were not consistently applied after navigating through different months in the Month View. [TEC-4898]page URL param, the paginated page would redirect to a 404. [TEC-4979]tribe_get_venues function to work with recurring events that have provisional IDs. [ECP-1597]tec_events_custom_tables_v1_normalize_occurrence_idv2/list/event/featured-imagePHP Warning: Undefined variable $data in /code/wp-content/plugins/the-events-calendar/src/Tribe/REST/V1/Post_Repository.php on line 327 error. [TEC-4954]Block "core/legacy-widget" is already registered. would occur. Now we check if registered first. [TEC-4764]Deprecated: Creation of dynamic property warnings on: \Tribe__Events__Linked_Posts__Chooser_Meta_Box::$singular_name_lowercase and \TEC\Events\Custom_Tables\V1\Models\Builder::$query [BTRIA-2088]tec_events_get_full_site_block_template_services, tec_events_views_v2_get_rest_nonce_htmlblocks/archive-events, blocks/single-eventtec_events_ical_header_noindex to allow preventing the X-Robots-Tag addition. [TEC-4976]tec_events_seo_robots_meta_include and tec_events_seo_robots_meta_include_{$view} to short-circuit the robots meta tag addition. [TEC-4976]tec_events_seo_robots_meta_content to alter the content attribute of the robots meta tag addition. [TEC-4976]tec_events_seo_robots_meta_allowable_post_types to allow for the filtering of single post types that can have robots meta tags added.tec_events_add_no_index_meta_tag, tribe_events_add_no_index_meta, and tec_events_{$view}_add_no_index_meta in favor of the above new filters.