Before you report something, read the reporting rules here please.
Some instructions about code style and everything that has to be done to increase the chance of your code getting accepted can be found at the General Discussion section.
In case you just want to for example improve a translation, you can find the way of doing it here.
- For most countries, holidays are generated automatically using the date-holidays library. You can find the list of countries supported by date-holidays here.
- The app includes a different set of countries compared to date-holidays. For an exhaustive list of countries included in the app, check out holiday generator configuration file.
- Contributions are welcome for countries that are not yet supported by date-holidays but are included in the app.
Basic knowledge about git, forks, pull requests and ICS syntax is required.
Adding holidays manually is slightly complicated than necessary due to periodic updates from the generator (to be simplified) so it's highly recommended to add holidays directly to the upstream date-holidays project. That way, everyone benefits from your contribution but if that's not an option, follow these steps:
- Create a new folder in the holidays directory. The folder name should be your country's ISO 3166-2 code.
- Create the following ICS files inside your newly created folder:
public.ics
for public holidays.- (optional)
regional.ics
for regional/state-specific holidays (holidays observed in some state/region but not country-wide). - (optional)
other.ics
for observances and other non-official holidays.
- Update metadata.json as per your country code and the corresponding ICS files you have created.
- Add your country to the list unsupported countries in the holiday generator configuration file. This step ensures your holiday files aren't removed by the generator's future updates.
- Test your changes locally to ensure everything is working as expected.
- Finally, commit your changes and open a pull request.