> ## Documentation Index
> Fetch the complete documentation index at: https://docs.macro.com/llms.txt
> Use this file to discover all available pages before exploring further.

# UpdateReminder

> Change one of the current user's reminders: reword it, move when it fires, or mark it done. Get the `reminderId` from ListReminders or CreateReminder.  Pass only the fields you are changing; anything omitted is left alone. At least one must be given.  - Snooze or reschedule: set `remindAt` - Mark done: `completed: true` — the user has dealt with it and it leaves their active list - Reopen: `completed: false` - Reword: set `description`  Marking done is the normal way to clear a reminder the user has handled, and it is reversible: the reminder drops out of the default ListReminders results but is still there, readable with `completed: true` and restorable with `completed: false`. Reach for DeleteReminder only when the user wants the reminder not to exist; that cannot be undone.  Two things this tool will not do. It cannot change what a reminder is attached to — create a new reminder and delete this one instead. And setting `remindAt` on a repeating reminder replaces the repetition with that single firing, so only do it if the user asked to stop it repeating.  ## Times are UTC — convert both ways  Timestamps are absolute instants, in and out, while the user asks in their own timezone. Getting this wrong silently sets the reminder to the wrong hour.  - **In:** resolve their wording against their local time, then convert. For America/New_York (UTC-4 in August), "3pm tomorrow" on 2026-08-12 is `"2026-08-13T19:00:00Z"`, not `"2026-08-13T15:00:00Z"`. - **Out:** report the response's UTC value back in their timezone — `"2026-08-13T19:00:00Z"` is "3:00 PM tomorrow".  Ask for their timezone rather than assuming UTC.

# UpdateReminder

Change one of the current user's reminders: reword it, move when it fires, or mark it done. Get the `reminderId` from ListReminders or CreateReminder.

Pass only the fields you are changing; anything omitted is left alone. At least one must be given.

* Snooze or reschedule: set `remindAt`
* Mark done: `completed: true` — the user has dealt with it and it leaves their active list
* Reopen: `completed: false`
* Reword: set `description`

Marking done is the normal way to clear a reminder the user has handled, and it is reversible: the reminder drops out of the default ListReminders results but is still there, readable with `completed: true` and restorable with `completed: false`. Reach for DeleteReminder only when the user wants the reminder not to exist; that cannot be undone.

Two things this tool will not do. It cannot change what a reminder is attached to — create a new reminder and delete this one instead. And setting `remindAt` on a repeating reminder replaces the repetition with that single firing, so only do it if the user asked to stop it repeating.

## Times are UTC — convert both ways

Timestamps are absolute instants, in and out, while the user asks in their own timezone. Getting this wrong silently sets the reminder to the wrong hour.

* **In:** resolve their wording against their local time, then convert. For America/New\_York (UTC-4 in August), "3pm tomorrow" on 2026-08-12 is `"2026-08-13T19:00:00Z"`, not `"2026-08-13T15:00:00Z"`.
* **Out:** report the response's UTC value back in their timezone — `"2026-08-13T19:00:00Z"` is "3:00 PM tomorrow".

Ask for their timezone rather than assuming UTC.

## Parameters

| Parameter     | Type    | Required | Description                                                                                                                                                                                                                                                                   |
| ------------- | ------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `reminderId`  | string  | Yes      | The id of the reminder to change.                                                                                                                                                                                                                                             |
| `description` | string  | No       | Replacement reminder text. Max 2000 characters.                                                                                                                                                                                                                               |
| `remindAt`    | string  | No       | Reschedule to this RFC 3339 timestamp in UTC (e.g. "2026-08-08T14:00:00Z"). Must be in the future — to move a reminder that has already fired, give it a new future time. Convert from the user's local timezone before sending; see "Times are UTC" in the tool description. |
| `completed`   | boolean | No       | Mark the reminder as dealt with (true) or put it back on the active list (false).                                                                                                                                                                                             |
