现在我们使用icalendar gem来生成一个ics文件,并通过电子邮件发送。
虽然这确实通过电子邮件为用户提供了一个方便的“添加到我的日历”按钮,但它不会自动将事件添加到用户的日历中,因此用户仍然必须自己完成该手动步骤。
有没有什么方法可以使事件自动添加到用户的日历中?这一直很难找到解决办法。
def add_calendar_event
@cal = Icalendar::Calendar.new
@cal.event do |e|
e.dtstart = start_time
e.dtend = end_time
e.summary = 'Organized Appointment'
e.organizer = organizer_email
e.attendee = user_email
e.description = 'random string'
e.status = 'CONFIRMED'
end
@ics_var = { mime_type: 'text/calendar; charset=UTF-8; method=REQUEST', content: @cal.to_ical }
end
2条答案
按热度按时间9rbhqvlz1#
这需要对日历有更多的了解。
它们使用
.ics
文件作为事件的格式,但日历要求用户将这些事件添加到其日历中。对于纯自动化,您必须要求用户“使用{Google/Outlook/ETC}进行身份验证”并提供“授权对应用程序的读/写访问”。
然后,您将能够自动添加事件到日历。
另一种方法是创建一个calendar RSS Feed并指示用户将您的RSS提要导入到他们的日历中。您可以使URL对用户唯一,需要API令牌或其他东西,以便它不是纯粹的公共。
guykilcj2#
有一个简单的工具称为计划导入程序。您可以填写多个日程事件、日期、位置和描述,然后生成一个.ics文件,该文件可以在多个设备的所有日历应用程序中自动打开📆。这里是链接Schedule importer tool online