Google Assistant offers a lot of functionality as a digital assistant, and a fair few of it extends to smart home and automation. Google provides some scheduling functionality for smart homes through Routines, which allow users to launch certain tasks routinely whenever certain conditions are met. Over the years, functionality under Routines has expanded, but there still remains a wide room for improvement with what exactly can be achieved with Google Assistant in the context of smart home automation. Now, a developer has made an open-source tool that lets you schedule Google Assistant commands, opening an array of functionality and use-cases for smart homes and beyond.

Timer for Google Assistant by wiseindy allows you to send commands to Google Assistant that will execute after a particular time, or by extension, for a specific time duration. The project utilizes IFTTT and an internet-facing web server to communicate with Google Assistant and your smart device. Once set up, you can send commands like "Hey Google, turn off the lights after 10 minutes" that execute an action after a particular duration. The project already extends this instruction set to make it possible to use duration commands such as"Hey Google, turn on the fan for 25 minutes", which will send one command instantly and the final command after the duration.

The application doesn't directly communicate with your local devices but uses IFTTT as a connecting medium for this communication. When you ask Google Assistant to "turn off a device after 5 minutes", it will send that command to IFTTT, which in turn makes an HTTP request to your server with the device name and parameter "5 minutes". The server turns on the device and waits for the specified amount of time. Once the time has elapsed, the server will make a web request to IFTTT, which will tell Google Assistant to turn off the device. Consequently, you do need an always running Node.js server that IFTTT can talk to, though it need not be running on the same network.

Timer for Google Assistant -- Github

Setting up the project takes a few steps, but the included readme is handy and will provide you with adequate guidance. The project is also open-source, so you can examine the code and make contributions yourself. The current applications and use-cases are envisaged within the context of smart homes, but maybe the community can extend it to other novel uses.