0

わかりました、これと同様の質問を見てきましたが、それらのほとんどは異なる言語に関するものであり、Python の領域内にはないようです。カレンダーにイベントをリストするさまざまなオプションについて、Google のドキュメントも検索しました。州の日付の順序で結果を制限するために Google がリストした方法はありません。開始時間のみです。

そのため、誰かがカレンダーからイベントを取得する方法を手伝ってくれることを望んでいました。同時に、結果を特定の日付に制限します。できれば、30日以上先のイベントを取得せず、開始時刻と日付で並べ替えたいと思います。私の推測では、それを行う最善の方法はわかりませんが、すべてのイベントを取得し、リストまたは辞書に入れ、そのリストまたは辞書を必要な順序で列挙してから、いくつかのことを行うことですif ステートメントを使用して、リストまたは辞書から 30 日以上経過したものを削除します。以下は、私が使用しているコードと、ターミナルで得られる応答です。ご覧のとおり、1 年前の日付を取得していますが、それらはすべて順不同です。あ、あと混乱しないように、このコードは、Google のカレンダー全体の複数の部分から取得しています。さらに、テストを容易にするために結果を最大 5 つに制限しているため、100 件の結果が返されていませんでした。

try:
  #  -----  Facebook Birthday Calendar  -----
  page_token = None
  interval = 0
  while True:
    events = service.events().list(calendarId='my calendar id', pageToken=page_token).execute()
    for event in events['items']:
      if interval < 5:
    dt = dateutil.parser.parse(event['start']['date'])
    print event['summary'], dt.strftime('%d %m %Y')
    page_token = events.get('nextPageToken')
    interval += 1
  else:
    break
    if not page_token:
  break
print "-----"

#  -----  My Gmail Calendar  -----
page_token_two = None
interval_two = 0
while True:
  events_two = service.events().list(calendarId='my calendar id', pageToken=page_token_two).execute()
  for event_two in events_two['items']:
    if interval_two < 5:
  dt_two = dateutil.parser.parse(event_two['start']['dateTime'])
  dstime_two = dateutil.parser.parse(event_two['start']['dateTime'])
  detime_two = dateutil.parser.parse(event_two['end']['dateTime'])
      print event_two['summary'] + " " + dt_two.strftime('%d %m %Y') + " " + dstime_two.strftime('%H%M') + "-" + detime_two.strftime('%H%M')
      # print event_two['summary'], dt_two.strftime('%d %m %Y')
  page_token_two = events_two.get('nextPageToken')
  interval_two += 1
else:
  break
  if not page_token_two:
break
print "-----"

#  -----  US Holidays Calendar  -----
page_token_three = None
interval_three = 0
while True:
  events_three = service.events().list(calendarId='my calendar id', pageToken=page_token_three).execute()
  for event_three in events_three['items']:
    if interval_three < 5:
  dt_three = dateutil.parser.parse(event_three['start']['date'])
  print event_three['summary'], dt_three.strftime('%d %m %Y')
  page_token_three = events_three.get('nextPageToken')
  interval_three += 1
else:
  break
  if not page_token_three:
break
print "-----"

結果:

Person's Birthday 17 03 2014
Person's Birthday 20 09 2013
Person's Birthday 10 09 2013
Person's Birthday 17 04 2014
Person's Birthday 29 04 2014
-----
Work 12 04 2013 1430-2330
Work 15 04 2013 1415-2315
Work 22 04 2013 1415-2315
Work 25 04 2013 1405-2305
Work 29 04 2013 0640-0230
-----
Patriot Day 11 09 2012
Thanksgiving 28 11 2013
Groundhog Day 02 02 2014
Memorial Day 28 05 2012
Lincoln's Birthday 12 02 2013
-----
4

1 に答える 1