IcsParser

Reads an ICalendar file and returns the events in an array.

Also supports recurring events with excluded dates (using EXDATE).

It is not complete and I have only tested it on my feed (exported from Apple iCloud) so do not rely on it.

Example

require 'ics_parser'

parser = IcsParser.from_file('path/to/file')
# or parser = IcsParser.from_string(calendar)
events = parser.events

events.each do |event|
  puts event.summary # string
  puts event.starts_at # Time
  puts event.ends_at # Time
end

Installation

gem install ics_parser