- JavaScript 90.4%
- CSS 5.9%
- HTML 3.7%
Calendar code style: prettier
A simple WebXDC calendar application.
Getting Started
- Download
calendar.xdcfile from release assets - Attach it to a group chat
- Added, modified or deleted events will be shared with others in the same group
- Or try out an online demo
Import / Export
The calendar is based on the ICS format
as described in RFC 5545
and has been tested with Simple Calendar, Etar, Thunderbird, Google Calendar and Apple Calendar.
Please let us know if there are some features missing.
Complete calendar data can be imported from or exported to an .ics file
and shared with other group chats.
There's also an option to Share individual events in the same fashion.
Contributing
The code is currently based on vanilla JavaScript, HTML and CSS.
A development environment with node.js and npm installed is assumed.
Install
npm install
Tests
The tests are run using vitest.
npm test
There are also e2e tests based on playwright
npm run test:e2e
You can watch the tests in the UI by running
npm run test:e2e:ui
Run in the browser
This is the simplest way of running the app in the browser. Hot reloading is supported.
npm run dev-mini
Run in the WebXDC emulator
A more advanced way of running the the app
is using the webxdc-dev development server.
npm run dev
Linting
We use Prettier as a linter.
After you modify the code, run:
npm run format
Building
To create a .xdc file that can be send to a chat in Delta Chat
or any other WebXDC-capable app, execute:
npm run build
The resulting optimized .xdc file is saved in dist-xdc/ folder,
then just send the file to a group or a chat and you are ready to go!
Translations
Translation files are stored in langs/xy.json,
where xy is the abbreviated language locale.
This folder should not be updated directly
but instead via Codeberg Weblate.
Once a language has been added or updated,
the changes can be pushed to Codeberg
and a pull request can be created to pull the updates in.
Note that if a new language has been added,
then it must be included in js/langs.js to be available and bundled properly.
If a language is missing, it will fallback to English in langs/en.json.
Releasing
To automatically build and create a new GitHub release with the .xdc file:
git tag v1.0.1
git push origin v1.0.1
License
MPL - Mozilla Public License Version 2.0.