I found an easier way to do this than google calendar. But it is a little tricky…
First, a few of the limitations…
- You have to speak the time to Google Home as a decimal. You can’t say “o’clock” anywhere in the command to google home, that will screw things up.
- If you can do it by the number of minutes or hours you want a thing to happen for, that is much, MUCH easier.
So, if you want to do either of these from Google Assistant, the first step is in webCoRE, create a piston with the trigger of the virtual device IFTTT. Select a name for it, then copy the Link that webCoRE will give you below the piston.
Now, take that link over to IFTTT. You want to create a new applet with Google Assistant as the “this” part. You want to pick, “Say a simple phrase with a number component.”
In the applet, you want to use a phrase that you will be able to remember and that makes sense. Substitute in the # sign where you will speak the number. Again, this is where using a simple “this many minutes” from now is easier. But you can speak the time as well, it just means that your work will be harder on the backend. For this example, I’ll asumming you’re going to trigger it in so many minutes from now. Here’s an example:
Now, for the “then” part, pick maker webhooks. Paste your URL from webCoRE into the URL field. After the trigger name, in my case “time”, add a question mark and then some argument name you want to use, I have used “minutes”, then an equal sign, then click add ingridient and click number field. There is a CRUCIAL STEP here. IFTTT has put a space automatically between the equal sign and the number field. YOU MUST REMOVE IT or nothing will work. (I won’t tell you how long I fought with that before figuring it out. It was a LONG time). It should look something like this:
Now, back over in your webcore piston, you want to add a variable to capture that number, in my case, I’ve used minutes again. You’ll use the actions of set variable, and you’ll do that by selecting the variable and then the argument entry and then typing in your argument name from IFTTT, in my case “minutes” again.
Then add a wait for that number of minutes.
Then add your actions after that. And voila…you’re done! You can now trigger an action to happen in so many minutes. You can also make it really complicated where an action happens immediately, then another happens after the delay. I do this to turn on lights for so many minutes.
For example, my driveway light. When someone is leaving I always used to forget to turn it off after they were gone. Now I can say to Google Home, turn on driveway light for 10 minutes and it turns on immediately and then off after 10 minutes.
If you want to do it based on a specific time, i can walk through that as well but parsing it is a lot more complicated.