Is there a way to access JSON-LD via JavaScript if it doesn't have an ID?
You can get all JSON-LD blocks with
document.querySelectorAll('script[type="application/ld+json"]');
or just the first one with
document.querySelector('script[type="application/ld+json"]');
Here's a full example:
var jsonld = JSON.parse(document.querySelector('script[type="application/ld+json"]').innerText);document.getElementById('result').innerText = jsonld.endDate;
<html> <head> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Event", "name": "A random event", "startDate": "2013-09-14T21:30", "endDate": "2013-09-14T21:30" } </script> </head> <body> <p>The end date is: <strong id="result"></strong></p> </body></html>
function myFunction() { var todayDate = new Date(); var label = GmailApp.getUserLabelByName("eventbrite"); var threads = label.getThreads(); for (var i = 0; i < threads.length; i++) { threads[i].getMessages()[i].getBody().forEach( var jsonld = JSON.parse(document.querySelector('script[type="application/ld+json"]').innerText); document.getElementById('result').innerText = jsonld.endDate; if (jsonld.endDate > todayDate){ threads[i].markUnread(); } ) }}