AppIntent CreateReminder schema doesn't work

My intents and entities show up in Shortcuts, and my tests that use App Intents Framework pass. But I can't for the life of me figure out why Siri won't work.

I'm trying phrases like "Add <item> to my list in <app name>". All I ever get from Siri is variations of "I can't add items directly to <app name>" or "I can't add items to your lists in <app name>".

Does anyone see any issues with the following? ( I've left out some of the AppEnum and Entity types for brevity, but these are the main ones)

@AppIntent(schema: .reminders.createReminder)
struct AddToListIntent {
    var title: String
    var list: ListEntity?
    var note: AttributedString?
    var isFlagged: Bool?
    var images: [IntentFile]
    var tags: Set<String>
    var urls: [URL]
    var dueDate: DateComponents?
    var recurrence: Calendar.RecurrenceRule?
    var locationTrigger: LocationTriggerEntity?
    var section: SectionEntity?

    func perform() async throws -> some ReturnsValue<ReminderEntity> {

        let newReminder = ReminderEntity(id: "foo", reminder: .init(name: title))

        return .result(value: newReminder)
    }
}

struct Reminder {
    var name: String
}

@AppEntity(schema: .reminders.reminder)
struct ReminderEntity {
    // MARK: Static

    static let defaultQuery = ReminderEntityQuery()

    // MARK: Properties

    let id: String

    let reminder: Reminder

    @ComputedProperty(title: "Title")
    var title: String { reminder.name }

    var note: AttributedString? { nil }
    var tags: Set<String> { Set() }
    var urls: [URL] { [] }
    var dueDate: DateComponents? { nil }
    var recurrence: Calendar.RecurrenceRule? { nil }
    var isCompleted: Bool { false }
    var isFlagged: Bool? { nil }
    var creationDate: Date? { nil }
    var completionDate: Date? { nil }
    var list: ListEntity
    var locationTrigger: LocationTriggerEntity? { nil }

    var displayRepresentation: DisplayRepresentation {
        .init(title: "\(title)")
    }

    // MARK: Query

    struct ReminderEntityQuery: EntityQuery, EnumerableEntityQuery {
        func entities(for identifiers: [ReminderEntity.ID]) async throws -> [ReminderEntity] {
            identifiers.map { .init(id: $0, reminder: .init(name: "Foo")) }
        }

        func allEntities() async throws -> [ReminderEntity] {
            ["foo", "bar", "baz"].map { ReminderEntity(id: $0, reminder: .init(name: $0)) }
        }
    }
}

@AppEntity(schema: .reminders.list)
struct ListEntity: AppEntity, IndexedEntity {
    let id: String


    let myName: String
    var name: String { myName }

    // 3. Define how this entity is displayed to the user in shortcuts/Siri
    var displayRepresentation: DisplayRepresentation {
        DisplayRepresentation(title: "\(myName)")
    }

    @Property
    var type: MyListType

    // 4. Provide a query so the system can resolve specific lists
    static var defaultQuery = ListEntityQuery()
}

Thanks for the post, so it seems like you are using the code from the AppIntent to create reminders?

https://developer.apple.com/documentation/appintents/appschema/remindersintent/createreminder

What version of iOS beta are you using and what Xcode are you using? I think if you are using that documentation and seems like your AppShortcutsProvider explicitly lists the phrases that map to your intent, utilizing the .applicationName token correctly. If phrases use custom parameters like lists or items.

I would request you file a bug for the AppIntent as I don’t see you doing anything wrong so far.

Once you open the bug report, please post the FB number here for my reference.

If you have any questions about filing a bug report, take a look at Bug Reporting: How and Why?

Albert  WWDR

AppIntent CreateReminder schema doesn't work
 
 
Q