Здесь нет ничего, что должно быть отменено нормализовано для работы с App Engine. Вы можете изменить ForeignKey на ReferenceProperty, CharField на StringProperty и DatetimeField на DateTimeProperty, и все будет готово. Возможно, более эффективно хранить категорию в виде строки, а не ссылки, но это зависит от контекста использования.
Денормализация становится важной, когда вы начинаете разрабатывать запросы. В отличие от традиционного SQL, вы не можете писать специальные запросы, которые имеют доступ к каждой строке каждой таблицы. Все, к чему вы хотите обратиться, должно быть удовлетворено индексом. Если вы выполняете запросы сегодня, которые зависят от сканирования таблиц и сложных объединений, вам нужно убедиться, что параметры запроса проиндексированы во время записи, а не вычислять их на лету.
Например, если вы хотите выполнить поиск по названию события без учета регистра, вам придется хранить строчную копию заголовка на каждом объекте во время записи. Не догадываясь о требованиях к вашему запросу, я не могу предложить более конкретный совет.