[RELEASE] Google Calendar, Task, and Reminder Search

Is there any way to create a dashboard button so I can initiate a GCal Search Trigger "refresh" easily from my iPhone dashboard? If I have to make a change to my Google calendar during the day that impacts something scheduled later in the day, I need to be able to do a refresh so search trigger is refreshed. I am not always able to get to my laptop to access the app to be able to click on the refresh button. Thanks!

Why not set a periodic schedule to refresh more often like every hour?

If you have the child switch, clicking refresh or poll also invokes a query to Google. I really don’t use dashboards that often to know of you can set it to invoke refresh on a device.

Call me Columbus, but I discovered emojis can be sent in notifications:


Can you advise on how the "Switch Default States" works related to the Child Switch when triggered? Specifically, when the Switch Default Value is "On":

  • If the child switch is "Off" at the start of trigged GCal Search AND the search string is not found
    does it always flip the switch back to the "On" (if this is the Default value) or just leave the switch at the state it was already in at the start of the trigger?

I believe it's switching the state but wanted to be verify:

  • My use case, I am reading my kids Google School calendar for "School * Closed" for holidays.
  • I have a switch called "VS-School Day", as I want to have it on when it's a school day, off when it is not. However, it seems to be switching to On (e.g. on weekends), when I have a trigger run prior to turn this switch off on weekends.

Thank you.

Correct, default is the state of the switch when there is no matching event. Then if an event is found it toggles it from that value until the event is over and switches it back to default.

I have a similar setup where default is on and if it finds an event with “no school” it turns off the switch for the duration of the holiday.

This is expected behavior unless you have an event on the calendar for the weekends. You could create a custom cron expression to run say at midnight only on weekdays:

I can see the child switch in the Devices list, but i cant see the parent anywhere there or in the Apps list - how do i edit some of the "parent" settings? I installed using Package Manager.

If you don’t see the GCal Search app in your list of installed apps you might have forgotten to click Done which completes the install and adds it to the list. Frustrating requirement if the Groovy UI. The parent and child apps are there with settings but hidden from view. The only way I personally know to find them is via trial and error with the browser URL. If you go to your apps list and click add user app and choose GCal Search the browser URL is:

Pay attention to the latest app number capture the browser URL into a text editor. Then scroll to the bottom to the removal section and remove this instance of the app so you don’t have an orphaned app.

Now edit that URL you captured and decrement the app number by 1 and try it in your browser and repeat until you find the GCal Search parent app. Once you find it scroll to bottom and click done. This should resolve the issue.

1 Like

that worked - thanks!

1 Like

v3.3.1 has been published to Github and HPM to address both of these issues. Thank you @es_ferret for your help testing!

  1. During a new install, the parent GCal Search app forces you to click Done so the app shows up in the installed app list.
  2. Enhanced the Additional Actions code to ensure that actions are scheduled at the correct times and aren't duplicated. Thank you @es_ferret for bringing this issue to my attention and helping with testing.

You did all the work. I just went to my daily meetings and shared results. :stuck_out_tongue:

Thank you!

1 Like

Call me Columbus, but I discovered emojis can be sent in notifications:

That’s awesome!

1 Like

v3.3.2 published to Github and HPM. @es_ferret found that notifications still fired after he paused a search trigger child app.

  • Refresh button at the top of the search trigger app is now hidden if the app is paused via Pause button
  • Clicking Pause will cancel all scheduled jobs.
  • If a child switch is present:
    • The child switch states will be blanked out and the switch will toggle to the default state.
    • If the Poll or Refresh buttons are clicked, a warning in the log will be created letting you know the parent app is paused.

Updated to the latest version a week ago....I knew that I should not have done this. Now,

"If the popup presents an 'Authorization Error, Error 400: redirect_uri_mismatch' please check your OAuth credential in the Google Console to ensure it is of type Web application and that the redirect URI is set correctly."

I have no idea how to do that.

What version were you on? If v2 you must follow these upgrade instructions as listed in post 2 above.

1 Like

Somehow I missed the "upgrade instructions". It seems to have worked. Thank you! :slight_smile:

1 Like

Calendar events have a reminder feature that you can set when creating a new event which I find incredibly useful with my day job and personal life. As I tell everyone if something isn't on my calendar then I won't remember to be there. Google has a very flexible scheduling of that reminder letting you set it minutes, hours, or even weeks in advance of an event - done via Google Calendar App or web browser (iOS calendar doesn't allow this much flexibility). This reminder can vary from event to event.

Curious if anyone would benefit on bringing this into Hubitat as I can see a few uses:

  • Notifications: advanced push or speech notification to a calendar event. Trash collection notifications, holidays, etc. Today there is an offset you can define but this is set for all events that match the criteria versus being dynamic based on the reminder of a calendar event. This could also allow a reminder notification to be sent yet switch could toggle based on event start and end.
  • Dynamic offset: have switch toggle or additional actions run dynamically based on the reminder value. Reminders are typically run in advance of scheduled time so could include ability to "delay" start based on this value too. All day events start at midnight but lets say you want to delay the switch toggling 6 hours later at 6 AM.

I am happy to invest some time building this if folks would find this useful. Please let me know your thoughts!

1 Like

I would find it very useful I have a lot of rules that fire based off of the virtual switches from my calendar and have them firing off notifications through echo speaks for reminders or firing off other routines so this would be very useful to me. I love your app I just started playing around with HA and wish they had something like this as well so thank you for your work.

1 Like

I was just looking at this app in my system and thinking "this would be great if it would trigger from reminders for bday's"... and speech reminders are exactly where I was contemplating.

1 Like

v3.4.0 has been published to Github and HPM with these features.
Dynamic Offset based on the reminder setting is found in the Schedule Settings section:

Reminder notification setting is found in the Additional Actions section:

@jriffe90 @gwp1

1 Like

v3.4.1 has been uploaded to Github and HPM updated.

Encountered an issue with one of my calendar searches over night. Basically I am querying my kids calendars for a wake up alarm starting at 2 AM and a default reminder number of minutes wasn't set within their calendar and I started getting errors in my HE logs. This new version will detect this situation and default it to 15 minutes if one isn't set.

You can set a default notification timing within your Google Calendar via web browser:

  • Open https://calendar.google.com within a web browser
  • Find the calendar you want to edit in My calendars within the left navigation
  • Click the 3 dots beside the name and choose "Settings and sharing"
  • Scroll to the Event notifications section and click the + Add notification
  • This will set the default notification for all calendar events within that specific calendar and you can override this on individual events with a different value.

Download the Hubitat app