add_organization_member
ChatGPTAdd a member to an organization by email. Requires admin or owner role. NOTE: organization membership alone does NOT grant access to any project — the user will not see a project until they are also added to it via invite_collaborator. After adding the member, invite them to the relevant project(s).
add_task_dependency
ChatGPTCreate a dependency between two tasks
attach_files_to_task
ChatGPTAttach existing project files to a task. The files must belong to the same project as the task
create_goal
ChatGPTCreate a new project (goal). If organizationId is provided, creates within that organization.
create_kanban_column
ChatGPTCreate a new kanban column in a project
create_list
ChatGPTCreate a new task list within a project
create_organization
ChatGPTCreate a new organization. The creator becomes the owner.
create_role
ChatGPTCreate a new role for a project
create_tag
ChatGPTCreate a new tag
create_task
ChatGPTCreate a new task in a project
delete_file
ChatGPTDelete a file forever from the project and from every task it is attached to
delete_goal
ChatGPTDelete a project (goal)
delete_kanban_column
ChatGPTDelete a kanban column
delete_list
ChatGPTDelete a task list
delete_organization
ChatGPTDelete an organization. Only the owner can delete. Personal workspaces cannot be deleted.
delete_role
ChatGPTDelete a role from a project
delete_tag
ChatGPTDelete a tag
delete_task
ChatGPTDelete a task
delete_task_dependency
ChatGPTDelete a task dependency edge
delete_time_entry
ChatGPTDelete a time entry (writes a record to history.time_entries before deletion).
detach_file_from_task
ChatGPTRemove a file from a task. The file itself stays in the project
get_active_timer
ChatGPTGet the user's currently running timer (if any).
get_agenda
ChatGPTGet the user's agenda across every project in one call: tasks due today, upcoming tasks, recently completed ones, and tasks with no deadline. Use this for questions like "what do I have today", "what is coming up" or "what did I finish recently" instead of listing projects and their tasks one by one — this is the same data the app's main screen shows, and the split into today/upcoming is computed on the server in the given timezone.
get_file
ChatGPTGet one file by ID: name, mime type, size, uploader, creation date and the tasks it is attached to
get_file_download_url
ChatGPTIssue a short-lived (5 minutes) download link for a file. No authentication is needed to open it. Fails when file storage is not configured on the server.
get_organization
ChatGPTGet organization details by ID
get_task
ChatGPTGet a single task by its ID with full details
get_task_history
ChatGPTGet the change history of a task
get_time_contributors
ChatGPTList users who logged time in the given projects and date range, with total seconds and entry counts. Useful for "who worked on this project last month".
get_time_report
ChatGPTAggregated time report. Choose scope: by-day (daily totals), by-user (per member), by-task (per task), summary (totals + billable). Filter by org, optional projects, optional user, date range.
get_time_summary
ChatGPTGet aggregated time summary for a task or a project (goal).
invite_collaborator
ChatGPTInvite a user to a project by email
list_collaborators
ChatGPTList all collaborators across all projects
list_collaborators_for_goal
ChatGPTList collaborators for a specific project
list_files
ChatGPTList files attached to a project or to one task. With taskId returns the files of that task; without it returns the project files page by page (nextCursor → cursor). Each file carries linkedTaskIds — the tasks it is attached to.
list_goals
ChatGPTList all projects (goals) accessible to the current user. Optionally filter by organization.
list_kanban_columns
ChatGPTGet all kanban columns for a project
list_lists
ChatGPTGet all task lists within a project
list_notifications
ChatGPTGet user notifications
list_organization_members
ChatGPTList all members of an organization
list_organizations
ChatGPTList all organizations the current user belongs to
list_permissions
ChatGPTList all available permissions
list_role_permissions_for_goal
ChatGPTGet role-to-permission mappings for a project
list_roles
ChatGPTList all roles for a project
list_tags
ChatGPTList all tags accessible to the current user
list_task_dependencies
ChatGPTList all task dependency edges in a project
list_tasks
ChatGPTList tasks for a specific project (goal). Returns paginated results.
list_time_entries
ChatGPTList time entries with optional filters (goalId, taskId, userId, date range).
log_time
ChatGPTLog a manual time entry retroactively (no time-period restrictions).
mark_all_notifications_read
ChatGPTMark all notifications as read
mark_notification_read
ChatGPTMark a notification as read
remove_collaborator
ChatGPTRemove a user from a project
remove_organization_member
ChatGPTRemove a member from an organization. Cannot remove the owner.
rename_file
ChatGPTRename a file. The original extension is kept
restore_task_from_history
ChatGPTRestore a task to a previous state from its history
start_timer
ChatGPTStart a timer for the given task. Returns {entry, autoStoppedEntry} — autoStoppedEntry is the previous active timer that was stopped (null if there was no active timer).
stop_timer
ChatGPTStop the active timer (or specific entry by id) and return the closed entry.
toggle_collaborator_roles
ChatGPTUpdate roles for a collaborator in a project
toggle_role_permission
ChatGPTAdd or remove a permission from a role
toggle_task_assignees
ChatGPTAssign or unassign users to/from a task
toggle_task_tag
ChatGPTAdd or remove a tag from a task
update_goal
ChatGPTUpdate a project (goal) — name, description, color
update_kanban_column
ChatGPTUpdate a kanban column
update_list
ChatGPTUpdate a task list
update_organization
ChatGPTUpdate organization name, slug, or logo. Requires admin or owner role.
update_organization_member_role
ChatGPTChange a member role in an organization. Cannot change the owner role.
update_tag
ChatGPTUpdate a tag
update_task
ChatGPTUpdate an existing task (description, status, priority, dates, cost, etc.)
update_time_entry
ChatGPTUpdate fields of an existing time entry (cannot edit started/ended of a running timer).