add_to_list
ChatGPTAdd movies/series to one of the user's lists (by list_id or list_title; includes lists shared with them). Titles already on the list are skipped. On a shared list the additions are visible to the other members, who are notified. Identify titles by tmdb_id + media_type, together with the title, when you have them (e.g. from display_movies_cards results) — a bare title can match a different film or a series of the same name; otherwise give title, year, media_type and director. Returns what each title matched (added_titles — check it), and titles not found or ambiguous (those are not added).
add_to_wishlist
ChatGPTAdd a movie to the user's wishlist (want to watch later).
add_watched
ChatGPTMark a movie as already watched. Can also set a rating (1-10) at the same time.
check_movies_status
ChatGPTCheck if movies are already in user's wishlist or watched list. Returns status for filtering.
create_list
ChatGPTCreate a named list (collection) of movies/series in the user's MoviePick, optionally filled right away — e.g. 'cozy detectives for the weekend' or 'my top 10 of 2025' (ranked). Private by default; visibility 'link' makes it viewable by anyone with the URL. The user can invite friends to edit it together from the app. Identify titles by tmdb_id + media_type, together with the title, when you have them (e.g. from display_movies_cards results) — a bare title can match a different film or a series of the same name; otherwise give title, year, media_type and director. Returns the list URL, what each title matched (added_titles — check it), and titles not found or ambiguous (those are not added).
display_movies_cards
ChatGPTDisplays movies as interactive cards with posters, ratings, and trailers. Use this tool to visually present movies to the user after retrieving them via list_watched, list_wishlist, extract_url, or web_search.
get_diary
ChatGPTThe user's watch diary for a month (YYYY-MM) or a year (YYYY): every dated viewing (rewatches included) with rating, where, with whom, mood and note, the TV episodes watched per day, and a summary (films, hours, top genres and directors, best film). Use for 'what did I watch in September', 'how many films this year', a recap of their year.
get_list
ChatGPTThe titles on one of the user's lists (by list_id or list_title), in list order, with notes, votes and whether the user has watched each. Pair with display_movies_cards to show them.
get_series_progress
ChatGPTWhere the user is in their TV series: with a title, per-season watched/aired counts and the next episode for that show; without, every show they're watching grouped as new (new episodes out), watching, waiting (caught up, more coming) or dropped.
list_my_lists
ChatGPTThe user's MoviePick lists (collections): their own, lists they edit together with others, and lists they saved. Returns ids, titles, counts and share URLs.
list_watched
ChatGPTRetrieves the user's watched movies list with ratings and dates. Returns structured data for analysis. Pair with display_movies_cards to present results visually.
list_wishlist
ChatGPTRetrieves the user's wishlist of movies they want to watch. Returns structured data for analysis. Pair with display_movies_cards to present results visually.
log_watch
ChatGPTLog a viewing in the user's watch diary: when they watched a movie (or a whole show), whether it's a rewatch, the rating they gave, where (cinema / home / streaming service), with whom, the mood afterwards and a short note. Use when the user says they watched something ("saw Dune yesterday at the cinema with Anna"). The first viewing also marks the title watched; logging an already-watched title records a rewatch. Resolve relative dates (yesterday, last Friday) to YYYY-MM-DD in the user's time zone; set date_unknown when they don't remember. For TV episodes use mark_episodes instead. Identify titles by tmdb_id + media_type, together with the title, when you have them (e.g. from display_movies_cards results) — a bare title can match a different film or a series of the same name; otherwise give title, year, media_type and director.
mark_episodes
ChatGPTMark TV series episodes as watched (or unwatched) and optionally rate an episode 1-10. Use when the user says they watched an episode, several episodes, a whole season, or everything up to some episode. Identify the show by title (original or localized) or tmdb_id. A series is only moved to Watched once every episode of a finished show is watched; until then it lives in the user's 'Watching' list. unwatch deletes the episodes' watch dates and ratings, and a new rating replaces the episode's previous one; neither can be undone.
open_watchlist
ChatGPTOpens the user's MoviePick watchlist panel beside the conversation: wishlist titles and TV shows in progress. Called by the panel UI, not by the model.
rate_watched
ChatGPTRate a watched movie (1-10 scale). Identify the movie by title (and optionally year).
remove_from_list
ChatGPTRemove a title from one of the user's lists. On a shared list the removal affects every member, and people can only remove titles they added (the owner can remove any).
remove_from_wishlist
ChatGPTRemove a movie from the wishlist. Identify the movie by title (and optionally year).
remove_watched
ChatGPTRemove a movie from watched list. Identify the movie by title (and optionally year).
web_search
ChatGPTSearches the internet for movie information. Returns relevant results. Pair with display_movies_cards to present any movies found visually.