calendar: add --alarm flag to send command for custom reminder triggers

Previously the send command hardcoded a 1-day VALARM. Now accepts
--alarm with duration format (e.g. 1h, 30m, 2d), defaulting to 1d.
This commit is contained in:
Yanxin Lu
2026-03-27 09:05:30 -07:00
parent 11b3e39586
commit c66ccc4c44
4 changed files with 29 additions and 4 deletions

View File

@@ -210,11 +210,20 @@ def cmd_send(args):
_validate_rrule_dtstart(rrule, start)
event.add("rrule", rrule)
# 1-day reminder
# Reminder alarm
alarm_trigger = timedelta(days=-1) # default
if args.alarm:
alarm_str = args.alarm
if alarm_str.endswith("d"):
alarm_trigger = timedelta(days=-int(alarm_str[:-1]))
elif alarm_str.endswith("h"):
alarm_trigger = timedelta(hours=-int(alarm_str[:-1]))
elif alarm_str.endswith("m"):
alarm_trigger = timedelta(minutes=-int(alarm_str[:-1]))
alarm = Alarm()
alarm.add("action", "DISPLAY")
alarm.add("description", f"Reminder: {args.summary}")
alarm.add("trigger", timedelta(days=-1))
alarm.add("trigger", alarm_trigger)
event.add_component(alarm)
cal.add_component(event)
@@ -861,6 +870,7 @@ def main():
send_p.add_argument("--rrule", default="", help="RRULE string (e.g. FREQ=WEEKLY;COUNT=13;BYDAY=TU)")
send_p.add_argument("--uid", default="", help="Custom event UID")
send_p.add_argument("--account", default="", help="Himalaya account")
send_p.add_argument("--alarm", default="1d", help="Reminder trigger (e.g. 1d, 2h, 30m)")
send_p.add_argument("--dry-run", action="store_true", help="Preview without sending")
# --- reply ---