Schedule a daily report
Post a daily reminder to a Slack channel at a fixed time — with today's date woven in, or a weekday-specific nudge. For teams that want a cheap, consistent heads-up or standing announcement.
What this workflow does
- A Schedule trigger fires at 08:30 every day.
- A Post To Channel action posts a short message to Slack, templated with today's date.
- No sensors, no data fetch — just a reliable, clock-driven Slack post.
[SCREENSHOT] The finished workflow on the canvas: a Schedule trigger connected to a single Post To Channel action. The Post To Channel node's inspector is open on the right, showing a templated Content field.
What this workflow won't do (yet)
Be upfront before you build it:
- It can't count today's bookings, today's occupancy rate, or anything else inside Neowit — there are no data-fetch actions available to workflows today.
- It can't reach external systems for data unless that data is already baked into the message as fixed text.
- What it can do well: fixed reminders, date announcements, weekday-specific nudges, and anything you're happy to hard-code.
Prerequisites
- Workflows enabled for your organization. See Enable workflows for your org.
- Slack connected.
- A target channel ready for the daily post (e.g. #team-morning).
Build it
1. Create the workflow
From the Workflows list click New workflow, name it Daily morning post, and open the editor.
2. Add the schedule trigger
- Click Add node → Triggers → Schedule.
- Set schedule type to Every N days.
- Fill in:
- Timezone — your IANA zone, e.g. Europe/Oslo.
- Days — 1.
- Trigger at hour — 8.
- Trigger at minute — 30.
If you want weekdays only, pick Weekly instead and tick Monday through Friday — same pattern as Turn off lights at close.
3. Add the Slack action
- Click Add node → Actions → Post To Channel.
- Settings:
- Channel — #team-morning.
- Content type — markdown.
- Content — pick Template mode and paste:
:sunny: *Good morning!* Today is {{ dateInZone "Monday, January 2" now "Europe/Oslo" }}.
Wire an edge from the Schedule trigger to the Post To Channel action's input.
4. Test it
- Click Run workflow in the toolbar.
- Schedules don't carry a payload, so leave the JSON as {} and click Run.
- The Logs panel shows Post To Channel go green, and the message appears in the channel.
Heads up: this is a real run — it really posts to Slack. Point Channel at a test channel while you iterate.
5. Enable it
Click Save, turn Enabled on, add a commit message, and save. From 08:30 tomorrow the message posts daily.
Template tips for the message body
The Content field uses Go template syntax — see References and templates for the full quickstart. A few shapes that fit a daily post:
- Today's date in your timezone. Use dateInZone rather than date so the format respects your local zone — now is UTC by default.
{{ dateInZone "Monday, January 2" now "Europe/Oslo" }}
- Weekday-specific line. A reminder that only shows on certain days:
{{ if eq (dateInZone "Monday" now "Europe/Oslo") "Monday" }} :calendar: Stand-up at 09:30 today.{{ end }}
- ISO date stamp. Handy for messages you'll want to search later:
Daily digest — {{ dateInZone "2006-01-02" now "Europe/Oslo" }}
- First-of-month reminder. Don't force this inside the template — switch the trigger to Monthly with the day-of-month set to 1. The scheduler handles the filter, the template stays simple.
Variations
- Weekdays only. Use the Weekly schedule variant — see Turn off lights at close for the full walkthrough.
- End-of-month summary. Change the trigger to Monthly with Trigger at day of month set to 31 (it's clamped to the last day of short months).
- DM instead of channel post. Swap Post To Channel for Send Direct Message to target an individual, e.g. the office manager.
- Multi-timezone offices. Build one workflow per timezone — schedules and dateInZone both take a single zone at a time.
When it doesn't fire
If the morning rolls around and no message lands in Slack:
- Check the workflow is Enabled in the Save dialog.
- Open the Executions tab. If a run shows but the Post To Channel is red, see Slack and Integration disconnected.
- If there's no execution at all, double-check the trigger's timezone and time fields. 08:30 UTC is not 08:30 in Oslo.
- See Workflow didn't run for more diagnostics.