Maybe its not something that google does anymore! I have the following code.
mail(from: @process_action.finance_case.case_owner.user.email, to: @process_action.finance_case.case_owner.user.email, subject: "Appointment") do |format|
format.ics {
ical = Icalendar::Calendar.new
e = Icalendar::Event.new
e.start = DateTime.now.utc
e.start.icalendar_tzid="UTC" # set timezone as "UTC"
e.end = (DateTime.now + 1.day).utc
e.end.icalendar_tzid="UTC"
e.organizer "[email protected]"
e.uid "MeetingRequest#{unique_value}"
e.summary "Scrum Meeting"
ical.add_event(e)
ical.publish
ical.to_ical
render :text => ical.to_ical
}
end
Have tried setting the content type to text/calendar and a few other randon changes to see if it helped. Someone suggest the 'method' should be set to REQUEST for google to recognise but not sure how or where.
Any help/pointers would be gratefully received. Or even if it would work in Outlook as that is what the client uses.
UPDATE: Not to clear above but the email is being delivered. Its google that is failing to recognise it as an event invite.
Rather than providing the ics information as a format block, what worked for me was to add it to the email as an attachment. Gmail then shows it as an attached event under an "Events in this message" block:
# Generate the calendar invite
ical = Icalendar::Calendar.new
e = Icalendar::Event.new
...
ical.add_event(e)
ical.publish
# Add the .ics as an attachment
attachments['event.ics'] = { mime_type: 'application/ics', content: ical.to_ical }
# Generate the mail
mail(from: ..., to: ...)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With