Strings - AI Assistant (Beta) ✅ · GPT-Aktionen
TODO Plugin
Manage tasks, sync sessions with Google Calendar, and handle user preferences.
GET /sync_sessionRetrieve user info and sync session.Fetch user info, tasks, events for 7 days, sync Calendar. Ensure no conflicts & follow preferences. Alert for overdue sessions & prompt user action. Schedule new session events.
POST /update-user-profileUpdate user profile details.Update user profile such as username, time zone, and week start day. Ensure updates reflect in Google Calendar and validate all fields.
POST /add_or_update_user_preferencesModify user preferences dynamically.Add, update, or delete user preferences. Ensure preferences align with user needs and improve scheduling decisions. Confirm changes with user.
POST /schedule-eventsSchedule events in Google Calendar.Add events to Google Calendar, ensuring no conflicts with existing events. Adhere to user preferences and task scheduling guidelines.
POST /reschedule_or_edit_eventsReschedule or edit calendar events.Update event start dates, names, and descriptions. Align changes with user's schedule and preferences. Avoid conflicts with other tasks or events.
POST /complete_sessionsMark completed sessions and update tasks.Update event status to completed in Calendar and Firestore. Adjust task duration and ensure all related sessions are tracked. Confirm updates with user.
POST /cancel_sessionsCancel sessions and remove from Calendar.Remove events from Calendar and mark tasks as canceled. Confirm cancellation with user and ensure no conflicts.
POST /add_tasksAdd new tasks with detailed info.Create tasks with titles, descriptions, durations, and scheduling preferences. Server sets default due dates. Sync with user's calendar for scheduling. Ensure alignment with preferences.
PUT /update_taskUpdate task or subtask details.Modify task or subtask properties like title, description, and duration. Ensure updates reflect in the user's schedule and preferences. Confirm changes with the user.
POST /delete_tasksDelete specified tasks or subtasks.Remove tasks or subtasks from Firestore and Google Calendar. Ensure tasks are no longer scheduled and confirm deletions with user.
POST /complete-tasksMark tasks or subtasks as completed.Update status of tasks or subtasks to completed. Reflect changes in Firestore and Google Calendar. Ensure all related sessions are tracked.
GET /get-all-user-tasksGet all tasks associated with userRetrieve all tasks for the user from Firestore. Organized and accessible overview of all user tasks. Use this to manage tasks effectively.
GET /get-all-pending-tasksGet all pending tasks for user.Fetch all pending tasks. Use to manage and prioritize tasks needing attention. Ensure tasks are tracked and updated.
Ursprüngliches API-Schema
{
"openapi": "3.1.0",
"info": {
"title": "TODO Plugin",
"description": "Manage tasks, sync sessions with Google Calendar, and handle user preferences.",
"version": "v1"
},
"servers": [
{
"url": "https://taskrush.app"
}
],
"paths": {
"/sync_session": {
"get": {
"operationId": "syncSession",
"x-openai-isConsequential": false,
"summary": "Retrieve user info and sync session.",
"description": "Fetch user info, tasks, events for 7 days, sync Calendar. Ensure no conflicts & follow preferences. Alert for overdue sessions & prompt user action. Schedule new session events.",
"responses": {
"200": {
"description": "User information and pending tasks",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The username of the user."
},
"time_zone": {
"type": "string",
"description": "The time zone of the user."
},
"user_preferences": {
"type": "string",
"description": "User preferences."
},
"current_time": {
"type": "string",
"description": "Current time in user's time zone."
},
"calendar_events_next_7_days": {
"type": "string",
"description": "Formatted string of events for the next 7 days."
},
"task_sessions_info": {
"type": "string",
"description": "Information about upcoming sessions for pending tasks."
}
}
}
}
}
}
}
}
},
"/update-user-profile": {
"post": {
"operationId": "updateUserProfile",
"x-openai-isConsequential": false,
"summary": "Update user profile details.",
"description": "Update user profile such as username, time zone, and week start day. Ensure updates reflect in Google Calendar and validate all fields.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"new_username": {
"type": "string",
"description": "The new username for the user."
},
"time_zone": {
"type": "string",
"description": "The updated time zone for the user, in IANA Time Zone Database format.",
"pattern": "^([A-Za-z]+(?:/[A-Za-z_]+)+)$"
},
"week_starts_on": {
"type": "string",
"description": "The first day of the week for the user."
}
}
}
}
}
},
"responses": {
"200": {
"description": "User profile successfully updated",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Confirmation that the user profile was updated."
}
}
}
}
}
}
}
}
},
"/add_or_update_user_preferences": {
"post": {
"operationId": "addOrUpdateUserPreferences",
"summary": "Modify user preferences dynamically.",
"description": "Add, update, or delete user preferences. Ensure preferences align with user needs and improve scheduling decisions. Confirm changes with user.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"add",
"update",
"delete"
],
"description": "The action to perform on the user's preferences."
},
"preference": {
"type": "string",
"description": "The preference text to add or update. Required for 'add' and 'update' actions."
},
"index": {
"type": "integer",
"description": "The index of the preference to update or delete. Required for 'update' and 'delete' actions."
}
},
"required": [
"action"
]
}
}
}
},
"responses": {
"200": {
"description": "User preference successfully modified."
},
"400": {
"description": "Invalid request."
}
}
}
},
"/schedule-events": {
"post": {
"operationId": "scheduleEvents",
"x-openai-isConsequential": false,
"summary": "Schedule events in Google Calendar.",
"description": "Add events to Google Calendar, ensuring no conflicts with existing events. Adhere to user preferences and task scheduling guidelines.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"event_list": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Event"
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "Events scheduled successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Confirmation that the events were scheduled successfully."
}
}
}
}
}
}
}
}
},
"/reschedule_or_edit_events": {
"post": {
"operationId": "rescheduleEvents",
"x-openai-isConsequential": false,
"summary": "Reschedule or edit calendar events.",
"description": "Update event start dates, names, and descriptions. Align changes with user's schedule and preferences. Avoid conflicts with other tasks or events.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"event_id": {
"type": "string",
"description": "The ID of the event to reschedule or edit."
},
"start_date": {
"type": "string",
"format": "date-time",
"description": "The new start date and time for the event."
},
"name": {
"type": "string",
"description": "The new name for the event."
},
"description": {
"type": "string",
"description": "The new description for the event."
}
}
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "Events rescheduled successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Confirmation that the events were rescheduled successfully."
},
"event_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of event IDs that were successfully rescheduled."
}
}
}
}
}
}
}
}
},
"/complete_sessions": {
"post": {
"operationId": "completeSessions",
"x-openai-isConsequential": false,
"summary": "Mark completed sessions and update tasks.",
"description": "Update event status to completed in Calendar and Firestore. Adjust task duration and ensure all related sessions are tracked. Confirm updates with user.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"event_ids": {
"type": "array",
"items": {
"type": "string",
"description": "List of event IDs to mark as completed."
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "Events updated successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Confirmation that the events were updated successfully."
}
}
}
}
}
}
}
}
},
"/cancel_sessions": {
"post": {
"operationId": "cancelSessions",
"x-openai-isConsequential": true,
"summary": "Cancel sessions and remove from Calendar.",
"description": "Remove events from Calendar and mark tasks as canceled. Confirm cancellation with user and ensure no conflicts.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"event_ids": {
"type": "array",
"items": {
"type": "string",
"description": "List of event IDs to cancel."
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "Sessions canceled successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Confirmation that the sessions were canceled successfully."
}
}
}
}
}
}
}
}
},
"/add_tasks": {
"post": {
"operationId": "addTasks",
"x-openai-isConsequential": false,
"summary": "Add new tasks with detailed info.",
"description": "Create tasks with titles, descriptions, durations, and scheduling preferences. Server sets default due dates. Sync with user's calendar for scheduling. Ensure alignment with preferences.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"tasks": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Task"
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "Tasks added successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"task_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of IDs for the newly created tasks."
}
}
}
}
}
}
}
}
},
"/update_task": {
"put": {
"operationId": "updateTask",
"x-openai-isConsequential": false,
"summary": "Update task or subtask details.",
"description": "Modify task or subtask properties like title, description, and duration. Ensure updates reflect in the user's schedule and preferences. Confirm changes with the user.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"item_id": {
"type": "string",
"description": "The ID of the task or subtask being updated."
},
"updates": {
"$ref": "#/components/schemas/Task"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Task successfully updated",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Confirmation that the task was successfully updated."
},
"item_id": {
"type": "string",
"description": "The ID of the task that was updated."
}
}
}
}
}
}
}
}
},
"/delete_tasks": {
"post": {
"operationId": "deleteTasks",
"x-openai-isConsequential": true,
"summary": "Delete specified tasks or subtasks.",
"description": "Remove tasks or subtasks from Firestore and Google Calendar. Ensure tasks are no longer scheduled and confirm deletions with user.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"task_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of task IDs to be deleted."
}
}
}
}
}
},
"responses": {
"200": {
"description": "Tasks deleted successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Confirmation that the tasks were successfully deleted."
}
}
}
}
}
}
}
}
},
"/complete-tasks": {
"post": {
"operationId": "completeTasks",
"x-openai-isConsequential": false,
"summary": "Mark tasks or subtasks as completed.",
"description": "Update status of tasks or subtasks to completed. Reflect changes in Firestore and Google Calendar. Ensure all related sessions are tracked.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string",
"description": "An array of task or subtask IDs to mark as completed."
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "Tasks or subtasks completed successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Confirmation that the tasks or subtasks were successfully marked as completed."
}
}
}
}
}
}
}
}
},
"/get-all-user-tasks": {
"get": {
"operationId": "getAllUserTasks",
"x-openai-isConsequential": false,
"summary": "Get all tasks associated with user",
"description": "Retrieve all tasks for the user from Firestore. Organized and accessible overview of all user tasks. Use this to manage tasks effectively.",
"responses": {
"200": {
"description": "List of tasks associated with the user",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Task"
}
}
}
}
}
}
}
},
"/get-all-pending-tasks": {
"get": {
"operationId": "getAllPendingTasks",
"x-openai-isConsequential": false,
"summary": "Get all pending tasks for user.",
"description": "Fetch all pending tasks. Use to manage and prioritize tasks needing attention. Ensure tasks are tracked and updated.",
"responses": {
"200": {
"description": "List of pending tasks for user",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Task"
}
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"Task": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The unique identifier of the task."
},
"title": {
"type": "string",
"description": "The title or name of the task."
},
"description": {
"type": "string",
"description": "A detailed description of the task."
},
"status": {
"type": "string",
"description": "Current status of the task (e.g., pending, completed, archived)."
},
"category": {
"type": "string",
"description": "Category or classification of the task."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags or keywords associated with the task."
},
"dueDate": {
"type": "string",
"format": "date-time",
"description": "The deadline or due date for the task."
},
"priority": {
"type": "integer",
"description": "Priority level of the task, usually as a numerical value."
},
"recurring": {
"type": "boolean",
"description": "Indicates whether the task is recurring."
},
"repeat_frequency": {
"type": "object",
"properties": {
"interval_type": {
"type": "string",
"description": "Type of interval for repeat. Possible values are daily, weekly, or monthly."
},
"interval_count": {
"type": "integer",
"description": "Number specifying how often the task repeats within the cycle. (ie. if a weekly task, how many days per week)"
},
"days_of_week": {
"type": "array",
"items": {
"type": "string"
},
"description": "Specific days of the week when the task repeats."
}
}
},
"subtasks": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Subtask"
},
"description": "List of associated subtasks."
},
"duration": {
"type": "integer",
"description": "Duration of the task in minutes."
},
"time_remaining": {
"type": "integer",
"description": "Time remaining to complete the task in minutes."
},
"scheduling_preferences": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of scheduling preferences for the task."
}
}
},
"Subtask": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "The title or name of the subtask."
},
"description": {
"type": "string",
"description": "A detailed description of the subtask."
},
"status": {
"type": "string",
"description": "Current status of the subtask (e.g., pending, completed, archived)."
},
"duration": {
"type": "integer",
"description": "Duration of the subtask in minutes."
}
},
"required": [
"title",
"status",
"duration"
],
"description": "A subtask object, representing a smaller, manageable part of a larger task."
},
"Event": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "The title of the event."
},
"description": {
"type": "string",
"description": "A detailed description of the event."
},
"start_time": {
"type": "string",
"format": "date-time",
"description": "The start time of the event."
},
"duration": {
"type": "integer",
"description": "The duration of the event in minutes."
},
"task_id": {
"type": "string",
"description": "The ID of the associated task or subtask."
}
}
}
}
}
}