Skip to content

Instantly share code, notes, and snippets.

@retorquere
Created April 7, 2011 13:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save retorquere/907790 to your computer and use it in GitHub Desktop.
Save retorquere/907790 to your computer and use it in GitHub Desktop.
require 'rubygems'
require 'viewpoint'
require 'date'
require "benchmark"
Viewpoint::EWS::EWS.endpoint = url
Viewpoint::EWS::EWS.set_auth('user', 'pass')
ews = Viewpoint::EWS::EWS.instance
calendar = Viewpoint::EWS::CalendarFolder.get_folder(:calendar)
offset = "+02:00"
today = "#{Date.today}"
events = 0
time = Benchmark.realtime do
1.times do
0.upto(8) do |hour|
starts = DateTime.parse("#{today}T1#{hour}:00:00#{offset}").to_s
ends = DateTime.parse("#{today}T1#{hour+1}:00:00#{offset}").to_s
item = {
:subject => {:text => "TestRooster #{starts}"},
:start => {:text => starts},
:end => {:text => ends},
:meeting_time_zone => {:base_offset => {:text => 'PT1H'}},
#:required_attendees => [
# {:attendee => {:mailbox => {:email_address => {:text => roostertool}}}},
# {:attendee => {:mailbox => {:email_address => {:text => "uid.#{roostertool}"}}}},
#]
}
event = Viewpoint::EWS::CalendarItem.create_item_from_hash(item, :calendar, 'SendToNone')
event.set_tags!(['roostertool', 'some-uid'], :namespace => 'HAN-Roostertool')
events += 1
end
end
end
puts "#{events} events in #{time} seconds"
restrict = {
:restriction => {
:contains => [
{:field_uRI => {:field_uRI=>'calendar:RequiredAttendees'}},
{:constant => {:value=>roostertool}}
]
}
}
#rooster = calendar.find_items(restrict)
rooster = calendar.find_items_with_tag 'roostertool', :namespace => 'HAN-Roostertool'
rooster = [rooster] unless rooster.is_a? Array
time = Benchmark.realtime do
rooster.each do |event|
#event.delete!(false, 'SendToNone')
puts event.tags.inspect
end
end
puts "Time elapsed #{time} seconds"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment