Skip to content

Add Download .ics link to protocol call calendar comments#2012

Open
dionysuzx wants to merge 1 commit intoethereum:masterfrom
dionysuzx:feat/ics-download
Open

Add Download .ics link to protocol call calendar comments#2012
dionysuzx wants to merge 1 commit intoethereum:masterfrom
dionysuzx:feat/ics-download

Conversation

@dionysuzx
Copy link
Copy Markdown
Contributor

@dionysuzx dionysuzx commented Apr 9, 2026

Summary

  • Adds a Download .ics link alongside the existing View and Add to Calendar links in protocol call GitHub comments
  • New build_ics_download_link() in gcal.py generates a URL to the /api/ics endpoint on ps.ethereum.foundation (stateless — all event data in query params, same as the existing Google Calendar TEMPLATE link)
  • The .ics endpoint is a new Next.js route handler on ethereum/protocol-support-website — see Add /api/ics endpoint for calendar file downloads protocol-support-website#10

Before

✅ Calendar: View | Add to Calendar

After

✅ Calendar: View | Add to Calendar | Download .ics

E2E test

Tested with a real GitHub comment on mobile (iOS) and desktop: dionysuzx/pm#16 (comment)

Dependencies

Test plan

  • 21 unit tests passing (test_gcal_links.py)
  • .ics download works on desktop browser
  • .ics download works on mobile (iOS calendar app opens)
  • Existing View and Add to Calendar links unaffected
  • Missing params returns 400 with clear error message
  • Long descriptions fold correctly per RFC 5545
  • CRLF injection attempt neutralized (verified on preview deploy)
  • Oversized params rejected with 400

Add build_ics_download_link() that generates a URL to the
ps.ethereum.foundation /api/ics endpoint with event data as query
params. Update render_calendar_comment_line() to include the new
link alongside the existing View and Add to Calendar links.

The .ics endpoint is a stateless route handler on
ethereum/protocol-support-website (PR #10) that returns a
text/calendar file download from URL params.
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

Successfully merging this pull request may close these issues.

1 participant