Skip to content

How to work with reminder lists

View as Markdown
  1. For "my iCloud reminders", "my Shopping list" or "what's overdue", discover concrete reminders-provider endpoints on relevant authorized accounts. Preserve the account with each endpoint, list ID, reminder ID and cursor. Ignore generic plugin catalogs and old unrouted records. Read the exact endpoint and copy its route and declared command IDs.
  2. Use list-reminders through control with waitForResult:true. Inspect returned list titles and IDs before selecting a named list. If Shopping is absent, report that and ask which existing list to use; do not silently substitute another list or create a new one. Follow pagination for the same filters. An empty result proves only the queried selection is empty, not that every account or completed history is empty.
  3. Distinguish iCloud/connected reminder lists from ChatGPT scheduled tasks. An explicitly named service must not be replaced with another service. For a generic reminder request, clarify the intended service when the available choices could change the answer or action.
  4. For today, tomorrow or overdue, use the customer's timezone and actual supported due-date fields. Do not infer a due date from a title, note, creation time or completion flag. If the route cannot return due dates, report that limitation; do not claim a complete due/overdue list. If a complete open-item listing is empty, it is safe to say that selection has no open items.
  5. Create, update, complete or remove a reminder only when the concrete route declares that command and its payload represents the requested fields. Older iCloud routes may be list-only. Outbound create/update responses do not establish writable support. A date written into the title or notes is not a real scheduled due date. Do not create a ChatGPT task as a substitute without the user's instruction.
  6. For supported edits, copy IDs and the current revision from a recent listing, preserve omitted fields, dispatch once and independently re-list the same selection. Retain the exact created item for follow-up completion/removal; duplicate titles require disambiguation. A timeout means the outcome is unknown: inspect the list before retrying. Report individual outcomes for batches without repeating successful mutations.

Never claim creation, completion, deletion or notification delivery from dispatch acceptance alone. Unsupported history, dates or writes are capability limitations, not proof that the customer's Apple account has no reminders.

reminder commands also support dueDate as an exact RFC3339 instant, timeZone as an IANA zone, and allDay. Resolve relative dates in the customer's known time zone or clarify it; do not invent a zone. Update preserves omitted date fields. clearDueDate:true explicitly removes a date and cannot be combined with dueDate. Completion uses update-reminder with completed:true and the current revision. Read back the title, completion and due date after mutation; legacy list-only routes cannot perform these operations.