Python > Google Calendar

Google Calendar の API を動かすところ準備はこちら Python/Google の API を動かす

イベントを取得する

from googleapiclient.discovery import build
  service = build('calendar', 'v3', credentials=creds)
 
 # Call the Calendar API
 events_result = service.events().list(calendarId='primary',
                                       timeMin=now,
                                       maxResults=10,
                                       singleEvents=True,
                                        orderBy='startTime')
                                        .execute()
 

イベント(events)のリスト(list)を取得して(execute)!と読み下せば良いんだろうか。
execute で httpリクエストを発動するっぽい。

イベントの(開始時間を)更新する

一日のスケジュールの見通しをつけられるような改造がしたかったので、開始時間の変更をしてみた。

わかったこと

  • 開始時間の変更と、終了時間の変更はセット(イベントの「実行時間」を反映して、自動で終了時間を決めてくれたりはしない)
  • 開始時間を変更するだけで、イベントタイトルが消える。
    • 開始時間の変更時に summary もアップデートしないといけない。

イベント


  • event
    • "kind": "calendar#event",
    • "etag": etag,
    • "id": string,
    • "status": string,
    • "htmlLink": string,
    • "created": datetime,
    • "updated": datetime,
    • "summary": string,
    • "description": string,
    • "location": string,
    • "colorId": string,
    • "creator":
      • "id": string,
      • "email": string,
      • "displayName": string,
      • "self": boolean
    • "organizer": {
      • "id": string,
      • "email": string,
      • "displayName": string,
      • "self": boolean
 },
 "start": {
   "date": date,
   "dateTime": datetime,
   "timeZone": string
 },
 "end": {
   "date": date,
   "dateTime": datetime,
   "timeZone": string
 },
 "endTimeUnspecified": boolean,
 "recurrence": [
   string
 ],
 "recurringEventId": string,
 "originalStartTime": {
   "date": date,
   "dateTime": datetime,
   "timeZone": string
 },
 "transparency": string,
 "visibility": string,
 "iCalUID": string,
 "sequence": integer,
 "attendees": [
   {
     "id": string,
     "email": string,
     "displayName": string,
     "organizer": boolean,
     "self": boolean,
     "resource": boolean,
     "optional": boolean,
     "responseStatus": string,
     "comment": string,
     "additionalGuests": integer
   }
 ],
 "attendeesOmitted": boolean,
 "extendedProperties": {
   "private": {
     (key): string
   },
   "shared": {
     (key): string
   }
 },
 "hangoutLink": string,
 "conferenceData": {
   "createRequest": {
     "requestId": string,
     "conferenceSolutionKey": {
       "type": string
     },
     "status": {
       "statusCode": string
     }
   },
   "entryPoints": [
     {
       "entryPointType": string,
       "uri": string,
       "label": string,
       "pin": string,
       "accessCode": string,
       "meetingCode": string,
       "passcode": string,
       "password": string
     }
   ],
   "conferenceSolution": {
     "key": {
       "type": string
     },
     "name": string,
     "iconUri": string
   },
   "conferenceId": string,
   "signature": string,
   "notes": string,
   "gadget": {
   "type": string,
   "title": string,
   "link": string,
   "iconLink": string,
   "width": integer,
   "height": integer,
   "display": string,
   "preferences": {
     (key): string
   }
 },
 "anyoneCanAddSelf": boolean,
 "guestsCanInviteOthers": boolean,
 "guestsCanModify": boolean,
 "guestsCanSeeOtherGuests": boolean,
 "privateCopy": boolean,
 "locked": boolean,
 "reminders": {
   "useDefault": boolean,
   "overrides": [
     {
       "method": string,
       "minutes": integer
     }
   ]
 },
 "source": {
   "url": string,
   "title": string
 },
 "attachments": [
   {
     "fileUrl": string,
     "title": string,
     "mimeType": string,
     "iconLink": string,
     "fileId": string
   }
 ]
}

{
  "kind": "calendar#event",
  "etag": etag,
  "id": string,
  "status": string,
  "htmlLink": string,
  "created": datetime,
  "updated": datetime,
  "summary": string,
  "description": string,
  "location": string,
  "colorId": string,
  "creator": {
    "id": string,
    "email": string,
    "displayName": string,
    "self": boolean
  },
  "organizer": {
    "id": string,
    "email": string,
    "displayName": string,
    "self": boolean
  },
  "start": {
    "date": date,
    "dateTime": datetime,
    "timeZone": string
  },
  "end": {
    "date": date,
    "dateTime": datetime,
    "timeZone": string
  },
  "endTimeUnspecified": boolean,
  "recurrence": [
    string
  ],
  "recurringEventId": string,
  "originalStartTime": {
    "date": date,
    "dateTime": datetime,
    "timeZone": string
  },
  "transparency": string,
  "visibility": string,
  "iCalUID": string,
  "sequence": integer,
  "attendees": [
    {
      "id": string,
      "email": string,
      "displayName": string,
      "organizer": boolean,
      "self": boolean,
      "resource": boolean,
      "optional": boolean,
      "responseStatus": string,
      "comment": string,
      "additionalGuests": integer
    }
  ],
  "attendeesOmitted": boolean,
  "extendedProperties": {
    "private": {
      (key): string
    },
    "shared": {
      (key): string
    }
  },
  "hangoutLink": string,
  "conferenceData": {
    "createRequest": {
      "requestId": string,
      "conferenceSolutionKey": {
        "type": string
      },
      "status": {
        "statusCode": string
      }
    },
    "entryPoints": [
      {
        "entryPointType": string,
        "uri": string,
        "label": string,
        "pin": string,
        "accessCode": string,
        "meetingCode": string,
        "passcode": string,
        "password": string
      }
    ],
    "conferenceSolution": {
      "key": {
        "type": string
      },
      "name": string,
      "iconUri": string
    },
    "conferenceId": string,
    "signature": string,
    "notes": string,
    "gadget": {
    "type": string,
    "title": string,
    "link": string,
    "iconLink": string,
    "width": integer,
    "height": integer,
    "display": string,
    "preferences": {
      (key): string
    }
  },
  "anyoneCanAddSelf": boolean,
  "guestsCanInviteOthers": boolean,
  "guestsCanModify": boolean,
  "guestsCanSeeOtherGuests": boolean,
  "privateCopy": boolean,
  "locked": boolean,
  "reminders": {
    "useDefault": boolean,
    "overrides": [
      {
        "method": string,
        "minutes": integer
      }
    ]
  },
  "source": {
    "url": string,
    "title": string
  },
  "attachments": [
    {
      "fileUrl": string,
      "title": string,
      "mimeType": string,
      "iconLink": string,
      "fileId": string
    }
  ]
 
}
最終更新:2019年11月24日 10:43