Our Open Event-Exchange Format

We put together a format wich is suited to exchange events through many portals, networks and websites.
It is designed to be as flexible as possible, supporting multiple locales, multiple dates per event and can be adapted using JSON or XML.
It also features a at the same time simple, but also effective id-generation, wich allows events and/or other entities to be identified without the danger of duplicates througout the system.
Here are two sample files:


As said, the id-generation is very simple, but yet it prevents any duplicate items.
The id is a sha1-hash, that is composed of three parts:

  1. The main domain of the application (in our case encaleo.com)
  2. The entity-type (for instance: event)
  3. The internal id you use in the database
These three parts are divided with a dot and then hashed.
For instance:
The namespacing (domain and entity type) prevents duplicates, the sha1-hash keeps the id-length always at 40 characters. It is very unlikely that we ever encounter a hash-collision.

Multilingual events

Ooef is built from the start to support multilingual events. We think that events consist of two types of data considering multilanguage/localization:
Data wich stays the same in all languages and data that changes with each and every language.
Data like coordinates, categories, timezone, the id will stay the same, no matter in what language you see the event, but data like title, description, address and so on changes.
So we introduced a locales-array in the object wich holds all these things.
One word about dates:
Dates will stay the same in all languages, we use the standard MySql Date-Timeformat (Y-m-d H:i), cutting away the seconds, since we do not need them. We also save the utc-date as separate value for synchronizing events with different timezones.

Multiple dates

We support multiple dates per event. These are saved all in the dates array, containing the start and end-datetime in the local time and utc-time.


Even though encaleo supports only one image per event (we do not want to have the platform full of spam and image-galleries that violate all privacy-laws on this planet), the format supports as many images as you want.
Each image has to be offered in three dimensions: full, medium and small.
The exact dimensions can be defined freely and may vary per platform.