Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

use free software to generate public calendars #753

Open
anarcat opened this issue Feb 5, 2025 · 2 comments
Open

use free software to generate public calendars #753

anarcat opened this issue Feb 5, 2025 · 2 comments

Comments

@anarcat
Copy link

anarcat commented Feb 5, 2025

Hi!

I'm not sure this is the right place for this request, but I have found out that the Thunderbird website ships world calendars, thanks to Nextcloud suggesting those calendars in its user interface:

https://www.thunderbird.net/en-US/calendar/holidays/

While trying to figure out where that data was generated, I stumbled upon this project which, in its README file, says:

Calendar generation can be manually built by appending the option--buildcalendar. This queries our current calendar provider (Calendarific) and generates a .ics file per each locale specified in settings.py. For testing, you can limit this to just US by using the option --enus.
This option requires setting the CALENDARIFIC_API_KEY= environment variable. If you're using a paid plan you can also set CALENDARIFIC_IS_FREE_TIER=false to remove the sleep time between calls.

Unfortunately, Calendarific doesn't seem to be providing or based on free or even open data. In fact, their terms of service seem to indicate Thunderbird might actually be in breach of the agreement, as it infringes on point 4.2.e:

4.2. Permitted Use.
[...]
The following is a non-exhaustive list of practices that would not be considered "Legitimate Use":
[...]
(e) Redistribute or resell the Data or the Services (wholly or in part).

I have not reported this to the Calendarific people, of course.

I have found two Python libraries that provide similar data:

I encourage you to consider switching to one of those for generating the ICS files! It would reduce legal exposure to the Thunderbird project, at least.

I also think the data source should be credited on the website. If you switch to those free libraries, it could also encourage collaboration in the wider "time and date" community and possibly convergence over such tools and data sources, reducing overall maintenance burden.

Thank you for your consideration.

@arkid15r
Copy link

arkid15r commented Feb 6, 2025

@anarcat thanks for suggesting holidays as a potential alternative. I'm Ark, a maintainer of the holidays package.

Here are some key points about the project:

Pros:

  • MIT License – Ensures long-term openness and flexibility for Thunderbird.
  • Efficiency – Optimized for fast lookups and minimal resource usage.
  • Ongoing Maintenance – Actively developed with regular updates.
  • Stable Release Schedule – New stable releases are published on the 1st and 3rd Monday of every month.
  • Growing Adoption – Around 9M downloads per month.
  • Expanding Coverage – Actively working on adding more countries -- WIP Add new countries list vacanza/holidays#1141.
  • High Code Quality – Maintains 100% test coverage to ensure reliability.

Cons:

  • Fewer Supported Entities (Currently ~160 vs. 230+ in Calendarific) – However, the list is expanding, with a focus on ISO 3166 compliance.
  • Lower Outside Contributor Involvement – Most contributions come from core maintainers (@arkid15r, @KJhellico, and @PPsyrius), but efforts are being made to grow the community. We plan to participate in Google Summer of Code 2025 and are currently involved in Winter of Code, where I am mentoring four students to accelerate development.

We would be happy to collaborate to ensure holidays meets Thunderbird's needs. Let us know if there are specific requirements we should prioritize.

@anarcat
Copy link
Author

anarcat commented Feb 6, 2025

Calendra: built-in ICS output

for what it's worth, i wrote a simple wrapper to generate .ics files for all zones supported by calendra here:

jaraco/calendra#36

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants