Skip to main content
Glama

Set task repetition

set_task_repetition
Destructive

Set or clear task repetition using structured fields or raw iCal RRULE, with support for fixed, due-again, and defer-from-completion schedules.

Instructions

Set or clear a repeating schedule on a task. Use the structured fields (frequency/interval/daysOfWeek/daysOfMonth/count/endDate) — e.g. 2nd Tuesday monthly — or pass a raw iCal RRULE via rule_string. Verified by read-back.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
countNoStructured repetition: stop after this many occurrences (ICS COUNT). Mutually exclusive with endDate.
endDateNoStructured repetition: stop repeating after this date (ICS UNTIL). Bare 'YYYY-MM-DD' emits the ICS DATE form for that calendar day; a full date-time is converted to the UTC form the ICS spec requires. Mutually exclusive with count.
task_idYesThe ID of the task
intervalNoStructured repetition: repeat every N periods of `frequency` (default 1). E.g. frequency 'weekly' + interval 2 = every other week.
frequencyNoStructured repetition: how often the task repeats. Required when using any other structured field.
daysOfWeekNoStructured repetition: which weekdays. Either plain names (monday/tuesday/wednesday/thursday/friday/saturday/sunday) or objects like { day: 'tuesday', position: 2 } for '2nd Tuesday' / { day: 'friday', position: -1 } for 'last Friday'. Positions require frequency 'monthly' or 'yearly'. Cannot be used with frequency 'daily' or together with daysOfMonth.
daysOfMonthNoStructured repetition: days of the month, 1-31, -1 for the last day, or -2 for the next-to-last day. Requires frequency 'monthly' or 'yearly'. Cannot be combined with daysOfWeek.
rule_stringNoRaw iCal RRULE string, e.g. 'FREQ=DAILY;INTERVAL=1', 'FREQ=WEEKLY;INTERVAL=2;BYDAY=MO,WE,FR'. Escape hatch for rules the structured fields below cannot express. Mutually exclusive with frequency/interval/daysOfWeek/daysOfMonth/count/endDate. Ignored when schedule_type is 'none'.
schedule_typeYes'regularly' = fixed schedule (repeats on the calendar regardless of when you finish), 'from_completion' = OmniFocus 'Due Again' (next due date measured from the completion date), 'defer_from_completion' = OmniFocus 'Defer Another' (next defer date measured from the completion date), 'none' = clear repetition

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataNo
metaNo
toolYes
successYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.7.0

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, so the agent knows this mutates state. The description adds value by disclosing that the operation is 'Verified by read-back' (i.e., the tool confirms the change by reading it back), and by explaining the semantics of schedule_type values (e.g., 'from_completion' = OmniFocus 'Due Again'). It also clarifies that rule_string is ignored when schedule_type is 'none'. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler. The core action is front-loaded, the two modes are stated compactly, and the read-back verification is a useful one-liner at the end. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter mutation tool with 100% schema coverage and an output schema, the description is nearly complete. It covers the two input modes, the clearing behavior, and the verification behavior. It doesn't spell out mutual-exclusion rules, but those are already in the schema descriptions, so the description doesn't need to repeat them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 9 parameters thoroughly. The description adds a compact summary of the structured-vs-raw distinction and the '2nd Tuesday monthly' example, which helps an agent understand the overall model without reading every field. It doesn't repeat every schema detail, which is appropriate given the high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Set or clear') and resource ('a repeating schedule on a task'), and immediately distinguishes the two modes: structured fields vs raw iCal RRULE. It also mentions clearing via schedule_type 'none', which differentiates it from sibling task-editing tools like edit_item or move_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool (setting/clearing repetition) and explains the two input modes. It doesn't explicitly name sibling alternatives or state when NOT to use it, but the scope is specific enough that an agent can route correctly. The 'Verified by read-back' note adds operational context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.