Can Hubitat read calendar events

There was interest at one point for porting an app, but that flame seems to have died out. Probably due to the fact that IFTTT works and you're not really gaining much with a local app that has to access the cloud anyway.

1 Like

There isn't a methode to get the name of the event right? So i can use TTS to tell me what event i have

Perhaps not what you’re looking for but, Alexa and Google assistant both natively do this

Oh didnt know, ill look into it thanks

1 Like

I looked at the IFTTT option, but that can only really trigger something. I am looking to have it read the event and then trigger something like read the event over my speakers. I was using Vera before and there was Google Calendar plugin that would do this. It would read a google calendar then the subject of the event, I would send to my Sonos speakers. Any way of doing this with Hubitat? It would be a really nice feature. I looked at Google assist and did not see how this would work.

Need a way to have hubitat read/accept the details of the calendar event, not just trigger something.

Would this suit your needs?

I would also be interested in Google calander integration that would allow my rules to check for a calander event before triggering. Would be extremely hand for waking up kids on school days.

I have this working with hubitat but I have been suing WebCoRE for this function. When an event starts on my calendar, it sends the description in a webcall to WebCoRE. WebCoRE then parses that info out of the JSON data and then speaks that through my speakers.

I've not found an app in Hubitat that will parse JSON data for an unsolicited webcall, otherwise I wouldn't have to do this with webCoRE.

@johnday29 Thanks I will look to set this up. So far I have the following setup.

  1. WebCore setup on Hubitat
  2. Create First Test Piston

Looking to test from IFTTT. I was going to use the external link in my Piston, but I get failure each time, just a a link.

I get invalid Token error as a response, just by clicking the link
image

Before I move on to the IFTTT and web hook, need to see how to call WebCore/Hubitat.

  1. Did I miss something?
  2. Can you share your high level code you did for calendar in IFTTT?
  3. Can I see how you parse the JSon in your Piston?

That link won't work to launch your action because it's a local link and you need a cloud one. What you need to do is this:

  1. In your if part, add the event receive an IFTTT event and type in the name of the event you want to use. This will give you a link.

  1. Go to a cloud dashboard or a cloud link in the maker API to get your hub's unique ID on the hubitat cloud. My link is this:

https://cloud.hubitat.com/api/HUB_ID_IS_HERE/apps/56/devices?access_token=TOKEN

It's a long series of numbers and letters.

  1. Take that link, which has your app id, circled in RED and your token (blacked out on mine). Your final link for your IFTTT trigger will look like this:

http://cloud.hubitat.com/api/HUB_ID_HERE/apps/APP_NUMBER/ifttt/EVENT_NAME?access_token=TOKEN

Everything in bold requires you to substitute something else in for it.

If you want to send other data to WebCoRE, you just have to format it like any other GET message. For example, I send the start time, end time and description which is then parsed by webcore. That link looks like this:

http://cloud.hubitat.com/api/HUB_ID_HERE/apps/APP_NUMBER/ifttt/EVENT_NAME?access_token=TOKEN&start=START_TIME&end=END_TIME&description=TITLE

and you can sub in through IFTTT the particulars for your trigger by picking them in the applet by clicking on Add Ingredient. Just be careful, it puts extra spaces in that you have to remove manually or the link won't work.

Ok, the Access Token was not there. Thinking that if they gave me the link in the IDE, it would contain the needed info, like access token. So I can now invoke my piston from URL.

Next step in the Piston, read the get parameters. I do not see any variables that would allow this and all searches for examples, show how in a Piston to make a HTTP Get call. I know the other way.

Code snipped in Piston to read the HTTP Get parameters?

Well, I only know how to do it if you use the method I linked to above, not anything about using the piston execution url. Sorry, if you aren't going to use that method I can't help you.

Have you considered using Scheduled Switch from the Cobra Apps to accomplish this?

Not sure that is what I am looking for. But will look at all the apps there, looks interesting. I have a google calendar where my wife and I put events for the home on it. Put trash at the curb, change air filter, etc. With Vera, I had a app/script that would read google calendar events, then announce them over my Sonos Speakers. I think WebCore will do this exactly with IFTTT. Just need to figure out how to read the info passed from IFTTT to WebCore. If I can read the Get parameters or Json payload, WebCore will these perfectly.

I tried to tell you exactly how to do it. But you don't seem to want to do it. LOL

@Ryan780 The part you mentioned and I asked how to do you replied you do not know how. Now I am lost on your lasted post. The key part is to have WebCore read the get parameters. Without that, the process does not work. How to speak the event title, description over Speakrs, I need to get values from GET parms. I know how to build the parms in IFTT to pass, but again, how to read them in WebCore was my ask.

Did I miss something?

You asked how to do it with the Execution Link, and that I don't know how to do, (or if it's possible). You have to set up a trigger within the piston of the virtual device "IFTTT". Do you understand how to do that?

And how do you know how to set it up in IFTTT when you don't know how to parse it? It's not the sender that dictates the format, it's the receiver. You have to format it in a way that WebCoRE can read. Do you understand that?

If you follow the steps that I outlined above, each of the things you pass, in my example they were "start", "end" and "description", will parse as arguments. So, you just have to set up some local variables within the piston, and then set the variable equal to the argument.

So, if i were trying to capture the info passes in the this link:
https://cloud.hubitat.com/api/HUBID/apps/2450/ifttt/google_calendar?access_token=TOKEN&desc=This%20is%20a%20calendar%20event

This is the piston i would set up:

Here's a detailed view of the action to set the variable from the argument.

That's all you have to do to get the JSON data out of the link if you send it to webcore that way.

That is what I was looking for:

Set variable {description} = {$args.desc};

As I am new to WebCore, no clue how to read parms until now.

With that, I have all the steps.

IFTTT will trigger based on google Calendar event.
IFTTT will then call Hubitat WebCore via URL and passing parms
WebCore Piston will get triggered via URL and then use parms to build TTS to my Sonos Speakers.

Thanks for the Help @Ryan780

I don't think that will work the way you want if you don't set up the trigger the way I showed you. That is how the info within the URL will be used by your piston. That's what I've been trying to tell you!!!

Update: I just tried it using the execution URL and IT DOESN'T WORK!!! You have to set up the trigger by the virtual device IFTTT and build the URL the way I showed you. If you use the execution URL, it will just execute the piston using the previous settings of the variable instead of updating to the new event description.

Thanks for being so friendly to a new person to Hubitat and WebCore. I will work on this on my own. Hoping the board would be helpful to new people.