[RELEASE] Google Calendar, Task, and Gmail Search and Gmail Notification Device

@fritz I haven’t gotten any communications about it specifically for the Google APIs. A few years ago I updated the app to use Oauth and a quick scan of the docs still have it being used. Appears MFA is only for typical user logins.

I will keep an eye on this.

2 Likes

Here is my notice.

Thank you for sharing the communication. Curious do you have MFA setup with your Google account to say login to Gmail or your Calendar? I do and it’s been setup for a few years and I did not receive this communication.

Assuming you do not have MFA setup, I expect this has to do with that along with logging into the Google Console (uses the same credentials) where MFA will be required in a few months.

Curious if others using GCal Search also received this communication and whether you have MFA setup.

No, I do not have MFA setup for this account.

I had been using Gcal Search to send SMS text messages via email for notifications but then my carrier (V) had issues which decreased reliability so I quickly pivoted to push notifications via the Hubitat app which is working well. I want to start using GCal Search again for some things but don’t want to start if new Google restrictions like MFA are going to complicate things.

I have been using MFA to login to my google account for years.

For logins that can’t use MFA, like an API call, google has permitted use of what they call “app passwords” for some time.

Hopefully that continues.

2 Likes

Let’s hope not considering that I didn’t receive a similar communication and have had MFA setup for years. I would setup MFA on your account so you can continue to login to your Google account and get past this requirement. Everything you have setup within the Google Console should continue to work.

Sounds like the change they’re making is to require MFA (for the logins mentioned in @fritz’s email that can support it), rather than to have MFA as an account option that can be enabled (or ignored) at the user’s discretion?

My interpretation of that communication is that MFA will be required for “human” logins to their services. Again I setup MFA years ago and I haven’t gotten the communication and assume I won’t since it doesn’t apply to me, no point in telling me to setup MFA since I already have it.

Years ago their API login requirements (non human logins/HE hub login) changed a bit and I refactored the app to utilize OAuth and their latest requirements at that time. I quickly scanned their development documentation yesterday and everything is still the same and no warnings about upcoming changes. I expect GCal to continue to work.

2 Likes

Hi, I've been using this for a while, working great, but I think I found a bug:

I have a GCal search trigger that looks for multiple events, like so (I'm not using google query matching):
NameA,NameB,NameC
It correctly finds the events, but the problem is that the Start time seems to be taken from the first event matched. Let me give you an example to explain what I mean:

NameA event starts on the 5th of March, and is an All-day event until the 8th of March.
NameB event starts on the 3rd of March, and is an All-day event until the 9th of March.

What the app does in this situation is that it correctly finds both events, but it sets the start time of the event to be 5th of March, the reason being that NameA is listed first in the Search String parameter. What I would like it to do is to set the event to Start on the 3rd of March.
If I change the order in the search string, then the start time becomes 3rd of March.

This problem doesn't occur for the End Date, because the Sequential Event setting correctly identifies the latter of the two and sets it.

I hope you understand what I mean. If not, please let me know.
Thank you!

Edit:
I made a simple fix, in my use case it works and doesn't seem to break anything else:
In line 909:

// Original line
items = matchItem(items, caseSensitive, search, eventField)

// Updated line
items = matchItem(items, caseSensitive, search, eventField).sort { a, b -> a.eventStartTime <=> b.eventStartTime }

Thank you for letting me know of a bug. Would you mind sharing an example search string parameter you are using? I want to try to reproduce this on my dev hub.

It's literally this:
NameA, NameB

So it matches events starting with NameA or NameB.

1 Like