schedule_task
Schedule a task to be executed at a future time. Tasks persist across Neovim restarts (stored on disk).
When a scheduled task fires, a message is injected into the target session’s message queue, and the LLM will process it as if the user sent it.
Usage
@schedule_task action="create" message="Check server status" delay_seconds=3600
Parameters
| Parameter | Type | Description |
|---|---|---|
action |
string | Action to perform: create, list, or cancel (default: create) |
message |
string | Message to send when the task triggers (required for create) |
delay_seconds |
number | Delay in seconds before the task triggers (one-time task). Max 2592000 (30 days) |
trigger_at |
number | Unix timestamp when the task should trigger (one-time task, alternative to delay) |
interval |
number | Interval in seconds for periodic tasks (e.g., 86400 = daily, 3600 = hourly) |
repeat_count |
number | Maximum repetitions for periodic tasks (nil = unlimited) |
task_id |
string | Task ID to cancel (required for cancel action) |
Actions
create
Create a new scheduled task.
One-time task with delay:
@schedule_task action="create" message="Visit https://example.com and summarize" delay_seconds=3600
One-time task at specific time:
@schedule_task action="create" message="Remind me about the meeting" trigger_at=1717200000
Periodic task (every 30 minutes):
@schedule_task action="create" message="Check server status" interval=1800
Periodic task with max repeats:
@schedule_task action="create" message="Daily summary" interval=86400 repeat_count=7
list
List all scheduled tasks.
@schedule_task action="list"
cancel
Cancel a scheduled task by ID.
@schedule_task action="cancel" task_id="1717200000-12345"
Notes
delay_secondsandtrigger_atare mutually exclusive for one-time tasksintervalcreates a recurring task (userepeat_countto limit repetitions)- Tasks survive Neovim restarts (stored on disk)
- Maximum delay: 30 days (2592000 seconds)
- When a task fires, the message is processed by the LLM as if the user sent it