# Reminder Agent > ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE** > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import ``` import reminderAgent from'@ohos.reminderAgent'; ``` ## Required Permissions ohos.permission.PUBLISH_AGENT_REMINDER ## reminderAgent.publishReminder publishReminder(reminderReq: ReminderRequest, callback: AsyncCallback<number>): void Publishes an agent-powered reminder. This API uses an asynchronous callback to return the result. - System capability SystemCapability.Notification.ReminderAgent - Parameters | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | reminderReq | [ReminderRequest](#reminderrequest) | Yes| Reminder to be published.| | callback | AsyncCallback<number> | Yes| Asynchronous callback used to return the published reminder's ID.| - Example ``` export default { data: {timer: { reminderType: reminderAgent.ReminderType.REMINDER_TYPE_TIMER, triggerTimeInSeconds: 3 } }, startTimer() { reminderAgent.publishReminder(timer, (err, reminderId) => { console.log("reminderId = " + reminderId); }); } } ``` ## reminderAgent.publishReminder publishReminder(reminderReq: ReminderRequest): Promise<number> Publishes an agent-powered reminder. This API uses a promise callback to return the result. - System capability SystemCapability.Notification.ReminderAgent - Parameters | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | reminderReq | [ReminderRequest](#reminderrequest) | Yes| Reminder to be published.| - Return value | Type| Description| | -------- | -------- | | Promise<number> | Promise used to return the published reminder's ID.| - Example ``` export default { data: {timer: { reminderType: reminderAgent.ReminderType.REMINDER_TYPE_TIMER, triggerTimeInSeconds: 3 } }, startTimer() { reminderAgent.publishReminder(this.timer).then((reminderId) => { console.log("reminderId = " + reminderId); }); } } ``` ## reminderAgent.cancelReminder cancelReminder(reminderId: number, callback: AsyncCallback<void>): void Cancels the reminder with the specified ID. This API uses an asynchronous callback to return the cancellation result. - System capability SystemCapability.Notification.ReminderAgent - Parameters | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | reminderId | number | Yes| ID of the reminder to cancel.| | callback | AsyncCallback<void> | Yes| Asynchronous callback used to return the result.| - Example ``` export default { cancel() { reminderAgent.cancelReminder(1, (err, data) => { console.log("do next"); }); } } ``` ## reminderAgent.cancelReminder cancelReminder(reminderId: number): Promise<void> Cancels the reminder with the specified ID. This API uses a promise to return the cancellation result. - System capability SystemCapability.Notification.ReminderAgent - Parameters | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | reminderId | number | Yes| ID of the reminder to cancel.| - Return value | Type| Description| | -------- | -------- | | Promise<void> | Promise used to return the result.| - Example ``` export default { cancel() { reminderAgent.cancelReminder(1).then(() => { console.log("do next"); }); } } ``` ## reminderAgent.getValidReminders getValidReminders(callback: AsyncCallback<Array<ReminderRequest>>): void Obtains all valid (not yet expired) reminders set by the current application. This API uses an asynchronous callback to return the reminders. - System capability SystemCapability.Notification.ReminderAgent - Parameters | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | callback | AsyncCallback<Array<[ReminderRequest](#reminderrequest)>> | Yes| Asynchronous callback used to return an array of all valid reminders set by the current application.| - Example ``` reminderAgent.getValidReminders((err, reminders) => { for (let i = 0; i < reminders.length; i++) { console.log("getValidReminders = " + reminders[i]); console.log("getValidReminders, reminderType = " + reminders[i].reminderType); for (let j = 0; j < reminders[i].actionButton.length; j++) { console.log("getValidReminders, actionButton.title = " + reminders[i].actionButton[j].title); console.log("getValidReminders, actionButton.type = " + reminders[i].actionButton[j].type); } console.log("getValidReminders, wantAgent.pkgName = " + reminders[i].wantAgent.pkgName); console.log("getValidReminders, wantAgent.abilityName = " + reminders[i].wantAgent.abilityName); console.log("getValidReminders, maxScreenWantAgent.pkgName = " + reminders[i].maxScreenWantAgent.pkgName); console.log("getValidReminders, maxScreenWantAgent.abilityName = " + reminders[i].maxScreenWantAgent.abilityName); console.log("getValidReminders, ringDuration = " + reminders[i].ringDuration); console.log("getValidReminders, snoozeTimes = " + reminders[i].snoozeTimes); console.log("getValidReminders, timeInterval = " + reminders[i].timeInterval); console.log("getValidReminders, title = " + reminders[i].title); console.log("getValidReminders, content = " + reminders[i].content); console.log("getValidReminders, expiredContent = " + reminders[i].expiredContent); console.log("getValidReminders, snoozeContent = " + reminders[i].snoozeContent); console.log("getValidReminders, notificationId = " + reminders[i].notificationId); console.log("getValidReminders, slotType = " + reminders[i].slotType); } }) ``` ## reminderAgent.getValidReminders getValidReminders(): Promise<Array<ReminderRequest>> Obtains all valid (not yet expired) reminders set by the current application. This API uses a promise to return the reminders. - System capability SystemCapability.Notification.ReminderAgent - Return value | Type| Description| | -------- | -------- | | Promise<Array<[ReminderRequest](#reminderrequest)>> | Promise used to return an array of all valid reminders set by the current application.| - Example ``` reminderAgent.getValidReminders().then((reminders) => { for (let i = 0; i < reminders.length; i++) { console.log("getValidReminders = " + reminders[i]); console.log("getValidReminders, reminderType = " + reminders[i].reminderType); for (let j = 0; j < reminders[i].actionButton.length; j++) { console.log("getValidReminders, actionButton.title = " + reminders[i].actionButton[j].title); console.log("getValidReminders, actionButton.type = " + reminders[i].actionButton[j].type); } console.log("getValidReminders, wantAgent.pkgName = " + reminders[i].wantAgent.pkgName); console.log("getValidReminders, wantAgent.abilityName = " + reminders[i].wantAgent.abilityName); console.log("getValidReminders, maxScreenWantAgent.pkgName = " + reminders[i].maxScreenWantAgent.pkgName); console.log("getValidReminders, maxScreenWantAgent.abilityName = " + reminders[i].maxScreenWantAgent.abilityName); console.log("getValidReminders, ringDuration = " + reminders[i].ringDuration); console.log("getValidReminders, snoozeTimes = " + reminders[i].snoozeTimes); console.log("getValidReminders, timeInterval = " + reminders[i].timeInterval); console.log("getValidReminders, title = " + reminders[i].title); console.log("getValidReminders, content = " + reminders[i].content); console.log("getValidReminders, expiredContent = " + reminders[i].expiredContent); console.log("getValidReminders, snoozeContent = " + reminders[i].snoozeContent); console.log("getValidReminders, notificationId = " + reminders[i].notificationId); console.log("getValidReminders, slotType = " + reminders[i].slotType); } }) ``` ## reminderAgent.cancelAllReminders cancelAllReminders(callback: AsyncCallback<void>): void Cancels all reminders set by the current application. This API uses an asynchronous callback to return the cancellation result. - System capability SystemCapability.Notification.ReminderAgent - Parameters | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | callback | AsyncCallback<void> | Yes| Asynchronous callback used to return the result.| - Example ``` reminderAgent.cancelAllReminders((err, data) =>{ console.log("do next")}) ``` ## reminderAgent.cancelAllReminders cancelAllReminders(): Promise<void> Cancels all reminders set by the current application. This API uses a promise to return the cancellation result. - System capability SystemCapability.Notification.ReminderAgent - Return value | Type| Description| | -------- | -------- | | Promise<void> | Promise used to return the result.| - Example ``` reminderAgent.cancelAllReminders().then(() => { console.log("do next")}) ``` ## reminderAgent.addNotificationSlot addNotificationSlot(slot: NotificationSlot, callback: AsyncCallback<void>): void Adds a reminder notification slot. This API uses an asynchronous callback to return the result. - System capability SystemCapability.Notification.ReminderAgent - Parameters | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | slot | [NotificationSlot](js-apis-notification.md#notificationslot) | Yes| Reminder notification slot to add.| | callback | AsyncCallback<void> | Yes| Asynchronous callback used to return the result.| - Example ``` export default { data: { mySlot: { type: 3, sound: "/sdcard/music2.mp3" } }, addSlot() { reminderAgent.addNotificationSlot(this.mySlot, (err, data) => { console.log("do next"); }); } } ``` ## reminderAgent.addNotificationSlot addNotificationSlot(slot: NotificationSlot): Promise<void> Adds a reminder notification slot. This API uses a promise to return the result. - System capability SystemCapability.Notification.ReminderAgent - Parameters | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | slot | [NotificationSlot](js-apis-notification.md#notificationslot) | Yes| Reminder notification slot to add.| - Return value | Type| Description| | -------- | -------- | | Promise<void> | Promise used to return the result.| - Example ``` export default { data: { mySlot: { type: 3, sound: "/sdcard/music2.mp3" } }, addSlot() { reminderAgent.addNotificationSlot(this.mySlot).then(() => { console.log("do next"); }); } } ``` ## reminderAgent.removeNotificationSlot removeNotificationSlot(slotType: notification.SlotType, callback: AsyncCallback<void>): void Removes a notification slot of a specified type. This API uses an asynchronous callback to return the result. - System capability SystemCapability.Notification.ReminderAgent - Parameters | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | slotType | [notification.SlotType](js-apis-notification.md#slottype) | Yes| Type of the reminder notification slot to remove.| | callback | AsyncCallback<void> | Yes| Asynchronous callback used to return the result.| - Example ``` export default { removeSlot() {reminderAgent.removeNotificationSlot(notification.SlotType.CONTENT_INFORMATION, (err, data) => { console.log("do next"); }); } } ``` ## reminderAgent.removeNotificationSlot removeNotificationSlot(slotType: notification.SlotType): Promise<void> Removes a notification slot of a specified type. This API uses a promise to return the result. - System capability SystemCapability.Notification.ReminderAgent - Parameters | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | slotType | [notification.SlotType](js-apis-notification.md#slottype) | Yes| Type of the reminder notification slot to remove.| - Return value | Type| Description| | -------- | -------- | | Promise<void> | Promise used to return the result.| - Example ``` export default { removeSlot() { reminderAgent.removeNotificationSlot(notification.SlotType.CONTENT_INFORMATION).then(() => { console.log("do next"); }); } } ``` ## ActionButtonType Enumerates button types. - **System capability**: SystemCapability.Notification.ReminderAgent | Name| Default Value| Description| | -------- | -------- | -------- | | ACTION_BUTTON_TYPE_CLOSE | 0 | Button for closing the reminder.| | ACTION_BUTTON_TYPE_SNOOZE | 1 | Button for snoozing the reminder.| ## ReminderType Enumerates reminder types. - **System capability**: SystemCapability.Notification.ReminderAgent | Name| Default Value| Description| | -------- | -------- | -------- | | REMINDER_TYPE_TIMER | 0 | Countdown reminder.| | REMINDER_TYPE_CALENDAR | 1 | Calendar reminder.| | REMINDER_TYPE_ALARM | 2 | Alarm reminder.| ## ActionButton Defines a button displayed in the reminder notification. - **System capability**: SystemCapability.Notification.ReminderAgent | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | title | string | Yes| Text on the button.| | type | [ActionButtonType](#actionbuttontype) | Yes| Button type.| ## WantAgent Sets the package and ability that are redirected to when the reminder notification is clicked. - **System capability**: SystemCapability.Notification.ReminderAgent | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | pkgName | string | Yes| Name of the package that is redirected to when the reminder notification is clicked.| | abilityName | string | Yes| Name of the ability that is redirected to when the reminder notification is clicked.| ## MaxScreenWantAgent Sets the name of the target package and ability to start automatically when the reminder arrives and the device is not in use. If the device is in use, a notification will be displayed. - **System capability**: SystemCapability.Notification.ReminderAgent | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | pkgName | string | Yes| Name of the package that is automatically started when the reminder arrives and the device is not in use.| | abilityName | string | Yes| Name of the ability that is automatically started when the reminder arrives and the device is not in use.| ## ReminderRequest Defines the reminder to publish. - **System capability**: SystemCapability.Notification.ReminderAgent | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | reminderType | ReminderType | Yes| Type of the reminder.| | actionButton | [ActionButton?, ActionButton?] | No| Action button displayed in the reminder notification. (The parameter is optional. Up to two buttons are supported.)| | wantAgent | WantAgent | No| Information about the ability that is redirected to when the notification is clicked.| | maxScreenWantAgent | MaxScreenWantAgent | No| Information about the ability that is automatically started when the reminder arrives. If the device is in use, a notification will be displayed.| | ringDuration | number | No| Ringing duration.| | snoozeTimes | number | No| Number of reminder snooze times.| | timeInterval | number | No| Reminder snooze interval.| | title | string | No| Reminder title.| | content | string | No| Reminder content.| | expiredContent | string | No| Content to be displayed after the reminder expires.| | snoozeContent | string | No| Content to be displayed when the reminder is snoozing.| | notificationId | number | No| Notification ID used by the reminder. If there are reminders with the same notification ID, the later one will overwrite the earlier one.| | slotType | [notification.SlotType](js-apis-notification.md#slottype) | No| Type of the slot used by the reminder.| ## ReminderRequestCalendar ReminderRequestCalendar extends ReminderRequest Defines a reminder for a calendar event. - **System capability**: SystemCapability.Notification.ReminderAgent | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | dateTime | [LocalDateTime](#localdatetime) | Yes| Reminder time.| | repeatMonths | Array<number> | No| Month in which the reminder repeats.| | repeatDays | Array<number> | No| Date on which the reminder repeats.| ## ReminderRequestAlarm ReminderRequestAlarm extends ReminderRequest Defines a reminder for an alarm. - **System capability**: SystemCapability.Notification.ReminderAgent | Name| Type| Mandatory| Description:| | -------- | -------- | -------- | -------- | | hour | number | Yes| Hour portion of the reminder time.| | minute | number | Yes| Minute portion of the reminder time.| | daysOfWeek | Array<number> | No| Days of a week when the reminder repeats.| ## ReminderRequestTimer ReminderRequestTimer extends ReminderRequest Defines a reminder for a scheduled timer. - **System capability**: SystemCapability.Notification.ReminderAgent | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | triggerTimeInSeconds | number | Yes| Number of seconds in the countdown timer.| ## LocalDateTime Sets the time information for a calendar reminder. - **System capability**: SystemCapability.Notification.ReminderAgent | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | year | number | Yes| Year.| | month | number | Yes| Month.| | day | number | Yes| Date.| | hour | number | Yes| Hour.| | minute | number | Yes| Minute.| | second | number | No| Second.|