- 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
- Changed default event duration from 2 hours to 4 hours
- Fixed location field escaping issue that was adding unwanted backslashes
- Updated 'Add to Calendar' button styling to remove green background
- Button now uses blue border and text instead of solid green background
- Location field in ICS files now displays properly without escape characters
- 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.)
- Changed submission data field from 'email_address' to 'attendee_email'
- Backend expects 'attendee_email' but frontend was sending 'email_address'
- This fixes the issue where email updates wouldn't save to the database
- Email field now properly updates when edited through the admin interface
- Fixed missing hundreds of lines that were accidentally truncated
- Restored complete component with all dialogs, tables, and functionality
- Email field now properly populates in RSVP edit form from attendee_email
- Added snackbar notifications for email sending and link copying actions
- All admin functionality including item management, event updates, and RSVP editing is now complete
- Added email_address field to EditFormData interface
- Updated handleEditRsvp to populate email field from rsvp.attendee_email
- Modified handleEditSubmit to include email_address in submission data
- Added snackbar state variables for user feedback notifications
- Enhanced handleSendEmail and handleCopyLink with success/error snackbar messages
- Added handleSnackbarClose function for snackbar management
- Improved user experience with immediate visual feedback for admin actions
- Fixed issue where email field would show [object Object] instead of actual email text
- 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
- Changed email_address mapping from rsvpResponse.data.email_address to rsvpResponse.data.attendee_email
- Database stores email as 'attendee_email' but frontend uses 'email_address'
- This fixes the issue where email field would be blank after changing email address
- 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
- Removed email notification toggle - email is now always required
- Moved email field to be required right after name field
- Added helper text explaining users will receive confirmation with edit link
- Simplified form validation and submission logic
- Email confirmations are now sent automatically for all RSVPs
- Removed duplicate FormData.append() call for event_conclusion_message
- The field was being appended twice: once in the forEach loop and once explicitly
- This caused the backend to receive malformed data resulting in [object Object]
- Now the field is only appended once through the normal form processing loop
- Changed String() conversion to direct assignment in EventAdmin.tsx
- Now properly displays actual text content instead of [object Object]
- Handles null/undefined values by defaulting to empty string