2

I want to download and parse all the event data from a website's public google calendar, what would be the best way to do so? I'm considering just downloading the ics file or getting xml data and parsing that myself. I've looked into google api but it looks unnecessarily complex if all I want to do is read the data. I'm a beginner to working with API's and programming in general so I'm having trouble navigating all that documentation. They don't provide very many helpful examples.

4

1 回答 1

5

像这样的东西怎么样:

require 'ri_cal'
require 'open-uri'

components = nil
open("https://www.google.com/calendar/ical/ocs.events%40gmail.com/public/basic.ics") do |cal|
  components = RiCal.parse(cal)
end

components.each do |calendar|

  calendar.events.each do |event|
    puts "#{event.summary} starts at: #{event.dtstart} and ends at #{event.dtend}"
  end

end

您将需要安装 ri_gem。

更新:使用 iCalendar

require 'icalendar'
require 'open-uri'

calendars = nil
open("https://www.google.com/calendar/ical/ocs.events%40gmail.com/public/basic.ics") do |cal|
  #calendars = RiCal.parse(cal)
  calendars = Icalendar.parse(cal)
end

calendars.each do |calendar|

  calendar.events.each do |event|
    puts "#{event.summary} starts at: #{event.dtstart} and ends at #{event.dtend}"
  end

end
于 2013-01-18T22:03:19.980 回答