Opening Problem Statement
Meet Sarah, a project manager coordinating remote teams across New York and Warsaw. Twice a year, when Daylight Saving Time (DST) starts or ends, her scheduling turns chaotic. Meetings get missed because timezones shift, and her teams forget to adjust. This leads to wasted hours—rearranging calendars, sending follow-ups, and explaining mix-ups. If Sarah could be automatically alerted about upcoming DST changes, she could proactively adjust schedules and avoid that confusion and lost productivity.
What This Automation Does
This n8n workflow is designed to keep you informed about upcoming Daylight Saving Time changes across multiple timezones by automatically checking shifts and sending alerts. Here’s what it accomplishes:
- Checks a predefined list of timezones for DST changes.
- Determines if a timezone will switch into or out of DST the following day.
- Sends a notification message on Slack alerting your team about the upcoming DST change.
- Emails a customizable alert highlighting which timezone will change and when.
- Runs on a schedule, so you get daily checks to stay ahead without manual effort.
- Helps prevent scheduling errors and unnecessary meeting reschedules by providing timely reminders.
By automating these notifications, you save hours each DST transition season, keeping your distributed teams synchronized and informed.
Prerequisites ⚙️
- Slack Account with a channel set up for notifications 💬
- SMTP Email Account for sending alert emails 📧
- n8n Account (cloud-hosted or self-hosted) 🔌
- Configured OAuth2 credentials for Slack API access 🔑
Optional: For maximum control and security, you can self-host n8n. Platforms like Hostinger offer easy n8n setup.
Step-by-Step Guide
1. Configure the Schedule Trigger Node to Run Daily
Navigate to the Schedule Trigger node. Set it to run once every day (interval of 1 day). This makes sure the workflow checks timezones daily for any upcoming DST change. You should see a daily schedule rule. Common mistake: Leaving the interval blank, which prevents the workflow from triggering automatically.
2. Define Your List of Timezones using the Code Node
Open the Timezones List code node. You’ll find JavaScript returning an array of timezone objects:
return [
{ timezone: "America/New_York" },
{ timezone: "Europe/Warsaw" },
];
Add or remove timezone strings as needed for your team’s locations. This list drives which zones get checked. After saving, you’ll see the array data passing to the next node. Typical error: using invalid timezone names or formats, so ensure you use IANA timezone database names exactly.
3. Calculate Current DateTime for Each Timezone
The Calculate Zone Date and Time node uses n8n’s Set node with a JavaScript expression to set a datetime value in each timezone:
={{ $now.setZone($json.timezone) }}This converts the workflow’s current time to the timezone being processed. Verify the output contains a datetime_zone string in the respective zone.
4. Calculate Tomorrow’s Date Based on Each Timezone
Next, the Calculate Tomorrow’s Date DateTime node adds 1 day to the current datetime using the expression:
datetime_zone_tomorrow = addToDate(datetime_zone, 1 day)This is essential to compare DST status for today vs. tomorrow.
5. Check Daylight Saving Time Status for Today and Tomorrow
The Check If Daylight Saving Time node sets two properties by evaluating whether today and tomorrow are in DST for each timezone:
datetime_zone_dst = datetime_zone.toDateTime().setZone($json.timezone).isInDST
datetime_zone_tomorrow_dst = datetime_zone_tomorrow.toDateTime().setZone($json.timezone).isInDST
The results help determine if there’s a DST change upcoming.
6. Use an IF Node to Detect DST Change Between Today and Tomorrow
The Check If Change Tomorrow IF node compares DST flags:
if (datetime_zone_dst !== datetime_zone_tomorrow_dst) then true else falseIf true, the workflow proceeds to send notifications.
7. Send Notifications to Slack
If a change is detected, the Send Notification On Upcoming Change Slack node triggers. It crafts a message using:
=Tomorrow is Daylight Saving Time change in zone {{ $json.timezone }} - remember to adjust meeting times!Set the Slack node to post in the channel your team monitors. Common mistake: Forgetting to specify the Slack channel ID.
8. Send Email Alerts About the DST Change
Parallel to Slack, the Send Email On Upcoming Change node sends an email with:
Subject: DST change tomorrow in {{ $json.timezone }}
Body: Tomorrow is Daylight Saving Time change in zone {{ $json.timezone }} - remember to adjust meeting times!Configure SMTP credentials accurately to avoid delivery errors.
Customizations ✏️
- Add More Timezones: Edit the Timezones List code node to include all relevant IANA timezone strings for your team or clients.
- Change Notification Channels: In Send Notification On Upcoming Change, update the Slack channel ID or integrate other messaging platforms available in n8n.
- Modify Email Template: Customize the subject and body text in the Send Email On Upcoming Change node to suit your organization’s tone or add richer formatting.
- Adjust Schedule Frequency: Change the Schedule Trigger interval to run multiple times a day or weekly based on your checking preferences.
Troubleshooting 🔧
Problem: Slack message not sending
Cause: Incorrect or missing Slack channel ID, or OAuth token issues.
Solution: Check Slack node credentials, ensure OAuth2 token has correct scopes, and set a valid channel ID via the node’s channelId property.
Problem: Emails fail to send
Cause: SMTP misconfiguration or network issues.
Solution: Verify SMTP credentials under credentials tab, test outside n8n with your email client and confirm network access.
Problem: Timezone names invalid or unrecognized
Cause: Using incorrect timezone identifiers in the Timezones List node.
Solution: Use valid IANA timezone strings from the database (e.g., “America/New_York”).
Pre-Production Checklist ✅
- Verify timezone entries in the Timezones List node match IANA database standard names.
- Test the Slack node separately by sending a manual message to your target channel.
- Send a test email using the SMTP node to confirm settings.
- Run the workflow using the Manual Trigger node to confirm entire flow works as expected.
- Check outputs of each node to ensure datetime properties are correctly set.
Deployment Guide
Activate the Schedule Trigger node to enable daily automated runs. Monitor the workflow’s executions periodically through n8n’s dashboard. Logs will indicate if notifications were sent or if errors occurred. Update the timezone list anytime team locations change.
FAQs
- Q: Can I add more notification channels like Microsoft Teams?
Yes, by adding nodes for other messaging platforms supported by n8n and adjusting the workflow accordingly. - Q: Does this workflow consume many API credits?
No, it primarily works with date calculations and limited API calls, so usage is minimal. - Q: Is my data secure?
Yes, n8n encrypts credentials and communications securely if self-hosted or using n8n cloud with proper credentials setup. - Q: Can I handle timezones beyond the listed ones?
Absolutely. Just update the Timezones List node with the desired timezone names.
Conclusion
With this automation, Sarah (and you) will never be caught off guard by Daylight Saving Time changes. By automatically detecting timezone DST transitions and sending timely Slack and email notifications, you reduce scheduling mistakes and save hours of manual calendar checks. Implementing this workflow ensures your remote teams stay in sync and meetings happen on time, every time.
Next, consider extending this workflow to include calendar adjustments or automated meeting reschedules for full DST management. Or integrate with other collaboration tools your team uses to multiply communication efficiency.
Let’s keep your team perfectly aligned, no matter the timezone changes!