Run a Routine at a set time, on a set schedule, in any timezone. No external scheduler, no manual intervention — the Routine fires when the clock says it should.
Event triggers run when something changes in your workspace. Scheduled triggers run when time passes.
Some of the most valuable recurring work has nothing to do with a particular event. A weekly retrospective summary should arrive every Monday whether or not a Brief changed. A daily standup digest should be ready each morning regardless of what happened overnight. A monthly metric review should land on the first of the month, full stop.
Before scheduled triggers, this meant one of two things: someone had to remember to run the Routine manually, or you needed an external tool (Zapier, a cron job, a Slack reminder) to kick it off. Neither option is reliable, and the external-tool path creates a dependency on infrastructure that doesn't know your workspace.
Scheduled triggers close that gap. Add a schedule to any Routine, and it runs at the time you set — every day, every week, on custom intervals — with full access to your workspace context.
Open any Routine and go to the Triggers tab. Select + Add trigger, then choose Schedule from the list.
The schedule row expands inline — no separate dialog. Configure:
A Next run preview shows when the Routine will next fire given your current settings, before you save.
Select Save to activate the schedule.
| Preset | When it runs | Time picker | Day picker |
|---|---|---|---|
| Hourly | Every hour, at the minute you choose | Minute only | — |
| Daily | Every day at the time you set | Hour + minute | — |
| Weekdays | Monday through Friday at the time you set | Hour + minute | — |
| Weekly | Once a week, on the day and time you set | Hour + minute | Day of week |
| Custom | Any valid cron schedule | — (cron expression) | — (cron expression) |
The Custom option accepts a 5-field cron expression (minute · hour · day-of-month · month · day-of-week). When you select Custom, the field pre-populates with 0 9 * * * (every day at 9 AM) as a starting point. Edit it directly and the Next run preview updates to show when it will next fire.
Each schedule stores its own timezone. The default is your browser's local timezone, but you can change it to any timezone in the combobox.
Schedules always run at the wall-clock time you set in that timezone — including across daylight saving time changes. If you set a schedule for 9:00 AM Eastern, it fires at 9:00 AM Eastern in summer (EDT) and in winter (EST).
A single Routine can have more than one schedule. Each schedule is independent — different frequencies, different times, different timezones if needed. Useful when you want something to run both daily and at the end of each week, or on different schedules for different regional teams.
Each schedule appears as a separate row in the Triggers section, with its own enabled toggle.
Each schedule row has an enabled toggle. When a schedule is enabled, it fires at its configured time. When disabled, it stays configured but doesn't run — useful for pausing a schedule temporarily without losing the configuration.
You can toggle a schedule on or off from either the collapsed row view or the expanded configuration view.
Routines with schedules show a clock icon in the triggers column on the Routines list. If a Routine has only scheduled triggers (no event triggers), the clock badge appears instead of "No triggers" — so schedule-only Routines are correctly represented in the list.
When a scheduled trigger fires, the Routine runs exactly as it would from any event trigger. Hamster reads your instructions, gathers the relevant workspace context, and executes. The output appears in the run history, and any changes made to Briefs, Tasks, or documents appear in the normal activity feed.
The run is logged with the trigger type set to "Schedule", so you can distinguish scheduled runs from event-triggered runs in the run history.
Weekly retrospective summary Set a Weekly trigger for every Friday at 4 PM. The Routine instructions scan the week's completed Tasks and delivered Briefs, and write a summary your team can review before the weekend.
Daily standup digest Set a Daily trigger for 8:45 AM. The Routine looks at each Initiative's open Briefs, surfaces anything blocked or at risk, and posts a digest your team reads before standup.
Monthly metric review
Set a Custom trigger with the cron expression 0 9 1 * * (9 AM on the first of each month). The Routine pulls the Metrics for the past month and writes a concise summary against your Goals.
End-of-week risk scan Set a Weekdays trigger for every Friday at 3 PM. The Routine scans all active Initiatives for any with health status "at risk" or "off track" and flags them with a short note on what's causing the concern.