Todo

Premium users can now create collaborative checklists in any chat to track tasks and coordinate teams — or manage shopping and to-do lists.

todoItem#cba9a52f id:int title:TextWithEntities = TodoItem;
todoList#49b92a26 flags:# others_can_append:flags.0?true others_can_complete:flags.1?true title:TextWithEntities list:Vector<TodoItem> = TodoList;

inputMediaTodo#9fc55fde todo:TodoList = InputMedia;

messageMediaToDo#8a53b014 flags:# todo:TodoList completions:flags.0?Vector<TodoCompletion> = MessageMedia;

messageActionTodoCompletions#cc7c5c89 completed:Vector<int> incompleted:Vector<int> = MessageAction;
messageActionTodoAppendTasks#c7edbc83 list:Vector<TodoItem> = MessageAction;

---functions---

messages.appendTodoList#21a61057 peer:InputPeer msg_id:int list:Vector<TodoItem> = Updates;

messages.toggleTodoCompleted#d3e03124 peer:InputPeer msg_id:int completed:Vector<int> incompleted:Vector<int> = Updates;

Use messages.sendMedia with inputMediaTodo to post a to-do list.

During creation, todoList.others_can_append can be set to allow users different from yourself to invoke messages.appendTodoList to append items to the list.
todoList.others_can_complete can be set to allow users different from yourself to mark items as (not) completed with messages.toggleTodoCompleted.

The passed todoItems are composed of a title and a positive (non-zero) ID, unique within the context of the current list.

Use messages.appendTodoList to append items to the to-do list after creation: this will emit service messages of type messageActionTodoAppendTasks.
The newly appended todoItems must have an ID that isn't already contained within the item list, otherwise a TODO_ITEM_DUPLICATE RPC error will be emitted.

Use messages.toggleTodoCompleted to toggle some items as completed or not completed using their IDs: this will emit service messages of type messageActionTodoCompletions.