{
  "service": "ticktick",
  "displayName": "TickTick",
  "categories": [
    "Productivity"
  ],
  "authTypes": [
    "oauth2",
    "api_key"
  ],
  "auth": [
    {
      "type": "oauth2",
      "authorizationUrl": "https://ticktick.com/oauth/authorize",
      "tokenUrl": "https://ticktick.com/oauth/token",
      "scopes": [
        "tasks:read",
        "tasks:write"
      ],
      "tokenEndpointAuthMethod": "client_secret_basic"
    },
    {
      "type": "api_key",
      "label": "Access Token",
      "placeholder": "ticktick_access_token",
      "description": "Paste a TickTick OAuth access token. It is sent with the Authorization Bearer header."
    }
  ],
  "homepageUrl": "https://ticktick.com",
  "actions": [
    {
      "id": "ticktick.complete_task",
      "service": "ticktick",
      "name": "complete_task",
      "description": "Mark a TickTick task as completed.",
      "requiredScopes": [
        "ticktick.write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick project ID."
          },
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick task ID."
          }
        },
        "additionalProperties": false,
        "description": "TickTick task lookup input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "completed": {
            "const": true,
            "type": "boolean"
          },
          "projectId": {
            "type": "string",
            "description": "The TickTick project ID."
          },
          "taskId": {
            "type": "string",
            "description": "The TickTick task ID."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.create_or_update_habit_checkin",
      "service": "ticktick",
      "name": "create_or_update_habit_checkin",
      "description": "Create or update a TickTick habit check-in for a date stamp.",
      "requiredScopes": [
        "ticktick.write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "habitId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick habit ID."
          },
          "stamp": {
            "type": "integer",
            "description": "A date stamp in YYYYMMDD format."
          },
          "time": {
            "type": "string",
            "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
          },
          "opTime": {
            "type": "string",
            "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
          },
          "value": {
            "type": "number",
            "description": "The check-in value."
          },
          "goal": {
            "type": "number",
            "description": "The check-in goal."
          },
          "status": {
            "type": "integer",
            "description": "The check-in status."
          }
        },
        "additionalProperties": false,
        "required": [
          "habitId",
          "stamp"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "checkin": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A TickTick habit check-in group."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.create_project",
      "service": "ticktick",
      "name": "create_project",
      "description": "Create a TickTick project.",
      "requiredScopes": [
        "ticktick.write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick project ID."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick project name."
          },
          "color": {
            "type": "string",
            "description": "The TickTick project color."
          },
          "sortOrder": {
            "type": "integer",
            "description": "The TickTick project sort order."
          },
          "viewMode": {
            "type": "string",
            "enum": [
              "list",
              "kanban",
              "timeline"
            ],
            "description": "The TickTick project view mode."
          },
          "kind": {
            "type": "string",
            "enum": [
              "TASK",
              "NOTE",
              "task",
              "note"
            ],
            "description": "The TickTick project kind."
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "description": "TickTick create-project input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The TickTick project ID."
              },
              "name": {
                "type": "string",
                "description": "The TickTick project name."
              }
            },
            "additionalProperties": true,
            "description": "A TickTick project."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.create_task",
      "service": "ticktick",
      "name": "create_task",
      "description": "Create a TickTick task under a project.",
      "requiredScopes": [
        "ticktick.write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick project ID."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick task title."
          },
          "content": {
            "type": "string",
            "description": "The TickTick task content."
          },
          "desc": {
            "type": "string",
            "description": "The TickTick task description."
          },
          "isAllDay": {
            "type": "boolean",
            "description": "Whether the task is all day."
          },
          "startDate": {
            "type": "string",
            "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
          },
          "dueDate": {
            "type": "string",
            "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
          },
          "timeZone": {
            "type": "string",
            "description": "The TickTick task time zone."
          },
          "reminders": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "TickTick reminder trigger strings."
          },
          "repeatFlag": {
            "type": "string",
            "description": "The TickTick recurrence rule."
          },
          "priority": {
            "anyOf": [
              {
                "const": 0,
                "type": "number"
              },
              {
                "const": 1,
                "type": "number"
              },
              {
                "const": 3,
                "type": "number"
              },
              {
                "const": 5,
                "type": "number"
              }
            ],
            "description": "The TickTick priority value."
          },
          "sortOrder": {
            "type": "integer",
            "description": "The TickTick task sort order."
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The checklist item ID."
                },
                "title": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The checklist item title."
                },
                "status": {
                  "type": "integer",
                  "description": "The checklist item status."
                },
                "isAllDay": {
                  "type": "boolean",
                  "description": "Whether the checklist item is all day."
                },
                "timeZone": {
                  "type": "string",
                  "description": "The checklist item time zone."
                },
                "sortOrder": {
                  "type": "integer",
                  "description": "The checklist item sort order."
                },
                "startDate": {
                  "type": "string",
                  "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
                },
                "completedTime": {
                  "type": "string",
                  "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
                }
              },
              "additionalProperties": false,
              "required": [
                "title"
              ],
              "description": "A checklist item payload sent to TickTick."
            },
            "description": "Checklist items to create under the task."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId",
          "title"
        ],
        "description": "TickTick create-task input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "task": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The TickTick task ID."
              },
              "projectId": {
                "type": "string",
                "description": "The TickTick project ID."
              },
              "title": {
                "type": "string",
                "description": "The TickTick task title."
              }
            },
            "additionalProperties": true,
            "description": "A TickTick task."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.create_task2",
      "service": "ticktick",
      "name": "create_task2",
      "description": "Deprecated compatibility alias for create_task.",
      "requiredScopes": [
        "ticktick.write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick project ID."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick task title."
          },
          "content": {
            "type": "string",
            "description": "The TickTick task content."
          },
          "desc": {
            "type": "string",
            "description": "The TickTick task description."
          },
          "isAllDay": {
            "type": "boolean",
            "description": "Whether the task is all day."
          },
          "startDate": {
            "type": "string",
            "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
          },
          "dueDate": {
            "type": "string",
            "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
          },
          "timeZone": {
            "type": "string",
            "description": "The TickTick task time zone."
          },
          "reminders": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "TickTick reminder trigger strings."
          },
          "repeatFlag": {
            "type": "string",
            "description": "The TickTick recurrence rule."
          },
          "priority": {
            "anyOf": [
              {
                "const": 0,
                "type": "number"
              },
              {
                "const": 1,
                "type": "number"
              },
              {
                "const": 3,
                "type": "number"
              },
              {
                "const": 5,
                "type": "number"
              }
            ],
            "description": "The TickTick priority value."
          },
          "sortOrder": {
            "type": "integer",
            "description": "The TickTick task sort order."
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The checklist item ID."
                },
                "title": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The checklist item title."
                },
                "status": {
                  "type": "integer",
                  "description": "The checklist item status."
                },
                "isAllDay": {
                  "type": "boolean",
                  "description": "Whether the checklist item is all day."
                },
                "timeZone": {
                  "type": "string",
                  "description": "The checklist item time zone."
                },
                "sortOrder": {
                  "type": "integer",
                  "description": "The checklist item sort order."
                },
                "startDate": {
                  "type": "string",
                  "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
                },
                "completedTime": {
                  "type": "string",
                  "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
                }
              },
              "additionalProperties": false,
              "required": [
                "title"
              ],
              "description": "A checklist item payload sent to TickTick."
            },
            "description": "Checklist items to create under the task."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId",
          "title"
        ],
        "description": "TickTick create-task input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "task": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The TickTick task ID."
              },
              "projectId": {
                "type": "string",
                "description": "The TickTick project ID."
              },
              "title": {
                "type": "string",
                "description": "The TickTick task title."
              }
            },
            "additionalProperties": true,
            "description": "A TickTick task."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.delete_project",
      "service": "ticktick",
      "name": "delete_project",
      "description": "Delete a TickTick project by project ID.",
      "requiredScopes": [
        "ticktick.write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick project ID."
          }
        },
        "additionalProperties": false,
        "description": "TickTick project lookup input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "deleted": {
            "const": true,
            "type": "boolean"
          },
          "projectId": {
            "type": "string",
            "description": "The TickTick project ID."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.delete_task",
      "service": "ticktick",
      "name": "delete_task",
      "description": "Delete a TickTick task by project ID and task ID.",
      "requiredScopes": [
        "ticktick.write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick project ID."
          },
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick task ID."
          }
        },
        "additionalProperties": false,
        "description": "TickTick task lookup input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "deleted": {
            "const": true,
            "type": "boolean"
          },
          "projectId": {
            "type": "string",
            "description": "The TickTick project ID."
          },
          "taskId": {
            "type": "string",
            "description": "The TickTick task ID."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.filter_tasks",
      "service": "ticktick",
      "name": "filter_tasks",
      "description": "Filter TickTick tasks by project, date range, priority, tags, and status.",
      "requiredScopes": [
        "ticktick.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "The TickTick project ID."
            },
            "description": "Project IDs to filter by."
          },
          "startDate": {
            "type": "string",
            "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
          },
          "endDate": {
            "type": "string",
            "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
          },
          "priority": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "const": 0,
                  "type": "number"
                },
                {
                  "const": 1,
                  "type": "number"
                },
                {
                  "const": 3,
                  "type": "number"
                },
                {
                  "const": 5,
                  "type": "number"
                }
              ],
              "description": "The TickTick priority value."
            },
            "description": "Priority values to filter by."
          },
          "tag": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Tags to filter by."
          },
          "status": {
            "type": "array",
            "items": {
              "type": "integer",
              "description": "A task status code."
            },
            "description": "Task status codes to filter by."
          }
        },
        "additionalProperties": false,
        "description": "TickTick task filter input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tasks": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The TickTick task ID."
                },
                "projectId": {
                  "type": "string",
                  "description": "The TickTick project ID."
                },
                "title": {
                  "type": "string",
                  "description": "The TickTick task title."
                }
              },
              "additionalProperties": true,
              "description": "A TickTick task."
            },
            "description": "The filtered TickTick tasks."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.get_habit",
      "service": "ticktick",
      "name": "get_habit",
      "description": "Get a TickTick habit by its habit ID.",
      "requiredScopes": [
        "ticktick.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "habitId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick habit ID."
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "habit": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The TickTick habit ID."
              },
              "name": {
                "type": "string",
                "description": "The TickTick habit name."
              }
            },
            "additionalProperties": true,
            "description": "A TickTick habit."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.get_project_by_id",
      "service": "ticktick",
      "name": "get_project_by_id",
      "description": "Get a TickTick project by its project ID.",
      "requiredScopes": [
        "ticktick.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick project ID."
          }
        },
        "additionalProperties": false,
        "description": "TickTick project lookup input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The TickTick project ID."
              },
              "name": {
                "type": "string",
                "description": "The TickTick project name."
              }
            },
            "additionalProperties": true,
            "description": "A TickTick project."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.get_project_with_data",
      "service": "ticktick",
      "name": "get_project_with_data",
      "description": "Get a TickTick project together with its undone tasks and columns.",
      "requiredScopes": [
        "ticktick.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick project ID."
          }
        },
        "additionalProperties": false,
        "description": "TickTick project lookup input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The TickTick project ID."
              },
              "name": {
                "type": "string",
                "description": "The TickTick project name."
              }
            },
            "additionalProperties": true,
            "description": "A TickTick project."
          },
          "tasks": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The TickTick task ID."
                },
                "projectId": {
                  "type": "string",
                  "description": "The TickTick project ID."
                },
                "title": {
                  "type": "string",
                  "description": "The TickTick task title."
                }
              },
              "additionalProperties": true,
              "description": "A TickTick task."
            },
            "description": "The undone tasks under the project."
          },
          "columns": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The TickTick column ID."
                },
                "projectId": {
                  "type": "string",
                  "description": "The TickTick project ID."
                },
                "name": {
                  "type": "string",
                  "description": "The TickTick column name."
                }
              },
              "additionalProperties": true,
              "description": "A TickTick project column."
            },
            "description": "The columns under the project."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.get_task_by_project_and_id",
      "service": "ticktick",
      "name": "get_task_by_project_and_id",
      "description": "Get a TickTick task by project ID and task ID.",
      "requiredScopes": [
        "ticktick.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick project ID."
          },
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick task ID."
          }
        },
        "additionalProperties": false,
        "description": "TickTick task lookup input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "task": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The TickTick task ID."
              },
              "projectId": {
                "type": "string",
                "description": "The TickTick project ID."
              },
              "title": {
                "type": "string",
                "description": "The TickTick task title."
              }
            },
            "additionalProperties": true,
            "description": "A TickTick task."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.get_user_project",
      "service": "ticktick",
      "name": "get_user_project",
      "description": "List the projects available to the connected TickTick account.",
      "requiredScopes": [
        "ticktick.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The TickTick project ID."
                },
                "name": {
                  "type": "string",
                  "description": "The TickTick project name."
                }
              },
              "additionalProperties": true,
              "description": "A TickTick project."
            },
            "description": "The TickTick projects."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.list_all_tasks",
      "service": "ticktick",
      "name": "list_all_tasks",
      "description": "List undone TickTick tasks across projects.",
      "requiredScopes": [
        "ticktick.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of tasks to return."
          },
          "projectIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "The TickTick project ID."
            },
            "description": "Project IDs to include."
          },
          "includeClosedProjects": {
            "type": "boolean",
            "description": "Whether closed projects should be included."
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tasks": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The TickTick task ID."
                },
                "projectId": {
                  "type": "string",
                  "description": "The TickTick project ID."
                },
                "title": {
                  "type": "string",
                  "description": "The TickTick task title."
                }
              },
              "additionalProperties": true,
              "description": "A TickTick task."
            },
            "description": "Aggregated undone tasks."
          },
          "totalTasks": {
            "type": "integer",
            "description": "The number of tasks returned."
          },
          "projectsScanned": {
            "type": "integer",
            "description": "The number of projects scanned."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.list_completed_tasks",
      "service": "ticktick",
      "name": "list_completed_tasks",
      "description": "List completed TickTick tasks.",
      "requiredScopes": [
        "ticktick.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "The TickTick project ID."
            },
            "description": "Project IDs to filter by."
          },
          "startDate": {
            "type": "string",
            "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
          },
          "endDate": {
            "type": "string",
            "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
          }
        },
        "additionalProperties": false,
        "description": "TickTick completed-task filter input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tasks": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The TickTick task ID."
                },
                "projectId": {
                  "type": "string",
                  "description": "The TickTick project ID."
                },
                "title": {
                  "type": "string",
                  "description": "The TickTick task title."
                }
              },
              "additionalProperties": true,
              "description": "A TickTick task."
            },
            "description": "The completed TickTick tasks."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.list_habit_checkins",
      "service": "ticktick",
      "name": "list_habit_checkins",
      "description": "List TickTick habit check-ins over a date stamp range.",
      "requiredScopes": [
        "ticktick.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "habitIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "The TickTick habit ID."
            },
            "description": "The TickTick habit IDs to query.",
            "minItems": 1
          },
          "from": {
            "type": "integer",
            "description": "Start date stamp in YYYYMMDD format."
          },
          "to": {
            "type": "integer",
            "description": "End date stamp in YYYYMMDD format."
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "checkins": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A TickTick habit check-in group."
            },
            "description": "The TickTick habit check-in groups."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.list_habits",
      "service": "ticktick",
      "name": "list_habits",
      "description": "List habits available to the connected TickTick account.",
      "requiredScopes": [
        "ticktick.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "habits": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The TickTick habit ID."
                },
                "name": {
                  "type": "string",
                  "description": "The TickTick habit name."
                }
              },
              "additionalProperties": true,
              "description": "A TickTick habit."
            },
            "description": "The TickTick habits."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.move_tasks",
      "service": "ticktick",
      "name": "move_tasks",
      "description": "Move one or more TickTick tasks between projects.",
      "requiredScopes": [
        "ticktick.write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "moves": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "fromProjectId": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The TickTick project ID."
                },
                "toProjectId": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The TickTick project ID."
                },
                "taskId": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The TickTick task ID."
                }
              },
              "additionalProperties": false
            },
            "description": "The TickTick task move operations.",
            "minItems": 1
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "moves": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A move result."
            },
            "description": "The TickTick move results."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.update_project",
      "service": "ticktick",
      "name": "update_project",
      "description": "Update a TickTick project by project ID.",
      "requiredScopes": [
        "ticktick.write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick project ID."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick project name."
          },
          "color": {
            "type": "string",
            "description": "The TickTick project color."
          },
          "sortOrder": {
            "type": "integer",
            "description": "The TickTick project sort order."
          },
          "viewMode": {
            "type": "string",
            "enum": [
              "list",
              "kanban",
              "timeline"
            ],
            "description": "The TickTick project view mode."
          },
          "kind": {
            "type": "string",
            "enum": [
              "TASK",
              "NOTE",
              "task",
              "note"
            ],
            "description": "The TickTick project kind."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId"
        ],
        "description": "TickTick update-project input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The TickTick project ID."
              },
              "name": {
                "type": "string",
                "description": "The TickTick project name."
              }
            },
            "additionalProperties": true,
            "description": "A TickTick project."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ticktick.update_task",
      "service": "ticktick",
      "name": "update_task",
      "description": "Update a TickTick task by task ID and project ID.",
      "requiredScopes": [
        "ticktick.write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick task ID."
          },
          "id": {
            "type": "string",
            "description": "Optional task ID repeated in the request body."
          },
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick project ID."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "The TickTick task title."
          },
          "content": {
            "type": "string",
            "description": "The TickTick task content."
          },
          "desc": {
            "type": "string",
            "description": "The TickTick task description."
          },
          "isAllDay": {
            "type": "boolean",
            "description": "Whether the task is all day."
          },
          "startDate": {
            "type": "string",
            "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
          },
          "dueDate": {
            "type": "string",
            "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
          },
          "timeZone": {
            "type": "string",
            "description": "The TickTick task time zone."
          },
          "reminders": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "TickTick reminder trigger strings."
          },
          "repeatFlag": {
            "type": "string",
            "description": "The TickTick recurrence rule."
          },
          "priority": {
            "anyOf": [
              {
                "const": 0,
                "type": "number"
              },
              {
                "const": 1,
                "type": "number"
              },
              {
                "const": 3,
                "type": "number"
              },
              {
                "const": 5,
                "type": "number"
              }
            ],
            "description": "The TickTick priority value."
          },
          "sortOrder": {
            "type": "integer",
            "description": "The TickTick task sort order."
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The checklist item ID."
                },
                "title": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The checklist item title."
                },
                "status": {
                  "type": "integer",
                  "description": "The checklist item status."
                },
                "isAllDay": {
                  "type": "boolean",
                  "description": "Whether the checklist item is all day."
                },
                "timeZone": {
                  "type": "string",
                  "description": "The checklist item time zone."
                },
                "sortOrder": {
                  "type": "integer",
                  "description": "The checklist item sort order."
                },
                "startDate": {
                  "type": "string",
                  "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
                },
                "completedTime": {
                  "type": "string",
                  "description": "The TickTick date-time string in yyyy-MM-dd'T'HH:mm:ssZ format."
                }
              },
              "additionalProperties": false,
              "required": [
                "title"
              ],
              "description": "A checklist item payload sent to TickTick."
            },
            "description": "Checklist items to create under the task."
          }
        },
        "additionalProperties": false,
        "required": [
          "taskId",
          "projectId"
        ],
        "description": "TickTick update-task input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "task": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The TickTick task ID."
              },
              "projectId": {
                "type": "string",
                "description": "The TickTick project ID."
              },
              "title": {
                "type": "string",
                "description": "The TickTick task title."
              }
            },
            "additionalProperties": true,
            "description": "A TickTick task."
          }
        },
        "additionalProperties": false
      }
    }
  ]
}
