Package: google-reminder-api-wrapper
API wrapper for Google ReminderThis is a work in progress to create an API wrapper for handling Google Reminders via code. Due to missing official
documentation of the API, this should be considered unstable and not deployed to any production systems.The current commands are implementedgetlistcreatedeleteNot implemented commandsupdateInstallingInstall the package with requirements by runningpython3setup.pyinstallNote that this package requires Python 3.UsageFollowing the instructions below on how to acquire the API session credentials and add them to your environment variables.SID='xxxxxxxxxxxxxxxxx'HSID='xxxxxxxxxxxxxxxxx'SSID='xxxxxxxxxxxxxxxxx'APISID='xxxxxxxxxxxxxxxxx'SAPISID='xxxxxxxxxxxxxxxxx'authorization='xxxxxxxxxxxxxxxxx'key='xxxxxxxxxxxxxxxxx'pythonfromgoogle_reminder_api_wrapperimportReminderApiapi=ReminderApi()reminders=api.list()print(reminders)new_reminder=api.create('Test reminder','2019-01-10 15:00')reminders=api.list()print(reminders)api.delete(new_reminder)reminders=api.list()print(reminders)Underlying Google Reminder APIAuthorizationCurrently, the Google session is still based on fixed cookies and authorization keys in the HTTP header.SID="xxxxxxxxxxxxxxxxx"HSID="xxxxxxxxxxxxxxxxx"SSID="xxxxxxxxxxxxxxxxx"APISID="xxxxxxxxxxxxxxxxx"SAPISID="xxxxxxxxxxxxxxxxx"authorization="xxxxxxxxxxxxxxxxx"key="xxxxxxxxxxxxxxxxx"Note: The credential keys need to be set as environment variables for the requests to work. This is
a work in progress and will in the future be integrated with the Google sessions API.Finding CredentialsCredentials can be found by doing the followingGo to Google Calendar,https://calendar.google.comand make sure the "Reminder" calendar is marked.Open the "Network" tab of the Chrome Developer Tool and search forreminders / listIn the "Header" sub-tab, find the required headers in the "Request Header"Request StructureThe following is the main structure of the request sent to the Reminders APIhttps://reminders-pa.clients6.google.com/v1internalOP/reminders/<COMMAND>.where COMMAND is one of the followinggetlistupdatecreatedeleteHeader'x-origin':'https://calendar.google.com','content-type':'application/json','authorization':'<SESSION AUTHORIZATION>,''key':'<SESSION KEY>,''cookie':'<SESSION COOKIES>'The Google Calendar is using this API withapplication/json+protobufin the data payload, but due to readability problems
this wrapper has reverse-engineered parts of the schema to normal JSON field names.BackstoryDue to popular demand as seen in the following Google Issue Tracker thread,https://issuetracker.google.com/issues/36760283,
I decided to give it a try. The wrapper is based on the following comment,https://issuetracker.google.com/issues/36760283#comment193.The  is based on the following comment,https://issuetracker.google.com/issues/36760283#comment193,There is an undocumented API, which is used for example by Google Calendar. Maybe someone with the skills and time can write a user friendly wrapper or service for it ;-)
https://reminders-pa.clients6.google.com/v1internalOP/reminders/list?key=XXX

Commands are: list, get, create, update, delete

Some more details for "list" in Japanese: https://qiita.com/futa/items/c7a04c7b0be35508a626