Automate Slack Status & Philips Hue from Google Calendar

Discover how to automatically update your Slack status and Philips Hue lights based on Google Calendar events. This workflow streamlines presence indication by color-coding meetings and availability, saving time and reducing miscommunication.
googleCalendarTrigger
slack
httpRequest
+4
Learn how to Build this Workflow with AI:
Workflow Identifier: 1385
NODES in Use: manualTrigger, googleCalendarTrigger, googleCalendar, function, slack, switch, httpRequest

Press CTRL+F5 if the workflow didn't load.

Visit through Desktop for Best experience

1. Opening Problem Statement

Meet Sarah, a busy project manager juggling multiple meetings every day. She often forgets to update her Slack status or change her office lighting to reflect her availability, leading to frequent interruptions during crucial meetings. Sarah spends countless minutes each day manually changing her Slack status and toggling Philips Hue lights. This inconsistency causes confusion among colleagues and disrupts her productivity, costing her valuable time and creating unnecessary stress.

This is a common problem for many professionals who want to signal their availability clearly without interrupting their workflow. Automating the update of Slack status and Philips Hue lights based on real-time calendar events eliminates manual tasks, reduces errors, and enhances communication across teams.

2. What This Automation Does

This unique n8n workflow connects your Google Calendar with Slack and Philips Hue smart lights to dynamically reflect your current event status. Specifically, when a calendar event starts, this automation:

  • Fetches event details from your Google Calendar when a meeting begins.
  • Maps event categories (via color IDs) to specific tags representing work modes or personal time.
  • Updates your Slack profile status with the event summary and assigns an emoji based on the event category for instant context.
  • Triggers HTTP POST requests to Philips Hue webhooks to set room lighting to “Busy”, “Personal”, or “Available” modes depending on the event type.
  • Uses a Switch node to route lighting commands according to your current meeting type.
  • Automates presence signaling visually and digitally with zero manual input, saving you up to 10 minutes per meeting in status updates and eliminating communication gaps.

3. Prerequisites ⚙️

  • Google Calendar account with OAuth2 credentials set up in n8n 📅🔑
  • Slack workspace with API access and an OAuth token configured in n8n 💬🔑
  • Philips Hue system or equivalent smart lighting capable of receiving HTTP webhook POST requests 📁🔌
  • n8n automation platform account (cloud or self-hosted)
  • Optional but recommended: Knowledge of basic JavaScript for minor code tweaks 💻

4. Step-by-Step Guide

Step 1: Set Up Google Calendar Trigger

Navigate in n8n to add a new node: Add Node → Google Calendar Trigger. Configure it with your calendar ID and credentials. Set it to trigger when an event starts, polling every 5 minutes.

You should see a stable trigger that activates on event start, ensuring near real-time updates.

Common mistake: Forgetting to specify the correct calendar ID or OAuth credentials will prevent the trigger from firing.

Step 2: Get Event Details

Add a Google Calendar node next, configured to get event details based on the event ID passed by the trigger node.

Set the event ID parameter using the expression syntax: {{ $node["Event Started"].json["id"].split("_")[0] }}.

This fetches critical event information, including start/end times and color categorization.

Common mistake: Incorrectly referencing the event ID property or splitting improperly can cause errors.

Step 3: Map Calendar Colors to Status Tags

Insert a Function node named Set CalColor. Copy-paste this JavaScript code:

for (item of items) {
  switch (item.json.colorId) {
    case '1':
      calColor = 'Lavendar';
      break;
    case '2':
      calColor = '4dw_leading';
      break;
    case '3':
      calColor = 'Grape';
      break;
    case '4':
      calColor = 'Flamingo';
      break;
    case '5':
      calColor = '4dw_managing';
      break;
    case '6':
      calColor = 'Tangerine';
      break;
    case '7':
      calColor = '4dw_living';
      break;
    case '8':
      calColor = 'Graphite';
      break;
    case '9':
      calColor = 'Blueberry';
      break;
    case '10':
      calColor = 'Basil';
      break;
    case '11':
      calColor = '4dw_doing';
      break;
    default:
      calColor = 'undefined';
  }
  item.json.calColor = calColor;
}
return items;

This script converts Google Calendar’s numerical color IDs into meaningful tags like ‘4dw_leading’ or ‘4dw_managing’ for later use in routing.

Common mistake: Not updating this mapping if your calendar colors change.

Step 4: Update Slack Status

Add a Slack node configured to update your user profile status. Use expressions to set the status text to the calendar event summary and the emoji to the mapped color tag, e.g., ={{$json["summary"]}} and =:{{$json["calColor"]}}:.

This lets your teammates see your current meeting status at a glance.

Common mistake: Ensure your Slack OAuth token has permission to update user profiles.

Step 5: Set Up Switch Node for Lighting

Drag in a Switch node to route based on the calColor field. Configure rules to test if the color string starts with specific prefixes like ‘4dw_doing’ or ‘4dw_living’.

This logical branching directs different event types to separate lighting states.

Common mistake: Misconfigured rules can lead to no lights changing.

Step 6: Configure Philips Hue Light HTTP Requests

Add HTTP Request nodes to call your Philips Hue webhooks corresponding to three statuses: Busy, Personal, and Available. Use POST methods and specify the webhook URLs.

Connect them to the Switch node outputs accordingly, mapping work-related events to Busy and personal time to Personal, with Available as a fallback.

Common mistake: Incorrect webhook URLs or HTTP method can break the light control.

Step 7: Test the Entire Workflow

Manually trigger or simulate an event start in Google Calendar. Check that your Slack status updates with the event summary and emoji, and the lights change to the correct state.

Common mistake: Skipping this test step may hide errors in integrations or node configurations.

5. Customizations ✏️

  • Customize Status Emojis: In the Slack node, change the emoji mapping to match your team’s preferred icons by editing the status_emoji expression.
  • Add More Lighting States: Extend the Switch node rules and add new HTTP Request webhook nodes for different Philips Hue scenes or colors.
  • Calendar Color Mapping: Update the Function node code to reflect new Google Calendar color IDs or personal tagging schemes.
  • Include Event Duration Info: Modify the Slack status text in the Slack node to show how long the meeting lasts, enhancing clarity.
  • Add Logging: Include additional nodes like Set or Code nodes to log event details and responses from Philips Hue webhooks for troubleshooting.

6. Troubleshooting 🔧

Problem: “Google Calendar Trigger not firing”

Cause: Incorrect calendar ID or missing OAuth2 credentials.

Solution: Go to the Google Calendar Trigger node settings in n8n, verify the calendar ID matches your actual Google calendar email, and check your OAuth2 credentials connection.

Problem: “Slack status update fails”

Cause: Insufficient Slack API permissions or expired tokens.

Solution: Reauthorize Slack credentials in n8n with correct scopes that include profile update and test again.

Problem: “Philips Hue lights not responding”

Cause: Incorrect webhook URLs or wrong HTTP method.

Solution: Verify the URLs configured in the HTTP Request nodes and ensure POST method is used as per Philips Hue webhook specs.

7. Pre-Production Checklist ✅

  • Confirm Google Calendar OAuth2 credentials are valid and linked.
  • Verify Slack API token has user profile update permissions enabled.
  • Test Philips Hue webhook URLs independently using a tool like Postman.
  • Run the workflow manually with a test event to confirm status and lights update correctly.
  • Backup your n8n workflows for rollback in case of unexpected issues.

8. Deployment Guide

Activate the Google Calendar Trigger node by enabling it in n8n. Deploy the workflow and keep the n8n instance running to listen for triggers.

Monitor the workflow execution logs in n8n to catch any errors quickly. Schedule regular checks or alerts for failures if supported by your setup.

9. FAQs

Q: Can I use a different calendar service?

A: This workflow is designed for Google Calendar. Using other calendar services would require swapping the Google Calendar node with an equivalent node and adjusting event ID handling accordingly.

Q: Does this consume many Slack API requests?

A: Each status update counts as one API call. For heavy calendar users, consider Slack rate limits. This workflow updates status only at event start, minimizing calls.

Q: Is my Slack status and calendar data secure?

A: Yes, credentials are stored securely in n8n, and OAuth2 tokens are used for authentication. Philips Hue webhooks are private and secured by their URLs.

10. Conclusion

By following this guide, you’ve automated your Google Calendar events to seamlessly update Slack statuses and Philips Hue lighting. This integration saves you time, reduces interruptions, and visually signals your availability to teammates.

On average, this workflow cuts down 10+ minutes per meeting previously spent on manual updates. Consider expanding this system to include other presence signals like Microsoft Teams or Zoom statuses, or deeper Philips Hue customizations to enhance your work environment.

Embrace automation to focus on what truly matters—your work.

Related Workflows

Automate Viral UGC Video Creation Using n8n + Degaus (Beginner-Friendly Guide)

Learn how to automate viral UGC video creation using n8n, AI prompts, and Degaus. This beginner-friendly guide shows how to import, configure, and run the workflow without technical complexity.
Form Trigger
Google Sheets
Gmail
+37
Free

AI SEO Blog Writer Automation in n8n (Beginner Guide)

A complete beginner guide to building an AI-powered SEO blog writer automation using n8n.
AI Agent
Google Sheets
httpRequest
+5
Free

Automate CrowdStrike Alerts with VirusTotal, Jira & Slack

This workflow automates processing of CrowdStrike detections by enriching threat data via VirusTotal, creating Jira tickets for incident tracking, and notifying teams on Slack for quick response. Save hours daily by transforming complex threat data into actionable alerts effortlessly.
scheduleTrigger
httpRequest
jira
+5
Free

Automate Telegram Invoices to Notion with AI Summaries & Reports

Save hours on financial tracking by automating invoice extraction from Telegram photos to Notion using Google Gemini AI. This workflow extracts data, records transactions, and generates detailed spending reports with charts sent on schedule via Telegram.
lmChatGoogleGemini
telegramTrigger
notion
+9
Free

Automate Email Replies with n8n and AI-Powered Summarization

Save hours managing your inbox with this n8n workflow that uses IMAP email triggers, AI summarization, and vector search to draft concise replies requiring minimal review. Automate business email processing efficiently with AI guidance and Gmail integration.
emailReadImap
vectorStoreQdrant
emailSend
+12
Free

Automate Email Campaigns Using n8n with Gmail & Google Sheets

This n8n workflow automates personalized email outreach campaigns by integrating Gmail and Google Sheets, saving hours of manual follow-up work and reducing errors in email sequences. It ensures timely follow-ups based on previous email interactions, optimizing communication efficiency.
googleSheets
gmail
code
+5
Free