module IcalHelper
  def event_calendar
    cal = Icalendar::Calendar.new

    items.find_all('/events/*/*.md')
        .select { |x| x[:soon] == nil }
        .each {|i| cal.add_event(event_for(i)) }

    cal.to_ical
  end

  def event_for(item)
    tzid = 'Europe/Brussels'

    e = Icalendar::Event.new
    e.dtstart = Icalendar::Values::DateTime.new item[:time], 'tzid' => tzid
    e.dtend = Icalendar::Values::DateTime.new item[:end], 'tzid' => tzid if item[:end]
    e.summary = item[:title]
    e.description = "#{item[:description]}\n\n#{item.reps[:text].compiled_content}"
    e.location = item[:location]
    e.url = @config[:base_url] + item.path

    e
  end
end