Get Zimbra calender entries and format them for the GNU calendar program.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

42 lines
1022 B

require 'net/http'
uri = URI.parse("url")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(uri.request_uri)
request.basic_auth("user", "password")
response = http.request(request)
all = []
current = {}
response.body.each_line do |line|
case
when line =~ /^BEGIN:VEVENT/
current = {}
when line =~ /^SUMMARY/
current[:summary] = line[line.index(':')+1..-1].strip #.gsub(/"/, '\\"')
when line =~ /^DTSTART/
current[:start] = line[line.index(':')+1..-1].strip
when line =~ /^LOCATION/
current[:location] = line[line.index(':')+1..-1].strip #.gsub(/"/, '\\"')
when line =~ /^END:VEVENT/
all << current
else
# just ignore everything else right now.
end
end
all.each do |c|
sdate, stime = c[:start].split('T')
hour = '08'
min = '00'
hour,min,sec = stime.scan(/../) unless stime.nil?
puts "#{sdate} #{hour}:#{min} (#{c[:location]}) #{c[:summary]}"
end
# vim: set ft=ruby et ts=2 sw=2: