Skip to content

[Feat] Add flexible custom automation schedules - #982

Merged
mrubens merged 17 commits into
developfrom
feature/custom-automation-schedules-0arq3o9rqfbrd
Aug 2, 2026
Merged

[Feat] Add flexible custom automation schedules#982
mrubens merged 17 commits into
developfrom
feature/custom-automation-schedules-0arq3o9rqfbrd

Conversation

@roomote-community

Copy link
Copy Markdown
Contributor

Opened on behalf of Matt Rubens. Follow up by mentioning @roomote, in the web UI, or in Discord.

What changed

  • Add a deployment-wide IANA scheduling timezone, editable from both Automations and Deployment settings while preserving the existing Slack/UTC fallback until it is pinned.
  • Let admins define custom automation schedules with presets, five-field cron, or natural language that is resolved and validated before canonical cron is saved.
  • Evaluate custom cron schedules every minute with duplicate-launch fencing and one-run catch-up behavior.
  • Add the admin-authorized manage_custom_automations Roomote MCP tool for list, schedule resolution, create, update, delete, and Run now operations.
  • Document the new scheduling, timezone, and MCP management behavior.

Why this change was made

Custom automations were limited to a few fixed cadence presets and could only be managed from the web UI. Admins need precise recurring schedules, a predictable deployment timezone, and the ability to configure and operate automations through Roomote tasks.

Impact

Admins can express recurring work naturally or with cron, preview the interpreted schedule, and manage the full custom automation lifecycle from either the dashboard or Roomote MCP. Existing deployments retain their current scheduling timezone behavior until an admin explicitly changes it, and older application versions safely treat new cron rows as disabled.

Screenshots

Automations page with deployment scheduling timezone and custom schedule editor

Deployment settings with the shared scheduling timezone

Mobile custom schedule editor

@roomote-community

roomote-community Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor Author

No code issues found. See task

  • apps/bullmq/src/scheduler.ts:117 Weekly Manager Stats now ticks every UTC day and relies on its timezone-aware local-Friday gate.
  • apps/worker/src/mcp/roomote-mcp-server/custom-automations.ts:42 MCP updates now send only supplied fields and preserve an omitted enabled value.
  • apps/api/src/handlers/custom-automations/index.ts:54 The MCP update contract now accepts targetProvider: null to remove an existing report destination and restore silent/no-destination mode.
  • apps/web/src/components/settings/automations/AutomationsSettings.render.client.test.tsx:424 The miscSettings.get tRPC mock and matching query response now let all 13 render tests run.
  • apps/web/src/components/settings/automations/CustomAutomationsSection.tsx:273 Do not allow a pending natural-language resolution to populate resolvedCron after the input changes. The field is editable while a request is in flight, so editing weekdays at 9am to another natural-language schedule lets the old response be saved for the new input.
  • packages/sdk/src/server/automations/__tests__/custom-automations.test.ts:36 The scheduling-utils mock now includes DAILY_WEEKLY_SCHEDULE_HOUR_LOCAL, so the scheduler tests import and run.

Reviewed 5b98928

@roomote-community

roomote-community Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor Author

All review findings are now addressed. The latest fix is in 880360b:

  • MCP updates accept targetProvider: null to clear an existing report destination and restore silent/no-destination mode.
  • Omitted target fields still preserve the current destination, and string providers still replace/update it.
  • Focused worker tests cover the clear signal, and the API/worker type checks plus full pre-push gate pass.

The earlier local-Friday scheduling and partial-update fixes remain in 353e0b3.

@mrubens
mrubens marked this pull request as ready for review August 2, 2026 03:59
@mrubens
mrubens merged commit 7bd8c37 into develop Aug 2, 2026
19 checks passed
@mrubens
mrubens deleted the feature/custom-automation-schedules-0arq3o9rqfbrd branch August 2, 2026 03:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant