ICS end dates are exclusive
Today I learned that per the spec, the DTEND value in an ICS file is exclusive for all-day events. It makes sense but it’s not how most people think of date ranges. I ran into this while making a small node script that takes a json array of events and generates an ICS file. This has been the most convenient way I’ve found to quickly bulk create events in Google Calendar. The only issue is the multi-day events were coming up a day short. ...