2013-05-31 85 views
4

我使用googlecalendar plugin與Google日曆搭配使用。如何從指定日期刪除Google日曆中的所有活動?

我面臨的唯一問題是從谷歌日曆中刪除事件。

我找到了一個例子來刪除上述github中的事件。但我們需要傳遞事件ID。我如何使用下面的代碼從指定的日期從谷歌日曆中刪除所有事件?

CODE:

require File.dirname(__FILE__) + '/../shared.rb' 

g = GData.new 
puts 'login' 
token = g.login('[email protected]', 'REPLACE_WITH_YOUR_PASSWORD') 
puts "token: #{token}" 

event = {:title=>'title', 
      :content=>'content', 
      :author=>'pub.cog', 
      :email=>'[email protected]', 
      :where=>'Toulouse,France', 
      :startTime=>'2009-06-20T15:00:00.000Z', 
      :endTime=>'2009-06-20T17:00:00.000Z'} 

create_response = g.new_event(event) 
puts create_response.body 


puts 'delete_event' 
# TODO GET id from new_event response 
id='http://www.google.com/calendar/feeds/default/private/full/pgvgjdnh43g3bo0emnpfg0gnr4' 
response = g.delete_event(id) 
puts 'done' 

網址:

https://github.com/francisoud/googlecalendar/blob/master/googlecalendar/examples/ruby_standalone/gdata_delete_event.rb

請分享你的想法,如果我們能做到這一點與其他插件。

感謝提前:)

回答

2

在github上一個搜索提出了這個google_calendar gem,這似乎是更受歡迎的寶石(如果不是標準)。它也更好地記錄和組織。

這是我想出了:

require 'google_calendar' 

cal = Google::Calendar.new(:username => '[email protected]', 
       :password => 'password', 
       :app_name => 'delete_events') 

cal.events.each { |event| 
    event.delete if Time.parse(event.start_time) >= Time.new(2011,10,14) 
} 

Time.parse每個事件的開始時間付諸格式紅寶石能理解,然後將它與您的指定日期2011年10月14日,如果該事件是在事件之後或之後,它被刪除。做之前刪除事件:

if Time.parse(event.start_time) <= Time.new(2011,10,14) 

或在特定日期的所有事件做:

if Time.parse(event.start_time) == Time.new(2011,10,14) 
相關問題