diff --git a/Package.swift b/Package.swift index 1d90247..f58e575 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version: 5.9 +// swift-tools-version: 6.0 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription diff --git a/Sources/reminder-cli/ReminderStore.swift b/Sources/reminder-cli/ReminderStore.swift index 9e401b3..453df5e 100644 --- a/Sources/reminder-cli/ReminderStore.swift +++ b/Sources/reminder-cli/ReminderStore.swift @@ -273,7 +273,8 @@ class ReminderStore { startDate: String?, dueDate: String?, priority: Int?, - url: String? + url: String?, + listName: String? = nil ) async throws { let reminder = try await findReminder(identifier: identifier) @@ -304,9 +305,20 @@ class ReminderStore { reminder.url = url } + if let listName = listName { + guard let calendar = findCalendar(named: listName) else { + throw ReminderStoreError.listNotFound(listName) + } + reminder.calendar = calendar + } + try eventStore.save(reminder, commit: true) - print("✅ Updated reminder: \(reminder.title ?? "(no title)")") + var message = "✅ Updated reminder: \(reminder.title ?? "(no title)")" + if let listName = listName { + message += " → moved to \(listName)" + } + print(message) } // MARK: - Delete Operation diff --git a/Sources/reminder-cli/reminder_cli.swift b/Sources/reminder-cli/reminder_cli.swift index 1d9453c..c4da909 100644 --- a/Sources/reminder-cli/reminder_cli.swift +++ b/Sources/reminder-cli/reminder_cli.swift @@ -256,6 +256,9 @@ extension ReminderCLI { @Option(name: .shortAndLong, help: "New URL") var url: String? + @Option(name: .shortAndLong, help: "Move to a different list") + var list: String? + mutating func run() async throws { let store = ReminderStore() try await store.requestAccess() @@ -266,7 +269,8 @@ extension ReminderCLI { startDate: startDate, dueDate: dueDate, priority: priority, - url: url + url: url, + listName: list ) } }