生成并发送自动将事件添加到用户日历的 .ics 文件

Generating and sending .ics file that automatically adds an event to a user's calendar

现在我们正在使用 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

这需要对日历有更多的了解。

他们使用 .ics 文件作为事件的格式,但日历要求用户将这些事件添加到他们的日历中。

对于纯自动化,您必须要求用户“使用 {Google/Outlook/ETC} 进行身份验证”并提供“授权 read/write 访问应用程序”。

然后您就可以自动将活动添加到日历中了。

另一种方法是创建一个 calendar RSS Feed 并指示用户将您的 RSS 提要导入他们的日历。您可以使 URL 对用户唯一,需要一个 API 令牌或其他东西,这样它就不是纯粹的 public.