- Updated generateICSContent function to accept optional rsvp_cutoff_date parameter
- Added formatted RSVP cutoff note to calendar event descriptions with bold 'Note:' text
- Backend now passes rsvp_cutoff_date to ICS generation when creating calendar files
- Calendar events now include helpful reminder about RSVP deadlines for attendees
- Note displays formatted cutoff date with full weekday, date, time and timezone info
- Added generateICSContent() function to create RFC-compliant ICS calendar files
- Added /api/events/:slug/calendar.ics endpoint to serve downloadable calendar files
- Updated RSVP confirmation emails to include styled 'Add to Calendar!' button
- ICS files include event title, description, location, date/time, and unique identifiers
- Calendar files are automatically named with event slug for easy identification
- Button links directly to ICS download endpoint for seamless calendar integration
- Supports all major calendar applications (Outlook, Google Calendar, Apple Calendar, etc.)
- Added email column to display attendee_email in the RSVP management table
- Added email icon button to resend confirmation emails to attendees
- Added clipboard icon button to copy RSVP edit links to clipboard
- Updated RSVP interface to include attendee_email and edit_id fields
- Added backend endpoint /api/rsvps/resend-email/:editId for resending emails
- Email and copy buttons are disabled when email/edit_id are not available
- Improved admin functionality for managing RSVPs and communicating with attendees
- Added email_address field to RSVPEditForm interface and form
- Email field is required and positioned after name field
- Added helper text explaining new confirmation will be sent if email changes
- Updated form validation to include email as required field
- Backend now detects email changes and sends new confirmation emails
- Email field follows same editing rules as other fields (disabled when event closed)
- Updated backend to use email_address parameter instead of attendee_email for consistency