0

現在、Google アカウントのすべてのカレンダーからイベントを取得できる Python のプログラムの作成に取り組んでいます。ただし、プログラムを可能な限り商業的にしようとしています。そうは言っても、自分のカレンダーに添付されているすべての米国の祝日イベントが終日イベントであることがわかっている場合、自分用にコードをカスタマイズするのは非常に簡単です。そのため、祝日カレンダーかどうかを確認して指定する簡単な if ステートメントを設定できます。イベントは次のように要求します。

def get_main_events(pageToken=None):
  events = gc_source.service.events().list(
    calendarId=calendarId,
    singleEvents=True,
    maxResults=1000,
    orderBy='startTime',
    pageToken=pageToken,
    ).execute()
  return events

したがって、それは終日のイベントで機能します。その後、結果をリストに追加してフィルター処理し、必要なイベントのみを取得します。プライマリ カレンダーからイベントを取得することで、必要なイベントを指定するのが少し簡単になりました。通常、イベントは終日のイベントではなく、私の仕事のスケジュールにすぎないため、次のように使用できます。

now = datetime.now()
now_plus_thirtydays = now + timedelta(days=30)
def get_main_events(pageToken=None):
  events = gc_source.service.events().list(
    calendarId=calendarId,
    singleEvents=True,
    maxResults=1000,
    orderBy='startTime',
    timeMin=now.strftime('%Y-%m-%dT%H:%M:%S-00:00'),
    timeMax=now_plus_thirtydays.strftime('%Y-%m-%dT%H:%M:%S-00:00'),
    pageToken=pageToken,
    ).execute()
  return events

さて、私自身と同様にプログラムを商用利用できるようにする際に遭遇する問題は、上記が私のプライマリカレンダーから非終日イベントのみを返すことです. get events リクエストを実行してすべての結果を返す方法があるかどうか (ある場合はその方法) を見つけたいと思います。日。さらに、この問題の一部は、使用する必要がある結果を出力するコードの別の部分にあります。

print event['start']['date']

終日イベントの場合:

print event['start']['dateTime']

終日ではないイベントの場合。

したがって、「dateTime」は終日のイベントでは機能しないため、イベントが終日かどうかを評価できるように設定する方法を見つけたいと思います。つまり、「イベントが終日イベントの場合は event['start']['date'] を使用し、それ以外の場合は event['start']['dateTime'] を使用します。

4

1 に答える 1