Google Tasks

The Google Tasks integration allows you to connect your Google Tasks to Home Assistant. The integration adds a to-do list entity for each task list, allowing you to create, update, or delete items on the list from the To-do list dashboard.

You can use to-do lists in automations, such as adding a new task when Home Assistant detects a device has low batteries. When you combine with a Home Assistant voice assistant, you can manage your Google Tasks by saying something like Add clean out garage to personal task list.

Prerequisites

You need to configure developer credentials to allow Home Assistant to access your Google Account. These credentials are the same as the ones for Nest, Google Mail, and most other Google integrations. These are not the same as Device Auth credentials previously recommended for Google Calendar.

Scenario 1: You already have credentials

In this case, all you need to do is enable the API:

  1. Go the Google Developers Console Google Tasks API .
  2. Confirm the project and Enable the API.
  3. Continue with the steps described in the Configuration section.

Scenario 2: You do not have credentials set up yet

In this case, you need to generate a client secret first:

To generate client ID and client secret

This section explains how to generate a client ID and client secret on Google Developers Console.

  1. First, go to the Google Developers Console to enable Google Tasks API .
  2. Select Create project, enter a project name and select Create.
  3. Enable the Google Tasks API.
  4. Navigate to APIs & Services (left sidebar) > Credentials.
  5. In the left sidebar, select OAuth consent screen.
    • Select External and Create.
    • Set the App name (the name of the application asking for consent) to anything you want, e.g., Home Assistant.
  6. You then need to select a Support email.
    • From the dropdown menu, select your email address.
  7. Under Developer contact information, enter your email address (the same as above is fine).
  8. Scroll to the bottom and select Save and continue.
    • You don’t have to fill out anything else here. Adding other information to this page (like an app logo) may trigger an additional review process from Google and delay setup by days.
  9. You will then be automatically taken to the Scopes page.
    • You do not need to add any scopes here. Select Save and continue to move to the Test users page.
    • You do not need to add anything to the Test users page. Select Save and continue, which will take you to the Summary page.
    • Select Back to dashboard.
  10. Select OAuth consent screen again and under Publishing status, select Publish app.
    • Otherwise your credentials will expire every 7 days.
  11. Make sure Publishing status is set to In production.
  12. In the left sidebar, select Credentials, then select Create credentials (at the top of the screen), then select OAuth client ID.
  13. Set the Application type to Web application and give this credential set a name (like “Home Assistant Credentials”).
  14. Add https://my.home-assistant.io/redirect/oauth to Authorized redirect URIs then select Create.
    • This is not a placeholder. It is the URI that must be used.
  15. You will then be presented with a pop-up saying OAuth client created, showing Your client ID and Your client secret.
    • Make a note of these (for example, copy and paste them into a text editor), as you will need them shortly.
    • Once you have noted these strings, select OK.
    • If you need to find these credentials again at any point, then navigate to APIs & Services > Credentials, and you will see Home Assistant Credentials (or whatever you named them in the previous step) under OAuth 2.0 Client IDs.
    • To view both the Client ID and Client secret, select the pencil icon. This will take you to the settings page for these credentials, and the information will be on the right-hand side of the page.
  16. Congratulations! You are now the keeper of a client secret. Guard it in your treasure box. In most cases your new credentials will be active within a few moments. However, Google states that activation may take up to five hours in some circumstances.

Configuration

To add the Google Tasks integration to your Home Assistant instance, use this My button:

Manual configuration steps

If the above My button doesn’t work, you can also perform the following steps manually:

  • Browse to your Home Assistant instance.

  • Go to Settings > Devices & Services.

  • In the bottom right corner, select the Add Integration button.

  • From the list, select Google Tasks.

  • Follow the instructions on screen to complete the setup.

The integration setup will next give you instructions to enter the Application Credentials (OAuth Client ID and Client Secret) and authorize Home Assistant to connect to Google Tasks.

OAuth and device authorization steps
  1. Continue through the steps of selecting the account you want to authorize.

  2. NOTE: You may get a message telling you that the app has not been verified and you will need to acknowledge that in order to proceed.

  3. You can now see the details of what you are authorizing Home Assistant to access with two options at the bottom. Select Continue.

  4. The page will now display Link account to Home Assistant?, note Your instance URL. If this is not correct, refer to My Home Assistant. If everything looks good, select Link Account.

  5. You may close the window, and return back to Home Assistant where you should see a Success! message from Home Assistant.

Supported functionality

Entities

The Google Tasks integration provides the following entities.

To-do lists

The integration will create a to-do list entity for every task list. For example, a Google Tasks list named My Tasks then will have a Home Assistant to-do list entity named My Tasks.

The Google Task integration can create, update, or delete items on a to-do list. The to-do list entities support creating, updating, and deleting items on the to-do list. A to-do list item supports the following fields:

  • Item: The item is the Google Task Title field.
  • Due date: The Google Tasks Date. The time field in Google Tasks is not supported by the Google Tasks API.
  • Description: The Google Tasks Details field.
  • Status: The Google Tasks Completed check box corresponds to the to-do list status needs_action when not checked and completed when checked.

Actions

The Google Tasks integration provides all actions supported by a to-do list entity including actions for retrieving, creating, updating, and deleting to-do list items and the fields described above. See the To-do list: Actions documentation for more details.

Examples

Low Battery Maintenance

You can use Google Tasks to help you automate battery maintenance. To tackle this you can use this blueprint to send a notification with devices that have low low battery level. The notification includes a button that can add an item to your Google Tasks to-do list.

Low Battery Notifications & Actions

Data updates

The Google Tasks integration fetches task lists once initially, and creates a to-do list for each task list. Data for each to-do list refreshed refreshed by pollingData polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic. [Learn more] every 30 minutes.

Updates to the to-do list in Home Assistant use the Google Tasks API and changes are reflected immediately in Google Tasks. This will also refresh the to-do list contents, pollingData polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic. [Learn more] again for any new changes.

Known limitations

There are some known Google Tasks API limitations that affect this integration:

  • Only supports pollingData polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic. [Learn more]. Updates in Google Tasks are not reflected immediately in Home Assistant.
  • Only supports viewing or setting a task due date. A task due time is not supported.

Troubleshooting

Can’t setup the integration

Symptom: “The OAuth client was not found.”

When trying to configure the integration, the Google OAuth flows shows the message The OAuth client was not found and Error 401: invalid_client.

Description

This means that the application credentials in Home Assistant do not match the OAuth credentials in the Google Cloud console.

Resolution

To resolve this issue:

  1. Follow the instructions in Application Credentials to remove any existing credentials.
  2. Follow the steps above in the Prerequisites.
  3. Follow the steps above in the Configuration.

Symptom: “Unable to access the Google API: Tasks API has not been used in project before or it is disabled”

Home Assistant fails to configure the integration with the error Unable to access the Google API: Google Tasks API has not been used in project before or it is disabled.

Description

This means that Home Assistant is unable to use the Google Tasks API because it was not enabled in the Google Cloud Console.

Resolution

Follow the steps above in the Prerequisites to enable the Google Tasks API.

Removing the integration

This integration follows standard integration removal. No extra steps are required.

To remove an integration instance from Home Assistant

  1. Go to Settings > Devices & services and select the integration card.
  2. From the list of devices, select the integration instance you want to remove.
  3. Next to the entry, select the three-dot menu. Then, select Delete.

You will be asked if you would like to remove Application Credentials which you can do if you no longer plan to use Google Tasks with Home Assistant. You may want to also remove any credentials in the Google Cloud Console, created above in the Prerequisites, if they are no longer in use with any of your other Home Assistant integrations.