TickTick Assistant
TickTick Assistant · GPT アクション
TickTick OpenAPI
OpenAPI that allows the user to create and manage a TODO list using ChatGPT.
GET /open/v1/projectGet the list of projectsPOST /open/v1/projectCreate ProjectGET /open/v1/project/{projectId}Get a project by IDPOST /open/v1/project/{projectId}Update ProjectDELETE /open/v1/project/{projectId}Delete ProjectGET /open/v1/project/{projectId}/dataGet project with data by IDPOST /open/v1/taskCreate a task to TickTickPOST /open/v1/task/{taskId}Update a task to TickTickPOST /open/v1/project/{projectId}/task/{taskId}/completeComplete a task by project ID and task IDDELETE /open/v1/project/{projectId}/task/{taskId}Delete a task by project ID and task IDGET /open/v1/project/{projectId}/task/{taskId}Get Task By Project ID And Task ID
元の API スキーマ
{
"openapi": "3.0.1",
"info": {
"title": "TickTick OpenAPI",
"description": "OpenAPI that allows the user to create and manage a TODO list using ChatGPT.",
"version": "v1"
},
"servers": [
{
"url": "https://ticktick.com"
}
],
"paths": {
"/open/v1/project": {
"get": {
"operationId": "getAllProjects",
"summary": "Get the list of projects",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Project"
}
}
}
}
}
}
},
"post": {
"operationId": "createProject",
"summary": "Create Project",
"requestBody": {
"description": "New project info",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Project"
},
"examples": {
"newtask": {
"summary": "Create a new project",
"value": {
"title": "new project title"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Project"
}
}
}
}
}
}
},
"/open/v1/project/{projectId}": {
"get": {
"operationId": "getProjectById",
"summary": "Get a project by ID",
"parameters": [
{
"name": "projectId",
"in": "path",
"required": true,
"description": "The ID of project.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Project"
}
}
}
}
}
},
"post": {
"operationId": "updateProject",
"summary": "Update Project",
"parameters": [
{
"name": "projectId",
"in": "path",
"required": true,
"description": "The ID of project.",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "Updated project info",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Project"
},
"examples": {
"newtask": {
"summary": "Update an existing project",
"value": {
"title": "updated project title"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Project"
}
}
}
}
}
},
"delete": {
"operationId": "deleteProject",
"summary": "Delete Project",
"parameters": [
{
"name": "projectId",
"in": "path",
"required": true,
"description": "The ID of project.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/open/v1/project/{projectId}/data": {
"get": {
"operationId": "getProjectWithDataById",
"summary": "Get project with data by ID",
"parameters": [
{
"name": "projectId",
"in": "path",
"required": true,
"description": "The ID of project.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProjectData"
}
}
}
}
}
}
},
"/open/v1/task": {
"post": {
"operationId": "createSingleTask",
"summary": "Create a task to TickTick",
"requestBody": {
"description": "New task info",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Task"
},
"examples": {
"newtask": {
"summary": "Create a new task example",
"value": {
"title": "new task title"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Task"
}
}
}
}
}
}
},
"/open/v1/task/{taskId}": {
"post": {
"operationId": "updateSingleTask",
"summary": "Update a task to TickTick",
"parameters": [
{
"name": "taskId",
"in": "path",
"required": true,
"description": "The identifier of task.",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "Updated task info",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Task"
},
"examples": {
"newtask": {
"summary": "Update a new task example",
"value": {
"title": "updated task title"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Task"
}
}
}
}
}
}
},
"/open/v1/project/{projectId}/task/{taskId}/complete": {
"post": {
"operationId": "completeSpecifyTask",
"summary": "Complete a task by project ID and task ID",
"parameters": [
{
"name": "projectId",
"in": "path",
"required": true,
"description": "The ID of project which task in",
"schema": {
"type": "string"
}
},
{
"name": "taskId",
"in": "path",
"required": true,
"description": "The ID of task",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/open/v1/project/{projectId}/task/{taskId}": {
"delete": {
"operationId": "deleteSpecifyTask",
"summary": "Delete a task by project ID and task ID",
"parameters": [
{
"name": "projectId",
"in": "path",
"required": true,
"description": "The ID of project which task in",
"schema": {
"type": "string"
}
},
{
"name": "taskId",
"in": "path",
"required": true,
"description": "The ID of task",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK"
}
}
},
"get": {
"operationId": "getTaskByProjectIdAndTaskId",
"summary": "Get Task By Project ID And Task ID",
"parameters": [
{
"name": "projectId",
"in": "path",
"required": true,
"description": "The ID of project which task in",
"schema": {
"type": "string"
}
},
{
"name": "taskId",
"in": "path",
"required": true,
"description": "The ID of task",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK,",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Task"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"ChecklistItem": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Subtask identifier"
},
"title": {
"type": "string",
"description": "Subtask title"
},
"status": {
"type": "integer",
"format": "int32",
"description": "The completion status of subtask, 0 for normal, 1 for completed"
},
"completedTime": {
"type": "string",
"description": "Subtask completed time in \"yyyy-MM-dd'T'HH:mm:ssZ\""
},
"isAllDay": {
"type": "boolean",
"description": "All day"
},
"sortOrder": {
"type": "integer",
"format": "int64",
"description": "Subtask sort order"
},
"startDate": {
"type": "string",
"description": "Subtask start date time in \"yyyy-MM-dd'T'HH:mm:ssZ\""
},
"timeZone": {
"type": "string",
"description": "Subtask timezone, Example \"America/Los_Angeles\""
}
}
},
"Task": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Task identifier"
},
"projectId": {
"type": "string",
"description": "Task project id"
},
"title": {
"type": "string",
"description": "Task title"
},
"isAllDay": {
"type": "boolean",
"description": "All day, true or false"
},
"completedTime": {
"type": "string",
"description": "Task completed time in \"yyyy-MM-dd'T'HH:mm:ssZ\", Example \"2019-11-13T03:00:00+0000"
},
"content": {
"type": "string",
"description": "Task content"
},
"desc": {
"type": "string",
"description": "Task description of checklist"
},
"dueDate": {
"type": "string",
"description": "Task due date time in \"yyyy-MM-dd'T'HH:mm:ssZ\", Example \"2019-11-13T03:00:00+0000\""
},
"items": {
"type": "array",
"description": "Subtasks of Task",
"items": {
"$ref": "#/components/schemas/ChecklistItem"
}
},
"priority": {
"type": "integer",
"format": "int32",
"description": "Task priority, None is 0, Low is 1, Medium is 3, High is 5"
},
"reminders": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of reminder triggers, Example [\"TRIGGER:P0DT9H0M0S\",\"TRIGGER:PT0S\"]"
},
"repeatFlag": {
"type": "string",
"description": "Recurring rules of task, Example \"RRULE:FREQ=DAILY;INTERVAL=1\""
},
"sortOrder": {
"type": "integer",
"format": "int64",
"description": "Task sort order, Example 12345"
},
"startDate": {
"type": "string",
"description": "Start date time in \"yyyy-MM-dd'T'HH:mm:ssZ\", Example \"2023-04-23T12:00:00+0000\""
},
"status": {
"type": "integer",
"format": "int32",
"description": "Task completion status, Normal is 0, Completed is 2"
},
"timeZone": {
"type": "string",
"description": "Task timezone, Example \"America/Los_Angeles\""
}
}
},
"Project": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Project identifier"
},
"name": {
"type": "string",
"description": "Project name"
},
"color": {
"type": "string",
"description": "Project color"
},
"sortOrder": {
"type": "integer",
"format": "int64",
"description": "Order value"
},
"closed": {
"type": "boolean",
"description": "Project closed, true or false"
},
"groupId": {
"type": "string",
"description": "Project group identifier"
},
"viewMode": {
"type": "string",
"description": "View mode of project, \"list\" or \"kanban\" or \"timeline\""
},
"permission": {
"type": "string",
"description": "Permission of project, \"read\" or \"write\" or \"comment\""
},
"kind": {
"type": "string",
"description": "Kind of project, \"TASK\" or \"NOTE\""
}
}
},
"Column": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Column identifier"
},
"projectId": {
"type": "string",
"description": "Project identifier"
},
"name": {
"type": "string",
"description": "Column name"
},
"sortOrder": {
"type": "integer",
"format": "int64",
"description": "Order value"
}
}
},
"ProjectData": {
"type": "object",
"properties": {
"project": {
"description": "Project info",
"$ref": "#/components/schemas/Project"
},
"tasks": {
"type": "array",
"description": "Undone tasks under project",
"items": {
"$ref": "#/components/schemas/Task"
}
},
"columns": {
"type": "array",
"description": "Columns under project",
"items": {
"$ref": "#/components/schemas/Column"
}
}
}
}
}
}
}