Skip to content

feat: add --alarm flag for EKAlarm support in add/edit commands#39

Closed
judeyang wants to merge 1 commit into
openclaw:mainfrom
judeyang:feature/alarm-support
Closed

feat: add --alarm flag for EKAlarm support in add/edit commands#39
judeyang wants to merge 1 commit into
openclaw:mainfrom
judeyang:feature/alarm-support

Conversation

@judeyang
Copy link
Copy Markdown

Summary

Adds --alarm / -a flag to add and edit commands, enabling native iOS/macOS notification triggers via EKAlarm.

Problem

Reminders created via remindctl add --due <date> set a due date but no alarm trigger. This means they show up in the Reminders app but never pop up as notifications on iPhone/iPad/Mac.

Solution

  • Add alarmDate field to ReminderInput, ReminderDraft, and ReminderUpdate
  • createReminder: auto-add EKAlarm (uses alarmDate if set, falls back to dueDate)
  • updateReminder: support updating/clearing alarms
  • AddCommand: add --alarm/-a option
  • EditCommand: add --alarm/-a and --clear-alarm options

Usage

# Add with explicit alarm time
remindctl add "Meeting" --due "2026-03-17 14:00" --alarm "2026-03-17 13:50"

# Alarm defaults to due date when --alarm is omitted but --due is set
remindctl add "Buy milk" --due "2026-03-17 09:00"

# Edit alarm on existing reminder
remindctl edit <id> --alarm "2026-03-17 10:00"

# Clear alarm
remindctl edit <id> --clear-alarm

Changes

  • Sources/RemindCore/Models.swift — added alarmDate to ReminderInput and ReminderUpdate
  • Sources/RemindCore/EventKitStore.swiftEKAlarm creation in create/update flows
  • Sources/remindctl/Commands/AddCommand.swift--alarm/-a option
  • Sources/remindctl/Commands/EditCommand.swift--alarm/-a and --clear-alarm options

Tested on macOS 26.3.1 (Tahoe), reminders sync correctly to iPhone/iPad with alarm triggers.

- Add alarmDate field to ReminderInput, ReminderDraft, and ReminderUpdate
- CreateReminder: auto-add EKAlarm (uses alarmDate if set, falls back to dueDate)
- UpdateReminder: support updating/clearing alarms
- AddCommand: add --alarm/-a option for setting alarm date
- EditCommand: add --alarm/-a and --clear-alarm options

This enables reminders to trigger native iOS/macOS notifications.
Without this, reminders created via CLI have due dates but no alarm triggers,
so they never pop up as notifications on devices.
@judeyang
Copy link
Copy Markdown
Author

就是说吧,我特么的也不知道 ai 给我改了些啥。
但是之前 openclaw 安排完提醒事项之后没有触发提醒,到时间就自动过期。
改完之后已经可以了。
不用谢我,也就花了 5 美刀的 token 而已,谁给报销一下。

@pablopunk
Copy link
Copy Markdown

I was running into this issue and I can confirm this PR solves it for me. I pulled and built this branch and reminders do trigger notifications now ❤️

bobsahur-robot pushed a commit to raymondlee-personal-org/remindctl that referenced this pull request Mar 29, 2026
…nds, and output

- AddCommand: --repeat, --alarm, --url, --parent, --tags flags
- EditCommand: same + --clear-alarm, --clear-repeat, --clear-url
- EventKitStore: full read/write for all new fields via EKReminder
- OutputFormatting: display recurrence, alarm, url, tags in text + JSON
- Cherry-picked model extensions from upstream PRs openclaw#40, openclaw#39, openclaw#17, openclaw#35, openclaw#13
jakubswierczek added a commit to jakubswierczek/remindctl that referenced this pull request Mar 30, 2026
…claw#39)

add: --alarm sets alarm, defaults to due date if not specified
edit: --alarm sets, --clear-alarm removes alarm
alarms use EKAlarm absoluteDate for native iOS/macOS notifications

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hezhongtang added a commit to hezhongtang/remindctl that referenced this pull request Apr 17, 2026
Merged 9 PRs from steipete/remindctl:
- openclaw#29 lint fix, openclaw#26 open filter, openclaw#35 tags support
- openclaw#30 all-day/date-only reminders, openclaw#40 recurrence rules
- openclaw#39 alarm support, openclaw#27 reminder sections
- openclaw#44 isFlagged support, openclaw#13 creationDate in output
@steipete
Copy link
Copy Markdown
Collaborator

steipete commented May 4, 2026

Landed the EventKit alarm support on main in b7f1ac9, with the implementation adjusted to the current ParsedUserDate/all-day behavior and tests/docs/changelog added.

What shipped:

  • add --alarm <date> / edit --alarm <date>
  • edit --clear-alarm
  • timed due reminders created/edited by remindctl get an EventKit alarm at the due time unless an explicit alarm is provided
  • JSON exposes alarmDate

Verified with make check and a live EventKit smoke that created a reminder with alarmDate in JSON, then deleted it. Thanks for the PR and the real-world confirmation from the thread.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants