4

RubyでGoogleカレンダーを操作するためにgooglecalendarプラグインを使用しています。

私が直面している唯一の問題は、Google カレンダーからイベントを削除することです。

上記のgithubでイベントを削除する例を見つけました。ただし、イベント ID を渡す必要があります。以下のコードを使用して、指定した日付からすべてのイベントを Google カレンダーから削除するにはどうすればよいですか?

コード:

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

g = GData.new
puts 'login'
token = g.login('REPLACE_WITH_YOUR_MAIL@gmail.com', 'REPLACE_WITH_YOUR_PASSWORD')
puts "token: #{token}"

event = {:title=>'title',
          :content=>'content',
          :author=>'pub.cog',
          :email=>'pub.cog@gmail.com',
          :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'

URL:

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

他のプラグインでこれを行うことができるかどうか、あなたの考えを共有してください.

前もって感謝します :)

4

1 に答える 1

2

github で検索すると、このgoogle_calendar gemが表示されます。これは、(標準ではないにしても) より人気のある gem のようです。また、より適切に文書化され、整理されています。

これは私が思いついたものです:

require 'google_calendar'

cal = Google::Calendar.new(:username => 'username@gmail.com', 
               :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 は、各イベントの開始時刻を ruby​​ が理解できる形式に変換し、それを指定された 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)
于 2013-06-03T23:02:14.547 に答える