query: SELECT ?event ?eventLabel ?date
  WHERE
  {
  	# find events
  	?event wdt:P31/wdt:P279* wd:Q40231.
  	# with a point in time or start date
  	OPTIONAL { ?event wdt:P585 ?date. }
  	OPTIONAL { ?event wdt:P580 ?date. }
  	# but at least one of those
  	FILTER(BOUND(?date) && DATATYPE(?date) = xsd:dateTime).
  	# not in the future, and not more than 31 days ago
  	BIND(NOW() - ?date AS ?distance).
  	FILTER(0 <= ?distance && ?distance < 31).
  	# and get a label as well
  	OPTIONAL {
  		?event rdfs:label ?eventLabel.
  		FILTER(LANG(?eventLabel) = "ca").
  	}
  }