イベントの構造化データ(Event)の書き方|セミナー・教室・説明会の日程をAIに伝える【JSON-LDの例つき】
公開日: / カテゴリ: 構造化データ / 執筆: エラバレル

「セミナーの日程をホームページに載せているけれど、AIや検索にちゃんと伝わっているのか分からない」「体験会や説明会の情報を、構造化データで書く方法を知りたい」。セミナーの主催者や、教室・学習塾・スクールを運営している方から、こうした相談をいただきます。
先に結論をお伝えします。**セミナー・体験会・説明会などの日程は、schema.orgの Event(イベント)という型で書けます。** 必ず書くのは「イベント名」「開始日時」「場所」の3つで、オンライン開催なら場所の代わりに参加用のページのURLを書きます。
選ばれるAI診断が22業種・2,296件の公式サイトを診断したところ、ページの内容を構造化データで伝えていないサイトが91%ありました。学習塾(116件)では89%、英会話教室(56件)では84%です。日程のような「いつ・どこで」の情報は、文章だけだと読み違えが起きやすいので、構造化データで伝える意味が大きい部分です。
この記事では、Eventの構造化データとは何かから、会場・オンラインそれぞれのコード例、中止や延期の伝え方、毎週開いている教室の扱い、確認の方法までを順番に説明します。
この記事でわかること
- Eventの構造化データとは何か、どんなときに使うのか
- 必ず書く項目と、書いたほうがよい項目
- 会場で開くセミナー・オンライン開催・両方の場合のコード例
- 参加費・定員・申し込みページの書き方
- 中止・延期・オンラインへの変更の伝え方
- 毎週の教室や、常に受け付けている体験の扱い
イベントの構造化データ(Event)とは?
構造化データとは、ページの内容を、AIや検索エンジンが間違いなく読み取れる決まった書式で書いたものです。人が見る画面には表示されませんが、「この日付は開始日」「この住所は会場」と機械に伝えられます。Googleが勧めている書式は、JSON-LDという形式です。
Event は、schema.orgという構造化データの共通の辞書にある型の一つで、決まった日時に、決まった場所(またはオンライン)で行われる催しを表します。
Eventを使う場面の例
| 業種 | イベントの例 |
|---|---|
| 学習塾・予備校 | 入塾説明会、無料体験授業、保護者向けの進路セミナー |
| 英会話・音楽・料理などの教室 | 体験レッスン会、発表会、短期講座 |
| 士業・コンサルタント | 相続セミナー、補助金の説明会、個別相談会 |
| 工務店・住宅会社 | 完成見学会、構造見学会、家づくりの勉強会 |
| 整体院・ジム | 姿勢改善の講座、親子向けの体操教室 |
| お店・地域の団体 | ワークショップ、販売会、地域のお祭り |
日時が決まっていて、参加者を募るものなら、ほとんどがEventで書けます。 業種ごとのホームページ全体の整え方は、学習塾のLLMO対策の記事や英会話教室のLLMO対策の記事でも紹介しています。
Googleの検索で「イベント」として表示される場合もある
Googleには、Eventの構造化データをもとに、イベントの日時や場所を検索結果の中で見やすく表示する機能があります(対応している国や言語は限られます)。表示されるかどうかはGoogleが決めますが、書いておけば、検索エンジンにもAIにも日程が正しく伝わります。
なぜイベントの日程を構造化データで伝えるのか
AIに「〇〇市で、今週末に参加できる相続のセミナーは?」「子ども向けの英会話の体験会はある?」と聞く人が増えています。AIが答えるときに必要なのは、いつ・どこで・何が・いくらで・どうやって申し込むかの情報です。
ところが、イベントの情報は、次のような理由で読み違えが起きやすい部分です。
- 「10/12(土)」のように年が書かれておらず、いつの年のことか分からない
- 過去のイベントと、これからのイベントが同じページに並んでいる
- 日程がチラシの画像だけで載っていて、文字として読めない
- 「会場:本校」とだけあり、住所が別のページにある
構造化データでは、日時を「2026-10-24T13:00+09:00」のように年・時刻・時間帯まで決まった形で書くので、いつのイベントなのかを取り違えられる心配がなくなります。
構造化データの不足(22業種・2,296サイトの診断)
- ページの内容を構造化データで伝えていないサイトは、全体で91%
- 学習塾(116件)は89%、英会話教室(56件)は84%、工務店(63件)は87%
- 構造化データそのものがないサイトは、全体で59%(学習塾56%、英会話教室57%)
- 全体の平均点は54.1点、学習塾は51.2点、英会話教室は53.0点
Eventの構造化データで書く項目
Googleが必須としている項目と、書いたほうがよい項目をまとめました。
| 項目 | 意味 | 必須か | 書く内容の例 |
|---|---|---|---|
| name | イベント名 | 必須 | 相続の基本が分かるセミナー |
| startDate | 開始日時 | 必須 | 2026-10-24T13:00+09:00 |
| location | 場所(会場か、オンラインのURL) | 必須 | Place(会場名と住所)またはVirtualLocation |
| endDate | 終了日時 | 推奨 | 2026-10-24T15:00+09:00 |
| description | イベントの説明 | 推奨 | 対象・内容・持ち物など |
| eventStatus | 開催の状態 | 推奨 | 予定どおり、中止、延期など |
| eventAttendanceMode | 会場・オンライン・両方 | 推奨 | 会場なら OfflineEventAttendanceMode |
| image | イベントの画像 | 推奨 | 案内の画像のURL |
| offers | 参加費と申し込み | 推奨 | 価格、通貨、申し込みページ、受付開始日 |
| organizer | 主催者 | 推奨 | 会社や教室の名前とURL |
| performer | 講師・出演者 | 推奨 | 講師の名前 |
日時の書き方
日時は、ISO 8601という決まった形式で書きます。
- 日付だけ:
2026-10-24 - 日付と時刻:
2026-10-24T13:00 - 時間帯まで(おすすめ):
2026-10-24T13:00+09:00
最後の +09:00 は日本時間であることを表します。付けておくと、時間のずれが起きません。
会場で開くセミナーの書き方
会場で開くセミナーの基本の例です。〇〇の部分を自分の情報に置き換えて使います。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"name": "相続の基本が分かるセミナー(10月)",
"description": "相続税がかかるかどうかの目安、遺言書の種類、生前にできる準備を、税理士が90分で説明します。質疑応答の時間もあります。",
"startDate": "2026-10-24T13:00+09:00",
"endDate": "2026-10-24T14:30+09:00",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@type": "Place",
"name": "〇〇市民会館 第2会議室",
"address": {
"@type": "PostalAddress",
"postalCode": "500-0000",
"addressRegion": "岐阜県",
"addressLocality": "岐阜市",
"streetAddress": "〇〇町1-2-3",
"addressCountry": "JP"
}
},
"image": "https://example.com/img/seminar-202610.jpg",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "JPY",
"availability": "https://schema.org/InStock",
"url": "https://example.com/seminar/202610/",
"validFrom": "2026-09-20T09:00+09:00"
},
"organizer": {
"@type": "Organization",
"name": "〇〇税理士事務所",
"url": "https://example.com/"
},
"performer": {
"@type": "Person",
"name": "〇〇 〇〇(税理士)"
}
}
</script>
- 参加費が無料なら、
priceに0と書きます validFromは、申し込みの受付を始めた日時です- 定員に達したら、
availabilityをhttps://schema.org/SoldOutに変えます
構造化データと、ページの本文をそろえる
Googleは、ページに表示されていない内容を構造化データに書かないよう求めています。日時・会場・参加費は、ページの本文にも同じ内容を文字で書いてください。チラシの画像だけで日程を載せている場合は、画像の下に文字でも書き足しましょう。
オンライン開催・両方の場合の書き方
オンラインだけで開く場合
オンラインのイベントでは、location に VirtualLocation(オンラインの場所)を使い、参加用または申し込み用のページのURLを書きます。
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"location": {
"@type": "VirtualLocation",
"url": "https://example.com/seminar/online-202611/"
}
ここに書くURLは、Zoomなどの参加用のURLそのものではなく、申し込みや案内のページのURLにしておくのが安全です。参加用のURLを公開すると、申し込んでいない人も入れてしまいます。
会場とオンラインの両方で開く場合
会場とオンラインを同時に行う場合は、MixedEventAttendanceMode にして、location に両方を並べます。
"eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode",
"location": [
{
"@type": "Place",
"name": "〇〇英会話スクール 本校",
"address": {
"@type": "PostalAddress",
"addressRegion": "愛知県",
"addressLocality": "名古屋市中区",
"streetAddress": "〇〇1-2-3",
"addressCountry": "JP"
}
},
{
"@type": "VirtualLocation",
"url": "https://example.com/event/online/"
}
]
| 開き方 | eventAttendanceMode | location |
|---|---|---|
| 会場だけ | OfflineEventAttendanceMode | Place(会場名と住所) |
| オンラインだけ | OnlineEventAttendanceMode | VirtualLocation(案内ページのURL) |
| 両方 | MixedEventAttendanceMode | PlaceとVirtualLocationの両方 |
中止・延期・変更の伝え方
イベントが中止や延期になったときは、ページからすぐに消すのではなく、eventStatus を変えて伝えます。
| 状態 | eventStatus に書く値 | あわせてすること |
|---|---|---|
| 予定どおり | https://schema.org/EventScheduled | なし |
| 中止 | https://schema.org/EventCancelled | 本文にも「中止になりました」と書く |
| 延期(新しい日が未定) | https://schema.org/EventPostponed | 日時は元のままにしておく |
| 日程の変更 | https://schema.org/EventRescheduled | startDate を新しい日時にし、previousStartDate に元の日時を書く |
| オンラインに変更 | https://schema.org/EventMovedOnline | eventAttendanceMode と location をオンラインに変える |
終わったイベントのページをどうするか
終わったイベントの構造化データをいつまでも残しておくと、AIが古い日程を案内してしまうおそれがあります。終わったら構造化データを外すか、ページに「このイベントは終了しました」と書いて、次回の案内ページへのリンクを置きましょう。過去の開催の記録として残すのは問題ありません。
毎週の教室や、いつでも受け付けている体験の扱い
教室や塾の場合、「毎週土曜10時から」「体験はいつでも受け付け」という形が多いと思います。ここは注意が必要です。
毎週決まった日に開くもの
Googleの考え方では、1回ごとの開催を、それぞれ別のEventとして書くのが基本です。たとえば、毎月第2土曜の体験会なら、直近の数回分を、日付ごとのEventとして並べます。
[
{
"@context": "https://schema.org",
"@type": "Event",
"name": "小学生向け英会話 無料体験会(11月)",
"startDate": "2026-11-14T10:00+09:00",
"endDate": "2026-11-14T11:00+09:00",
"location": {"@type": "Place", "name": "〇〇英会話スクール", "address": "愛知県名古屋市中区〇〇1-2-3"}
},
{
"@context": "https://schema.org",
"@type": "Event",
"name": "小学生向け英会話 無料体験会(12月)",
"startDate": "2026-12-12T10:00+09:00",
"endDate": "2026-12-12T11:00+09:00",
"location": {"@type": "Place", "name": "〇〇英会話スクール", "address": "愛知県名古屋市中区〇〇1-2-3"}
}
]
日時が決まっていないもの
「体験レッスンはいつでも受け付けています」のように、決まった日時がないものは、イベントではありません。Eventで書くのは避け、教室そのものの情報(LocalBusiness)と、ページの本文やよくある質問で伝えます。同じように、期間の長いセールや、営業時間そのものをイベントとして書くのも避けてください。
〇〇学習塾の説明会ページ
ページの本文:「2027年度 入塾説明会 11月8日(日)10:00〜11:00/11月22日(日)10:00〜11:00 会場:〇〇学習塾 本校(〇〇市〇〇町1-2-3) 参加費:無料 定員:各回10組(保護者と生徒)」
構造化データ:11月8日と11月22日を、それぞれ別のEventとして書く。offers の price は0、url は申し込みフォームのページ、定員に達した回は availability を SoldOut にする。
終わった回:本文に「終了しました」と書き、構造化データから外す。
よくある間違いと、確認の方法
よくある間違い
- 年を書かない:「10-24」ではなく「2026-10-24」と年から書く
- 時間帯を付けない:
+09:00がないと、時間がずれて解釈されることがある - 会場の住所がない:会場名だけでなく、住所まで書く
- 終わったイベントを残したまま:古い日程がAIに案内される原因になる
- いつでも受け付けている体験をEventにする:日時が決まっていないものはEventにしない
- JSONの書き間違い:最後の項目の後ろのカンマ、全角の引用符などで全体が読まれなくなる
確認の方法
- Googleのリッチリザルトテストに、ページのURLかコードを入れる。Eventが検出され、エラーが出ていないかを見る
- Schema Markup Validator(schema.orgの確認ツール)でも、項目が読み取れているかを見る
- 公開後は、Search Consoleで構造化データのエラーが出ていないかを確認する
確認の手順は構造化データの確認方法の記事で詳しく説明しています。手で書くのが不安な場合は、JSON-LDの書き方の記事も参考にしてください。
イベントの構造化データのチェックリスト
- name・startDate・location の3つを書いている
- 日時を、年・時刻・+09:00まで書いている
- 会場の名前と住所、またはオンラインの案内ページのURLを書いている
- 参加費・申し込みページ・定員の状態を offers に書いている
- ページの本文にも、同じ日時・会場・参加費を文字で書いている
- 終わったイベントの構造化データを外している
- 確認ツールでエラーが出ていない
よくある質問
無料のイベントでも、offers は書いたほうがいいですか?
書いておくのがおすすめです。price を 0 にすれば、無料であることが伝わります。申し込みページのURLも offers の url に書けるので、AIが「どこから申し込めるか」を答える材料になります。
1つのページに、複数のイベントを書いてもいいですか?
書けます。イベントの一覧ページなら、開催ごとに別のEventとして、配列([ ])で並べます。ただし、ページの本文にも、それぞれのイベントの日時と場所が書かれている必要があります。
教室の毎週のレッスンも、Eventで書くべきですか?
毎週のふつうのレッスンは、Eventではなく、教室そのものの情報(LocalBusiness)と、レッスンの時間割として本文で伝えるのが自然です。体験会や説明会のように、日にちを決めて参加者を募るものをEventで書きます。教室の情報の書き方はLocalBusinessの構造化データの書き方の記事で説明しています。
WordPressでは、どうやって入れればいいですか?
イベント用のプラグインには、Eventの構造化データを自動で出力するものがあります。プラグインを使わない場合は、イベントのページに、テーマやプラグインの「head内に挿入するコード」の機能などでJSON-LDを貼ります。両方を使うと二重になるので、どちらか一方にしてください。
構造化データを入れれば、AIにイベントが紹介されますか?
紹介されるかどうかは、AIの会社が決めることで、構造化データだけで決まるわけではありません。ただ、日時や場所を間違いなく伝えられるので、紹介されるときに正しい情報で案内してもらう助けになります。
申し込みが締め切られたら、どうすればいいですか?
offers の availability を https://schema.org/SoldOut に変え、本文にも「満席になりました」「受付を終了しました」と書きます。次回の案内ページがあれば、そこへのリンクも置いておきましょう。
まとめ
イベントの構造化データの書き方をまとめます。
この記事のまとめ
- セミナー・体験会・説明会など、日時を決めて参加者を募る催しは、Eventの構造化データで書ける
- 必須は name・startDate・location の3つ。日時は年と +09:00 まで書く
- 会場は Place と住所、オンラインは VirtualLocation と案内ページのURL、両方なら両方を並べる
- 中止・延期・変更は eventStatus で伝え、終わったイベントは構造化データから外す
- 毎週のふつうのレッスンや、いつでも受け付けている体験は、Eventにしない
- 22業種・2,296サイトの91%が、ページの内容を構造化データで伝えていなかった
イベントのページを整える前に、まずは自分のサイトの構造化データの状態を確かめてください。選ばれるAI診断なら、URLを入れるだけで、22項目の判定と理由を無料で確認できます。
自分のサイトを、無料で診断する参考にした資料
調査の方法:2026年10月、選ばれるAI診断(2026年10月2日に見直した採点基準)で、学習塾・英会話教室・工務店・税理士事務所など22業種の公式サイト2,296件を診断した結果です。割合は、22項目のうち「不足」または「一部不足」と判定されたサイトの割合です。個別のサイト名と点数は公開していません。