Schedule types
All schedules run against a timezone (default your workspace timezone) — the fields above are wall-clock time in that zone, including through daylight-saving transitions. A Custom cron schedule must fire at least 10 minutes apart; a tighter interval is rejected when you save it. An Hourly routine fires once per wall-clock hour at its chosen minute; when a daylight-saving transition skips or repeats a wall-clock time, the routine resolves to the first valid occurrence.
Required connections
When a routine’s prompt depends on a Connected app — posting to Slack, reading Gmail, writing to a CRM — Milian records which apps it needs (slack, gmail, …) on the routine. A routine refuses to be created or updated while one of those apps is not connected, and refuses to run — even on its own schedule — the moment a required connection goes missing, expires, or breaks, so it never fails silently and unattended every time it fires. The Routines page shows a warning on any enabled routine whose required connection is currently missing or broken, with a link to reconnect it.
Creating a routine
Routines are chat-first: ask Milian directly — open the copilot and describe what you want scheduled and when; Milian explains how routines work, asks the questions it needs, and proposes the routine for you. On the dashboard, the small task icon next to the help icon (and the New routine button on the Routines page) inserts a ready-made starter prompt into the composer. Creating, updating, or deleting a routine through chat always shows an Approve / Cancel confirmation card first — Milian never saves a change on its own. The card summarizes exactly what will change (name, prompt, schedule, timezone, enabled state); nothing happens until you click Approve, and Cancel discards the proposal.Managing a routine
The Routines page lists your routines and lets you edit, run, and delete them — but not create one (see above). Opening a routine there lets you change its name, prompt, schedule type and its fields, timezone, and enabled/disabled toggle. Toggling a routine off pauses it (clears its next run) without deleting it; toggling it back on recomputes the next run from the current time. Run now starts an off-schedule run immediately; Delete routine removes it for good.Background execution & transcripts
On schedule (or when triggered manually), a routine’s prompt is sent to Milian as a durable background run — it keeps executing even if you close the browser. The run appears as a normal Milian chat thread; open it from the Routines page to read the full transcript, including which tools Milian used. Run transcripts are kept for 10 days. Each routine also tracks its last run’s outcome (succeeded, failed, or still running) and the next scheduled run, both shown on the Routines page. Before finishing, Milian re-checks the result of every tool the run relied on — a tool call that errored or came back empty gets retried once, and if it still fails the transcript states plainly what did not work instead of quietly claiming success. A run’s status only reads Succeeded when it actually produced a result; the Routines page also flags a run’s tool errors (a “N tool errors” indicator) even when its overall status is Succeeded, so you can tell a clean run apart from one where something underneath it failed.Billing
A routine run is billed exactly like a normal Milian chat turn — the same per-turn credit cost, deducted from your workspace balance. There is no separate “routines” charge. If your workspace doesn’t have enough credit balance when a run is due, the run fails with an insufficient-credits error and the routine reschedules for its next occurrence.Plan limits
The number of routines a workspace can have is a plan limit (-1 = unlimited, 0 = the feature is off for that plan). Creating a routine past the limit is rejected until you delete one or upgrade.
API & MCP
Everything above is available in the public REST API and as MCP tools athttps://<your-domain>/mcp:
API keys and OAuth tokens have no signed-in end user, so these endpoints act as the workspace’s oldest owner member — the same actor a Milian chat turn on your own account would use when you’re signed in.