title: Amplify GraphQL get item from other field than ID
body: <p>I am implementing a webpage with React and AWS Amplify.</p>
  <p>I have the following definition in my <code>schema.graphql</code> file:</p>
  <pre><code>type Calendar @model {
    id: ID!
    name: String
    description: String
    url: String!
    intervals: [Interval] @connection(keyName: &quot;byCalendar&quot;, fields: [&quot;id&quot;])
  }
  </code></pre>
  <p>I would like to get a calendar from its URL string. Unfortunately, the following code throws an error:</p>
  <pre><code>import { API, graphqlOperation } from &quot;aws-amplify&quot;;
  import * as queries from &quot;../../graphql/queries&quot;;
  
  await API.graphql(graphqlOperation(queries.getCalendar, { url: &quot;some-url&quot;}));
  </code></pre>
  <p><code>Variable &quot;$id&quot; of required type &quot;ID!&quot; was not provided.</code></p>
  <p>From the error, providing the id is mandatory. However, I would like to be able to get an object from just the url.</p>
  <p>How can I do that?</p>
  <p>I am using the queries automatically generated by the amplify's cli.</p>
  <pre><code>/* eslint-disable */
  // this is an auto generated file. This will be overwritten
  
  export const getCalendar = /* GraphQL */ `
    query GetCalendar($id: ID!) {
      getCalendar(id: $id) {
        id
        name
        description
        url
        intervals {
          nextToken
        }
        createdAt
        updatedAt
      }
    }
  `;
  export const listCalendars = /* GraphQL */ `
    query ListCalendars(
      $filter: ModelCalendarFilterInput
      $limit: Int
      $nextToken: String
    ) {
      listCalendars(filter: $filter, limit: $limit, nextToken: $nextToken) {
        items {
          id
          name
          description
          url
          createdAt
          updatedAt
        }
        nextToken
      }
    }
  `;
  </code></pre>