Skip to main content
Glama
estrenuo

OmniFocus MCP Server

by estrenuo

Create Task

omnifocus_create_task

Add tasks to OmniFocus with due dates, tags, and recurrence patterns for repeat tasks.

Instructions

Create a new task in OmniFocus.

Creates a task in the inbox or a specific project. Tags, due dates, planned dates and other properties can be set. Supports repeating/recurring tasks.

Args:

  • name (string): Task name/title (required)

  • note (string): Optional note/description

  • projectName (string): Project to add to (inbox if not specified)

  • parentTaskId (string): ID of a parent task to create this as a subtask of (takes priority over projectName)

  • dueDate (string): Due date in ISO 8601 format - when the task must be completed

  • deferDate (string): Defer/start date in ISO 8601 format

  • plannedDate (string): Planned date in ISO 8601 format - when you intend to work on the task

  • flagged (boolean): Flag the task (default: false)

  • estimatedMinutes (number): Time estimate in minutes

  • tagNames (array): Tag names to apply

  • recurrence (object): Optional recurrence pattern with:

    • frequency: "daily", "weekly", "monthly", or "yearly"

    • interval: Number of periods between repetitions (default: 1)

    • daysOfWeek: Array of days for weekly recurrence (e.g., ["Monday", "Friday"])

    • dayOfMonth: Day number for monthly recurrence (1-31)

    • monthOfYear: Month number for yearly recurrence (1-12)

    • repeatFrom: "due-date" or "completion-date" (default: "due-date")

Returns: The created task object with id, name, and other properties

Examples:

  • Simple task: { name: "Buy groceries" }

  • Task with details: { name: "Review report", projectName: "Work", dueDate: "2024-12-31T17:00:00", flagged: true }

  • Daily recurring: { name: "Daily standup", dueDate: "2024-01-01T09:00:00", recurrence: { frequency: "daily", interval: 1 } }

  • Weekly on Mon/Wed/Fri: { name: "Workout", dueDate: "2024-01-01T07:00:00", recurrence: { frequency: "weekly", daysOfWeek: ["Monday", "Wednesday", "Friday"] } }

  • Monthly on 1st and 15th: { name: "Pay bills", dueDate: "2024-01-01T12:00:00", recurrence: { frequency: "monthly", interval: 1, dayOfMonth: 1 } }

  • Repeat from completion: { name: "Review quarterly", recurrence: { frequency: "monthly", interval: 3, repeatFrom: "completion-date" } }

  • Task with planning: { name: "Write article", plannedDate: "2024-12-15T09:00:00", dueDate: "2024-12-31T17:00:00" }

  • Task with tags: { name: "Call John", tagNames: ["Calls", "Urgent"] }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesThe task name/title
noteNoOptional note/description for the task
dueDateNoDue date in ISO 8601 format (e.g., '2024-12-31T17:00:00')
flaggedNoWhether to flag the task
tagNamesNoArray of tag names to apply
deferDateNoDefer/start date in ISO 8601 format
recurrenceNoRecurrence pattern for repeating tasks
plannedDateNoPlanned date in ISO 8601 format - when you intend to work on the task
projectNameNoName of project to add task to (creates in inbox if not specified)
parentTaskIdNoID of parent task to create this as a subtask (makes this task a child of the parent)
estimatedMinutesNoEstimated time in minutes
Behavior4/5

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

Annotations indicate a write operation (readOnlyHint=false) and not destructive. The description adds behavioral context: creation details, support for recurrence, return of task object, and no contradictions. It clarifies actions beyond annotations.

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

Conciseness4/5

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

The description is well-structured with headings, bulleted parameters, and examples. It is somewhat lengthy but each part adds value. Could be slightly more concise, but organization compensates.

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?

Given 11 parameters, no output schema, the description covers all parameters comprehensively with examples. It explains the return value and common use cases. Missing only usage guidelines for more complete context.

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 baseline is 3. The description adds examples, clarifies relationships (e.g., parentTaskId overrides projectName), and explains recurrence object in detail. This significantly aids parameter usage.

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 clearly states it creates a task in OmniFocus, specifying inbox or project, and lists numerous parameters. It distinguishes from siblings like update_task, delete_task, and batch operations.

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

Usage Guidelines3/5

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

The description implies usage for creating tasks but does not explicitly state when to use or not use this tool versus alternatives like omnifocus_update_task or omnifocus_batch_complete_task. No exclusions are mentioned.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/estrenuo/omnifocus-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server