Weekly Chore Assignment Rotation with Google Sheets and Gmail Notifications - n8n Workflow

Automate random chore assignments weekly using this powerful n8n workflow. Integrates Google Sheets data management with Gmail notifications. Ideal n8n template for household or team rotation.

Workflow Preview

Ready to automate?

Download this n8n workflow template and start using it instantly.

Who is this best for?

Families, roommates, or household managers needing a fair and automated system for chore rotation.
Small teams or groups who require rotating administrative tasks.
Users seeking ready-to-use n8n templates that showcase data processing and email integration.
Developers and automation specialists who want to learn how to use the Code n8n node for custom randomization logic in an n8n workflow.

Overview

Managing rotational duties or chores can be tedious and prone to arguments. This advanced n8n workflow eliminates manual intervention by automating the entire assignment process.

The automation uses a central Google Sheet to manage both the list of tasks and the list of people (with their emails). Once per week, the n8n trigger fires, pulling this data. A custom JavaScript section ensures a completely random assignment while filtering out incomplete records. Crucially, the workflow confirms the assignment via personalized email using the Gmail n8n node and then updates the source Google Sheet, providing a permanent record. This is a robust example of a practical n8n template for managing recurring assignments.

How it Works

This n8n workflow operates on a fixed weekly schedule:


  1. Start: The Schedule Trigger acts as the primary n8n trigger, initiating the process once every seven days.

  2. Data Retrieval: The workflow utilizes two sequential Google Sheets n8n node steps: Get Tasks reads all available chores from the 'Tasks' sheet, and Get People retrieves the list of participants and their emails from the 'Persons' sheet.

  3. Assignment Logic: The Filter Data and Assign Tasks Code n8n node takes both lists. It first cleans the data (removing people without emails or tasks without names) and then uses JavaScript's randomization function to assign each task to a random person from the filtered list. This creates multiple output items, one for each assigned task.

  4. Notification: The Send a message Gmail n8n node iterates through the randomized assignments. For each item, it dynamically pulls the assigned person's name and email address, sending a customized notification detailing their weekly chore.

  5. Logging: Finally, the Update assignto in sheet Google Sheets n8n node updates the original 'Tasks' sheet by matching the rownumber and writing the name of the assigned person, completing the documentation loop within this n8n workflow.

Installation Guide

To set up this n8n workflow, follow these steps:


  1. Import: Copy the provided JSON data and paste it directly into your n8n instance to create a new n8n workflow.

  2. Google Sheets Setup: Create a Google Sheet document with two tabs named 'Tasks' and 'Persons'. Ensure 'Persons' includes a column for name and email, and 'Tasks' includes task, description, and a unique rownumber (n8n will handle this usually).

  3. Credentials:

Set up a Google Sheets OAuth2 API credential with read/write access and attach it to both Google Sheets n8n node steps (Get Tasks, Get People, and Update assignto in sheet).
Set up a Gmail OAuth2 credential and attach it to the Send a message n8n node.

  1. Configuration: In the Get Tasks, Get People, and Update assign_to in sheet nodes, select the correct Document ID and Sheet Name corresponding to your setup.

  2. Activation: Once credentials and sheet connections are confirmed, activate the n8n workflow to run according to the scheduled n8n trigger.

Node Details

Schedule Trigger (n8n trigger):
Function: Starts the n8n workflow automatically.
Key Configuration: Set to run at a specific interval, configured here as every 7 days.
Get Tasks (Google Sheets n8n node):
Function: Reads all tasks from the designated 'Tasks' sheet.
Key Configuration: Operation set to 'Read', connecting to the 'Tasks' sheet.
Get People (Google Sheets n8n node):
Function: Reads all participants and their contact details from the 'Persons' sheet.
Key Configuration: Operation set to 'Read', connecting to the 'Persons' sheet.
Filter Data and Assign Tasks (Code n8n node):
Function: The core logic of this n8n workflow. Filters invalid data and randomly pairs tasks with people using JavaScript.
Key Configuration: Custom JavaScript code handles filtering people without emails, filtering empty tasks, and applying randomization to create assignments.
Send a message (Gmail n8n node):
Function: Sends personalized email notifications for each assigned task.
Key Configuration: Uses expressions (={{ $().item.json.email }}) to dynamically insert the recipient and task details into the subject and message body.
Update assignto in sheet (Google Sheets n8n node):
Function: Logs the assignment back into the source 'Tasks' sheet for tracking.
Key Configuration: Operation set to 'Update'. Matches rows using the row
number and updates the assigned_to column.

Related n8n Workflows

Free

Nodes: 5 Nodes
Updated: December 26 2025
View all
Created by

Experienced tech professional with 10+ years in Big Data, AI, and automation, former bootcamp director, and passionate about innovation and strategic growth.

Featured*