calcom / cal.com

Scheduling infrastructure for absolutely everyone.
https://cal.com
Other
30.13k stars 7.13k forks source link

Support Blocking Holiday Calendars #8918

Open njyo opened 1 year ago

njyo commented 1 year ago

Is your proposal related to a problem?

As explained here in #6292, I want holidays to automatically make all time slots unavailable.

Currently, I am using Google calendar and they have holiday calendars that indicate national holidays as all-day events. While I can select the "Holidays in xyz" calendar in Cal.com, it does not affect my availability:

Describe the solution you'd like

What I would like is that I can use either:

  1. Cal.com allows me to mark an (external, i.e., Google, Apple, etc.) calendar as a holiday calendar, where all all-day events are treated as blocking (even if they do not have a "busy" field)
  2. Cal.com supports adding its own (native) holiday calendars that automatically block out days

Describe alternatives you've considered

None really. Of course I could make an automation that duplicates holidays into another, user-owned calendar, but that feels backwards as the whole point of the app is to do conflict checking.

Additional context

Seems like this was deemed not to be part of the scope of #6292. :)

Thanks!

alishaz-polymath commented 1 year ago

Thank you for raising this @njyo 🙏

rkreddy99 commented 1 year ago

Does this has to be shown up in the Availability > dates overrides section?

alishaz-polymath commented 1 year ago

It's not ready to be implemented yet. Please hold on while the designs are set.

rjackson commented 1 year ago

One confusing behaviour of Google Calendar is that all-day events are created as "free" by default and regular events "busy" by default. I only learned of that behaviour whilst debugging and reading through these issues, and it doesn't look like you can change those defaults in Google Calendar.

If we label this feature a little more generically, Treat all-day events as "Busy", it can help both the public holidays issue as well as this awkward behaviour of Google Calendar.

Something like:

[ ] Treat all-day events as "Busy"

Some calendar providers create all-day events as "free" by default, so they don't block your availability. This can include "Public Holiday" events whose free/busy status you cannot change. Check this option if you want to disallow bookings during all-day events in your calendar.

PeerRich commented 1 year ago

this would fix it: #7600

njyo commented 1 year ago

this would fix it: #7600

Thanks, @PeerRich, but this only works for holidays that are always on the same date of a solar calendar, like Christmas or New Year. It does not work for holidays that change dates on a solar calendar like Easter, Lunar New Year or Eid al-Adha… 😬

saschafoerster commented 9 months ago

For German holidays, we use this ICS file from Apple in our Apple Calendar: https://calendars.icloud.com/holidays/de_de.ics/ Would be great, if such an ICS could be used as a blocking element on the team level. So maybe this can be solved in relation to #3167