# Scheduled project tasks IdeA owns recurring project maintenance. Agents and users should use scheduled project tasks instead of installing `cron`, `systemd` timers, or executable files inside a repository. Definitions are machine-local and persist in `/scheduled-project-tasks/.json`. They are distinct from `BackgroundTask`: every manual or scheduled occurrence creates a new background task carrying an `origin` (`manual` or `scheduled` with the definition id and planned timestamp). Scheduled runs use `RecordOnly`: their terminal state and output remain durable, but a successful completion does not wake an agent or enqueue a completion message. V1 accepts only intervals of at least five minutes, daily `HH:mm`, and weekly day/`HH:mm` schedules with an IANA timezone. Missed occurrences are skipped at startup; only the next future occurrence is armed, and only while the project is open. IdeA must be running to trigger tasks. The MCP surface is `idea_scheduled_task_list`, `read`, `create`, `update`, `delete`, `run_now`, and `set_enabled`. Read operations are allowed by the native read policy; mutations are write actions. An agent-created or agent-modified definition is always disabled and `pending` human approval. MCP enable cannot grant that approval. Commands persist no free-form environment. Their working directory is relative to the project, checked lexically on write and canonically before every run to reject symlink escapes. Runs use a deny-by-default OS sandbox: the project is the only writable root and system toolchain paths are read/execute-only.