Skip to content

digitaldonkey/open-source-event-calendar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

523 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open Source Event Calendar (OSEC)

A fully open-source WordPress event calendar with native iCal / ICS import and export.

WordPress PHP License

Open Source Event Calendar (OSEC) is a WordPress plugin for creating, managing, sharing, and aggregating events in a self-hosted and fully open-source manner. It is based on All-in-One Event Calendar v2.3.4 by Timely, but reintroduces removed core features and does not depend on proprietary services.

This plugin is open source software in the traditional sense. I pledge this plugin will not urge you to connect to any proprietary/payed service to use described features. All source code is available on GitHub.

💖 Donate: PayPal


Table of Contents


Features

All features are provided in their entirety. No features are locked behind any add-ons.

  • Full iCal / ICS import & export
    • Automatically import external calendars
    • Categorize and tag imported feeds
  • Recurring events, including complex recurrence rules (RFC 5545)
  • Filtering by category and tag
  • Calendar sharing with Google Calendar, Apple iCal, Outlook, and any other system that accepts iCalendar (.ics) feeds
  • Month, week, day, and agenda views
  • Upcoming Events Gutenberg block
  • Direct links to filtered calendar views
  • Color-coded events by category
  • Featured event images and category images
  • SEO-optimized event pages
  • Mobile-friendly and responsive layouts
  • Embedded OpenStreetMap
  • Theme options to customize your calendar appearence
  • Your calendar can be embedded into a WordPress page without needing to create template files or modify the theme.

Import events from other calendars and offer users the ability to subscribe to your calendar.

Importing and exporting iCalendar (.ics) feeds is one of the strongest features of the Event Calendar system. This allows you to manage your websites calendar by providing a public calendar from your Google, Apple or other calendar management software.


Blocks

You can embed the calendar by adding a OSEC Calendar Block to any page or post. Alternatively there is a shortcode available.

Warning

At this time, only one calendar per page or post is supported.

On the long run it's planned to have a Rest API to allow the calendar being rendered with more modern frontend tools than the current, outdated, but nice old Bootstrap 3 stuff.

Shortcodes

Calendar Views

[osec]                       // Default view per settings
[osec view="monthly"]
[osec view="weekly"]
[osec view="agenda"]
[osec view="daily"]

Filtering

By category

[osec cat_name="Holidays"]
[osec cat_name="Lunar Cycles,zodia-date-ranges"]
[osec cat_id="1"]
[osec cat_id="1,2"]

By tag

[osec tag_name="tips-and-tricks"]
[osec tag_name="creative writing,performing arts"]
[osec tag_id="1"]
[osec tag_id="1,2"]

By post ID

[osec post_id="1"]
[osec post_id="1,2"]

Requirements

  • WordPress: 6.6 or newer
  • PHP:
    • PHP 8.2+ required for development
    • PHP 8.1 may work for production builds when installed with composer install --no-dev

Installation

Install as any other plugin, or from GitHub.

Setup steps

  1. Open the plugin settings page and save once
  2. Configure:
    • Timezone
    • UI date formats
    • Week start day
  3. Review WordPress → Settings → General for output date formats.
  4. (Optional) Override constants file: Copy constants-local.php.example and save as constants-local.php

To remove all plugin data on uninstall, set: define('OSEC_UNINSTALL_PLUGIN_DATA', true);


Languages

OSEC supports multiple languages

This Is a Fork

OSEC is a fork of the GPL licensed plugin All-in-one-Event-Calendar by Timely. At it's time a great plugin with a solid but unmaintainable codebase (not all required developer tools where opensourced).

If you love truly open source software and don't mind to get your hands dirty you should join here. Free people need free software to manage and share events in a selfhosted manner.

External services

OSEC may connect to OpenStreetMap to render maps. If you using maps feature make sure you agree with Terms of Service

OSEC may connect to OpenStreetMap Nominatim geocoding API. Terms of Service. You may need to switch the servive on a heavy traffic site as Nominatim allows an absolute maximum of 1 request per second.

By default leaflet and leaflet-control-geocoder are loaded from unpkg.com. Terms of Service.

You can change using hooks: osec_leaflet_library_alter, osec_leaflet_geocoder_library_alter.

Migration Notes

Database structure is not fully compatible with All-in-One Event Calendar v2.3.4

Migration may be possible with manual effort

A standardized upgrade path may be developed if there is demand and contributions

See this wiki for currently known information on migrating.


Development & Support

The principle behind this plugin is to be Open Source. Get in touch on GitHub to report issues, propose feature enhancements, and get general guidance for contributing.

Writing this fork was a huge effort.

Digitaldonkey believes everybody should be able to set up and manage public calendars.

If you are implementing this plugin for others you should support ongoing development with a donation or contribution.

Be a maker😀

Those wishing to contribute to the development of this project, please see the Development Guide for more information.

Upgrade Notice

= 1.0.7 =

Categories and Tags renamed Upgrading from pre 1.0.7 requires you to rename taxonomies due to prefix requirements.

# events_categories => osec_events_categories
UPDATE  `wp_term_taxonomy` SET  `taxonomy` =  'osec_events_categories' WHERE  `taxonomy` = 'events_categories';
# events_tags       => osec_events_tags
UPDATE  `wp_term_taxonomy` SET  `taxonomy` =  'osec_events_tags' WHERE  `taxonomy` = 'events_tags';

Frequently Asked Questions

"I really need feature XYZ"

Let's draft it out on GitHub. You could donnate/pay me development time to get it contributed. Invoices possible. Or feel free to implement the requested feature yourself and create a Pull Request for it. I may also provide paid support.


Screenshots

Month view Month View

Week view Week View

Agenda view Agenda View

Calendar Block UI Calendar Block UI

Manage iCal Feeds Manage iCal Feeds

Recurring Events Recurring Events

Cache Settings Cache Settings

Mobile Agenda View Mobile Agenda View

Schema.org/Event data validator Schema.org/Event data validator

Contributors

WordPress:

digitaldonkey, hubrik, vtowel, yaniiliev, nicolapeluchetti, jbutkus, lpawlik, bangelov

GitHub:

Contributor list made with contrib.rocks.

Packages

 
 
 

Contributors

No contributors

Languages

  • PHP 40.7%
  • JavaScript 39.8%
  • Less 14.6%
  • Twig 3.5%
  • SCSS 0.5%
  • Shell 0.5%
  • Other 0.4%