emailgoogle-schemasgoogle-now

Cannot update Google Now card using email


I am trying to test the triggering of a Google Now card from email and then updating the time using the modifiedTime property. Here is my markup of the initial email to trigger the initial Google Now card (It's working):

<html>
<body>

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EventReservation",
  "reservationNumber": "E123456789",
  "reservationStatus": "http://schema.org/Confirmed",
  "underName": {
    "@type": "Person",
    "name": "Test Person"
  },
  "reservationFor": {
    "@type": "Event",
    "name": "Test Event",
    "startDate": "2015-05-19T16:00:00-05:00",
    "location": {
      "@type": "Place",
      "name": "Your Home",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "111 Main Street",
        "addressLocality": "Columbus",
        "addressRegion": "OH",
        "postalCode": "43215",
        "addressCountry": "US"
      }
    }
  },
  "modifyReservationUrl": "http://www.test.com/testing"
}
</script>
<div>Test Appointment</div>
</body>
</html>

Here is the followup email I'm using to try to update the Google Now card to reflect changes in time (It has no effect):

<html>
<body>

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EventReservation",
  "reservationNumber": "E123456789",
  "reservationStatus": "http://schema.org/Confirmed",
  "underName": {
    "@type": "Person",
    "name": "Test Person"
  },
  "reservationFor": {
    "@type": "Event",
    "name": "Test Event",
    "startDate": "2015-05-19T16:00:00-05:00",
    "location": {
      "@type": "Place",
      "name": "Your Home",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "111 Main Street",
        "addressLocality": "Columbus",
        "addressRegion": "OH",
        "postalCode": "43215",
        "addressCountry": "US"
      }
    }
  },
  "modifyReservationUrl": "http://www.test.com/testing",
  "modifiedTime": "2015-05-19T18:00:00-05:00"  
}
</script>
<div>Test Appointment Changed</div>
</body>
</html>

Per the documentation here: https://developers.google.com/gmail/markup/reference/event-reservation#update_a_event I am reading that "You may update a event reservation simply by sending the updated event reservation and setting modifiedTime to the time of the update.", The ONLY difference between the 2 emails is the body of the email and the fact that I am including modifiedTime in the second.

Some extra background info: 1. I have validated my markup here prior to sending: https://www.google.com/webmasters/markup-tester 2. I am using the Gmail Actions sample app to send my test emails: http://gmail-actions.appspot.com/


Solution

  • After looking at the markup in your first email and the followup email, it looks like your startDate properties are identical (2015-05-19T16:00:00-05:00). Your follow up email should have the updated time (2015-05-19T18:00:00-05:00) in the startDate property.

    If you check out the description on the documentaiton, the modifiedTime property is where you input when the reservation was last modified and not the actual updated time.