2019년 9월 2일 월요일

Python을 이용한 Google Calendar Event 추가

Google App 중에 Gmail 다음으로 누구나 사용하고 활용도가 높은 App은 Calendar입니다.
Google Calendar도 Cloud Id 에 소유가 되며, 다음과 같은 Concept으로 공유 및 사용할 수 있습니다.
[그림] 소유자와 캘린더, 이벤트 Concept

이벤트에는 이벤트의 기본 복사본이 포함 된 캘린더 인 단일 주최자가 있습니다. 이벤트에는 여러 참석자가있을 수도 있습니다. 참석자는 일반적으로 초대 된 사용자의 기본 일정입니다.  다음 다이어그램은 캘린더, 이벤트 및 기타 관련 요소 간의 개념적 관계를 보여줍니다.

[그림] Calendar와 Event와의 다이어그램

Google Calendar API를 이용하면 쉽게 Calendar에 Event를 추가할 수 있습니다.


▶ Google API Client : https://github.com/googleapis/google-api-python-client

해당코드

Python 코드는 다음과 같이 간단하게 사용할 수 있습니다.
from __future__ import print_function
from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools

SCOPES = 'https://www.googleapis.com/auth/calendar'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
    creds = tools.run_flow(flow, store)
CAL = build('calendar', 'v3', http=creds.authorize(Http()))

TIMEZONE = 'America/Los_Angeles'
EVENT = {
    'start':  {'dateTime': '2017-07-01T19:00:00', 'timeZone': TIMEZONE},
    'end':    {'dateTime': '2017-07-01T22:00:00', 'timeZone': TIMEZONE},
    'recurrence': ['RRULE:FREQ=MONTHLY;INTERVAL=2;UNTIL=20171231']
}
EVENT_ID = YOUR_EVENT_ID_STR_HERE
e = GCAL.events().patch(calendarId='primary', eventId=EVENT_ID,
        sendNotifications=True, body=EVENT).execute()

print('''\
*** %r event (ID: %s) modified:
    Start: %s
    End:   %s
    Recurring (rule): %s
''' % (e['summary'].encode('utf-8'), e['id'], e['start']['dateTime'],
        e['end']['dateTime'], e['recurrence'][0]))




API Explorer


코드나 OAuth2.0 없이 간단하게 테스트할 수 있도록 Google에서는 API Explorer를 제공합니다.
Event Insert : https://developers.google.com/calendar/v3/reference/events/insert


Google G Suite my Data 이용방법

Google G Suite Document, Calendar, Gmail 등의 데이터는 다양한 방법으로 이용할 수 있습니다.

댓글 없음:

댓글 쓰기