Replace ICS file with calendar links and clean up#499
Conversation
keunes
left a comment
There was a problem hiding this comment.
To check: possibly update 'Community meeting' to 'Community call'; use page slug as default for recurring meeting calendar URLs; make feature request against Davis.
|
@ByteHamster on this point:
What do you think? It is definitely feasible. We can also get rid of the 'meeting room' front matter using similar logic. Both ( The downside is that it's less explicit:
I think that this is fine, though. In any case I would make these front matter fields optional, so we can still explicitly set them to something different if we want. |
|
If it is unlikely that we add another recurring event, does it matter to have it filled in automatically? Making it explicit means that we need to remember less. An AI won't remember this either. If it's explicit in the code, there is less risk for things going wrong |
There was a problem hiding this comment.
Ok, thanks, makes sense - let's leave it explicit. Then the PR is ready to review.
Feature request against Davis to have event-specific subscription URLs: tchapi/davis#260
There was a problem hiding this comment.
Pull request overview
This PR updates the website’s events “add to calendar” flow by removing the generated /events.ics feed and replacing it with calendar subscription / direct .ics links via a new “Add to calendar” modal and updated event metadata.
Changes:
- Replace the old ICS modal +
/events.icsgeneration with a new “Add to calendar” modal and calendar link metadata (calendar-path,uid). - Update event link rendering/styling and the copy-to-clipboard helper to use an explicit event parameter and
data-copy-url. - Add a Jekyll plugin to enforce stable permalinks for recurring events and introduce
calendar_base_urlconfiguration.
Reviewed changes
Copilot reviewed 25 out of 25 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| events/index.html | Switches to the new add-to-calendar modal include on the events overview page. |
| events.ics | Removes the generated global ICS feed. |
| events-with-RDATE.ics | Removes the alternative ICS feed variant. |
| assets/js/copy-url.js | Updates clipboard copy helper to use event + data-copy-url. |
| _sass/_custom.scss | Adds grid border styling for the event links block. |
| _plugins/recurring_events_permalink.rb | Ensures recurring events get a non-date-based permalink when none is set. |
| _layouts/event.html | Reworks event link visibility logic, adds calendar URL variables, switches to new modal include. |
| _includes/share.html | Updates share “copy link” button to pass the click event and use data-copy-url. |
| _includes/ICS-modal.html | Removes the old ICS modal implementation. |
| _includes/event-link-visible.html | Introduces shared logic for whether each event link should be shown. |
| _includes/add-to-calendar-modal.html | Adds the new add-to-calendar modal UI and buttons. |
| _i18n/en/general/events-add-calendar-modal.md | Updates the modal body copy. |
| _i18n/en/general/event-sidebar.md | Updates sidebar CTA to use the new calendar subscription URL + copy behavior. |
| _i18n/en/events/community-meeting.md | Removes old community meeting copy file. |
| _i18n/en/events/community-call.md | Adds new community call copy file. |
| _i18n/en.yml | Updates/extends event calendar-related strings. |
| _events/needs-decision.md | Updates event metadata for new calendar/link approach. |
| _events/community-meeting.md | Removes the old recurring event definition. |
| _events/community-call.md | Adds the renamed recurring event definition using new metadata. |
| _events/2026-01-31-fosdem.md | Updates UID and location formatting for the new link scheme. |
| _events/2022-07-22-10 year anniversary.md | Updates meeting-room format and reorders UID. |
| _events/0_A meeting template.md | Updates the event template to reflect the new calendar/link fields and requirements. |
| _data/ics-timezones.yml | Removes ICS timezone data (no longer needed after ICS feed removal). |
| _data/event-links.yml | Replaces the ICS link entry with a calendar-path link and updates base URLs. |
| _config.yml | Adds calendar_base_url configuration. |
Comments suppressed due to low confidence (1)
_includes/add-to-calendar-modal.html:23
- The "Download ICS" link is always rendered, but
event_ics_urlis only assigned whenpage.uidis present. On pages that include this modal without settingevent_ics_url(e.g., the events index), this will produce an emptyhref. Wrap this link in a conditional (or provide a safe fallback URL) so the button is only shown when the URL is available.
{% endcomment %}
<a role="button" class="btn btn-primary" href="{{ event_ics_url }}">{% t events.general.download-ics %}</a>
</div>
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| console.log('Copy error') | ||
| }); | ||
| }; | ||
| navigator.clipboard.writeText(url); |
| icon: calendar-plus | ||
| text: events.links.add-calendar | ||
| url: /events.ics | ||
| url: https://calendar.antennapod.org/ |
There was a problem hiding this comment.
This should be updated, I assume?
| calendar-path: | ||
| # Required for recurring events. Path under https://calendar.antennapod.org, for example "community-call". | ||
| uid: | ||
| # Required for one-off events. Davis/Sabre event UID used to build the direct .ics download URL. |
There was a problem hiding this comment.
Can't we just use the same calendar link property for both instead of trying to be smart? That's a lot more explicit
| --- | ||
| title: Monthly community call ☎ 🎙 | ||
| summary: Our monthly call to discuss anything AntennaPod (and beyond). Join us! | ||
| uid: 0718779a-5b92-48df-87e3-801e02154c06 |
There was a problem hiding this comment.
Why do we have both uuid and path here?
| Always want to have the latest community call dates and times in your calendar? Then copy the URL and add it as a remote calendar in your calendar app. | ||
|
|
||
| Hope to see you! | ||
| Want to download the calendar file of this gathering, or subscribe to all our calls and meetings? No newline at end of file |
There was a problem hiding this comment.
Gathering -> Event? That's what we call it in the menu
There was a problem hiding this comment.
I think the explanation that you can add the url to the calendar app was useful. I assume not many people know what to do with a calendar link, and without the text they don't really have a pointer where to start
| @@ -0,0 +1,17 @@ | |||
| module Jekyll | |||
There was a problem hiding this comment.
I don't understand why we need custom code here. Don't we get those links automatically? On the old site we had the same links without needing ruby code
Update the event system to replace the ICS file with direct links to add events to calendars.