kiwiz / gkeepapi

An unofficial client for the Google Keep API.
MIT License
1.53k stars 114 forks source link

Implement Reminders #22

Open kiwiz opened 6 years ago

kiwiz commented 6 years ago

gkeepapi has access to the reminders api, but we're currently not making use of it. Figure out how to create reminders on notes.

rgson commented 5 years ago

Is this feature under active development? Otherwise, me and a couple of peers are interested in giving it a shot.

We're planning a small tool centered around Google Keep with reminders as a central feature, so naturally we'd gladly (try to) help implement this feature first.

kiwiz commented 5 years ago

@rgson Not currently - any help would be appreciated! The code is already consuming the Reminders API - it just isn't doing anything with the data.

kiwiz commented 5 years ago

One issue I was thinking about was whether I should pass a reference to the Keep object to every Note. Certain interactions become much easier to handle - as an example, the current kludgy

l = keep.addLabel('todo');
n.labels.add(l)

pattern could be more idiomatically represented as

n.labels.add('todo')
rgson commented 5 years ago

Cool! In that case, we'll give it a shot. Thanks for the pointer - knowing where to start will definitely be helpful.

As for the labels, the resulting interface does seems much smoother. I had the idea of adding set-like operations to the n.labels property, although I haven't yet looked into how. It seems that it would've been easy after the change you're proposing, so passing a reference to the Keep object to the Notes is probably the key change either way.

I'll keep that alternative in mind in case we run into some similar situation with the reminders. If we do, then perhaps it could be a shared solution to both parts.

Jinjinov commented 5 years ago

Hi!

I am very interested in working with Google Keep reminders, but I can't find any solution anywhere on the internet.

Ideally I would prefer a Javascript solution as I have 3 years of experience with Javascript - or a PHP solution as I have 1 year of experience with PHP.

After searching very hard, I could only find your Python solution - which is not ideal as I have no experience with Python and my website hosting provider only supports PHP, but not Python.

I do have 18 years of experience with C++ and C# since 2001 and I would be willing to learn Python if I could work with Google Keep reminders.

All I need for my website is a list of all repeating reminders that are marked as "done" in Google Calendar. So for example if I have a daily repeating reminder "Walk the dog" and I mark it as "done" in Google Calendar on Monday, Tuesday and Friday then I want do display: "Reminder 'Walk the dog' was completed on 3 out of 7 days this week!"

I would appreciate any help or a chance for cooperation, thank you!

rgson commented 5 years ago

@Jinjinov The group that I'm working with are looking into this, but we have not yet started implementing it. Our work on this isn't highly prioritized (just a collaborative hobby project), so it might take a while. Of course, anyone could come along and implement it in the meantime - that, I have no control over.

As for your use-case, the Google Tasks API could perhaps be an alternative. It is not connected to Google Keep as far as I know, but Google Tasks also offers recurrent reminders and the same type of Google Calendar integration that you mention.

Jinjinov commented 5 years ago

@rgson Thank you for your response! I have looked at the Google Tasks API at https://developers.google.com/tasks/v1/reference/tasks and I have found that you can determine if a task was completed by comparing the status property to "completed" but I have not found the possibility of recurring tasks anywhere. If there is a possibility of recurring tasks, that would solve my problem.

I would be willing to learn Python and help implement this feature as a hobby project on weekends (my main job during the week is working with C# and WPF).

rgson commented 5 years ago

@Jinjinov I haven't looked deeply into the Tasks API myself. It's possible to add recurring tasks on gmail.com and in the Google Tasks app on Android, so I just assume that it's somehow possible through the API. The Tasks API is off topic here though. Feel free to hit me up on Gitter.im if you want to discuss that further.

If you end up giving this issue a go (i.e. implementing the Google Keep reminders in gkeepapi), please ping me in here. Creating parallel implementations would be a waste, so in that case me and my team could join in as reviewers instead if you're willing to submit it as a draft PR.

Jinjinov commented 5 years ago

I never created a new task from gmail, only from calendar - and on calendar I see no repeating option. When I reviewed the tasks api reference and found no "repeating" property, I assumed it was not possible. Thanks for letting me know that it is possible - this solves my problem.

Unfortunately I won't help implement reminders in python because my hobby website project is progressing very slowly as it is and that would further slow it down - I considered it only as a last option.

I apologize for derailing this thread, you can delete my comments.

kiwiz commented 4 years ago

Reminder API is in courtesy of #72. Pending some more work to integrate into node objects.

kiwiz commented 4 years ago

Support is currently disabled due to #87. It seems that https://www.googleapis.com/reminders/v1internal/reminders/ might have been removed. ~The Android app appears to use the google.android.gms.reminders provider to interact with reminders now.~

kiwiz commented 4 years ago

Notes:

dimisjim commented 1 year ago

This seems to be impossible to do at the moment, as there is no API endpoint for keep reminders provided by Google. Such a hostile move from their side, given that there have also removed the integration from Google calendar, and you are now basically left with no option to view these reminders in a calendar kinda view...

kunkun-tang commented 9 months ago

dimisjim

I'm looking for a free alternative to create reminders programmatically because Apple Reminders is not allowed for my work. It seems that Good Keep is also not an option because Google doesn't expose API.

kunkun-tang commented 9 months ago

Is google Task a viable alternative?

kyrlon commented 8 months ago

@kiwiz Just curious, what was the basis of figuring out the majority of the api from an android client?