iCloud Calendar Support?

Anyone know of any drivers to pull on data from an iCloud calendar? It turns out Apple decided not to implement any of the standard calendar formats (yay!). My thought was to show it on a dashboard, but I figure having calendar events in HE could be valuable for other things (rules you want to not happen when you're working from home, etc.)

Any integrations for icloud (or other calendars for that matter?)

I use a Google Calendar with IFTTT to trigger based on holidays. This allows my TOU announcements when we start the dryer, to always be correct when there’s a holiday in our province.

1 Like

I use DakBoard as a screen saver that shows pics from an Apple cloud library, news feeds, Apple calendar and weather.

2 Likes

Sorry what's TOU?

This should not be surprising to anybody. They only do right by the customer if it means keeping the customer siloed and in their garden.

You can sync your Apple calendar to a Google calendar through various methods though and then use this.

I use that to turn on a virtual switch and then have automations from there. That's my fork. Hubitat conversion credit goes to mlritchie and cometfish. I only made one very simple change to allow no filter in the search.

Here is my Google calendar app and driver that’s a bit different than others as mentioned in this post:

1 Like

Was there ever a workaround for having that Gsuite developer account thing? I could never get past that whole thing about having the app verified by Google. I am not sure most new users can use this.

Edit: it looks like codahq's app will also be affected by this stupid Gsuite limitation.

@ritchierich Any reason you won't accept my PR? If you don't want another contributor you can make the change manually. Are you okay with the change I made?

@neonturbo I am a new user to the project. I just set it up on Mar 28 and I'm not a Gsuite account. What do you mean?

I left more detail in ritchierich's app thread. But basically it asks for either a Gsuite account, or to send your app to be verified by Google and (by all appearances) pay a fee.

Does yours not use that same method? It appears to.

This is what I get when I choose external project.

In this mode, your app is available to any user with a Google account. External apps that request sensitive or restricted user data must first be verified by Google. This process may take 4-6 weeks. In addition, if you selected restricted scopes, you'll need to go through an independent security review, which can cost USD $15k-$75k

And Internal Project.

In this mode, your app is limited to G Suite users within your organization . If you select sensitive or restricted scopes, your test users will see an 'unverified app' screen before they use your app. You can communicate with your internal users directly about how you'll use their data.

It does not allow me to select internal, only external project.

I probably glossed over that but I'm guessing that is what I got too. That's what happens if you submit the project and want it to go live for general use for others. You won't submit it because you won't ever publish/finish it. You are going to use it personally, in dev mode if you will, forever. You can create it as external. I think that is typical of ALL projects I create but I'm so used to seeing it now I don't acknowledge it.

But I couldn't get past that. How do you use it in developer mode? It appears to want to force me to submit it and gives me no other choice.

I could be doing something wrong as I have never used Google API until I tried it about a month or so ago, so I am totally lost other than trying to follow you or ritchierich's directions. I thought I was following the directions exactly. I tried multiple times and each time it would not let me go any further than submitting and paying.

Yeah, it doesn't care.

If I hover over external I see (like you do):
image

But I won't ever submit it. So, I choose external and click "Create" and then I am taken to configure the OAuth consent screen. I gave it only a name on the consent screen and I added a scope. I don't even think you need to add the scope to have it work for just your account but I could be wrong. My first project I forgot to add the scope and it works without it as far as I can tell.

Either way, when adding the scope it let me get through to create an OAuth token. It says (with the scope added) that I can only have up to 100 unique tokens but I will never exceed 1. I think you should delete your project and try again or go to the credentials screen and just try to create an OAuth key.

So here is what I get when I try step iii

c) Set up the OAuth Consent screen - https://console.developers.google.com/apis/credentials/consent
i) Application Type: Internal
ii) Give it any name (perhaps "HE-GCal")
iii) Add scope ../auth/calendar.events.readonly (if you don't see it in the list, go back to step 1

Because you've added a sensitive scope, your consent screen requires verification by Google before it's published

This is where I get stuck every single time.

Paste that page (where you add the scope).

And just to keep it all straight,

I cannot select Internal at all. External only gives me this:

Yeah, so, in this screen you gave it a name and I see the scope you added. You can't just click "Save" on the bottom? I see the scope and I see the "Save" button is enabled. You just click "Save" and then in the left nav you go one menu up to "Credentials" after you click "Save" on the "OAuth consent screen".

That doesn't work?

Save works, but gives me this, the same error as the consent screen.

No, that isn't an error. It's just warning you that if you want others to use it then it needs verification. Now just leave this screen by using the left navigation panel and click on "Credentials". And follow the rest of the steps. You don't care that it's not verified because only you are using it. You would care if you wanted others to feel safe when using it but others will never use it. You won't ever publish it and you won't ever surface an app to the public that could redirect to this project. You are only going to use the token you create in your HE hub that is not accessible to the public.

Consent screen.

Again, read my previous post. You don't need to care about your users because you won't have any. Just click the "CREATE CREDENTIALS" button on the top.

Download the Hubitat app