Working hours & timezone
Your agent has a concept of “working hours” — the window of time it considers active. This matters more than you might expect because it affects when scheduled tasks run and when your agent delivers things to you.
Your timezone
Section titled “Your timezone”Set during onboarding. Your agent uses it for everything:
- Scheduled tasks (cron expressions are in your local time)
- Meeting times when drafting calendar invites
- “Today” and “tomorrow” — relative to where you are, not UTC
- Delivery timing for notifications
You can change your timezone at any time from Settings → Agent → Timezone in the dashboard. The change applies to all future scheduled tasks. Existing cron jobs you created earlier keep their original schedule (but the display updates to show your new local time).
Working hours
Section titled “Working hours”By default, your agent treats 9am–12am (midnight) as working hours in your timezone. Outside those hours, it:
- Queues any non-urgent notifications to deliver when you’re back online
- Delays non-critical background tasks until morning
- Still runs anything that was explicitly scheduled (a 3am cron job runs at 3am)
- Still responds to direct chat messages (if you’re up at 2am talking to it, it’s up too)
Why those defaults? Because most SMB owners DON’T want push notifications at 3am, but they DO want the flexibility to chat whenever they want.
Changing your working hours
Section titled “Changing your working hours”From Settings → Agent → Working hours, you can set a custom window. Examples:
- 7am–10pm — if you want quiet overnight
- 6am–11pm Mon-Fri, closed weekends — if you want a real break
- 24/7 — if you work weird hours and don’t want quiet periods at all
Your agent respects these settings for notifications and non-urgent tasks. It will never silently ignore a scheduled task — those always run on schedule regardless.
What “closed hours” actually mean
Section titled “What “closed hours” actually mean”Outside working hours:
| Action | Behavior |
|---|---|
| You send a chat message | Agent responds immediately — you’re clearly available |
| Incoming email arrives | Agent logs it silently, no notification |
| A cron job fires | Runs on schedule |
| A background sub-agent finishes a task | Result is queued for delivery at the next working hour |
| An approval is needed | Queued, not pushed |
| Something urgent happens (errors, failures) | Still notified |
Respecting your focus time
Section titled “Respecting your focus time”If you connect your calendar, your agent reads your calendar events to understand your focus time. It won’t send you non-urgent updates during a meeting or a focus block. This is automatic — you don’t have to configure anything.
You can override this behavior by telling your agent explicitly: “Always notify me immediately, even in meetings” or “Never interrupt me before 10am, regardless of what’s on the calendar.”
The clock your agent runs on
Section titled “The clock your agent runs on”Technically, your agent’s container runs with TZ=<your_timezone> set as an environment variable. That means:
datecommands return your local time- Cron expressions are interpreted in your local time
- Log timestamps are your local time
- The agent never has to do UTC conversion math
This makes scheduled tasks way more intuitive. When you say “every morning at 7am,” you mean 7am your time, and that’s exactly when it fires.