A modern data format for events.
This monorepo contains a lot of things:
Specification: The data format specification document, can be found here. There's also:
- JSON Schema of the data format
- Markdown documentation which is generated from the JSON Schema
- AT Protocol Lexicons
Packages: We publish a few NPM packages to make it easier to work with the data format:
- @evnt/schema: Types and Zod validation
- @evnt/partial-date: Helpers for working with partial dates using Temporal API
- @evnt/translations: Helper for working with Translations type
- @evnt/convert: Converters between Open Evnt and other formats (such as iCalendar, Community Lexicon, schema.org, etc.)
- @evnt/pretty: Opinionated helpers for pretty-printing of event data
Applications
- landing: A landing page for the project hosted at https://evnt.directory
Other Links
Related Projects
- eventsl.ink: Share event links independently of the website or platform it's on
- Vantage: Proof-of-concept calendar application built on top of Open Evnt
If you want to build an application, a library, or anything else using Open Evnt, that's great! We would love to see what you build and help in any way we can. Join our Discord/Matrix and share your project with us! We can also add it to this README to help others discover it.
The specification is open for contributions! If you have suggestions for improvements or have ideas or just want provide constructive criticism, feel free to open an issue or a pull request.
When making a pull request, only update docs/README.md, packages/schema and lexicons-src. The JSON Schema and the Markdown documentation will be generated from these files.
This monorepo uses pnpm as the package manager. Run pnpm install to install dependencies.
You can run tests using pnpm test. We use Vitest for testing.