Title: Proposal: Event Schema for WordCamp.org
Author: Joost de Valk
Published: October 30, 2020

---

 [  ](https://profiles.wordpress.org/joostdevalk/) [Joost de Valk](https://profiles.wordpress.org/joostdevalk/)
11:54 am _on_ October 30, 2020      

# Proposal: Event Schema for WordCamp.org

We have taken some great steps in improving the SEO of WordCampWordCamp WordCamps
are casual, locally-organized conferences covering everything related to WordPress.
They're one of the places where the WordPress community comes together to teach 
one another what they’ve learned throughout the year and share the joy. [Learn more](https://central.wordcamp.org/about/).
sites by [rearranging the URL structure](https://make.wordpress.org/community/2020/10/27/wordcamp-org-url-migration-complete/).
I think the next step should be outputting Event Schema, to allow WordCamp sites
to get [rich event snippets](https://developers.google.com/search/docs/data-types/event).
Wordcamp.org should output event schema on event homepages as well as on the individual
WordCamp centralWordCamp Central Website for all WordCamp activities globally. [https://central.wordcamp.org](https://central.wordcamp.org)
includes a list of upcoming and past camp with links to each. event page.

## What is “event schema”?

Event schema is metaMeta Meta is a term that refers to the inside workings of a 
group. For us, this is the team that works on internal WordPress sites like WordCamp
Central and Make WordPress. data, in JSONJSON JSON, or JavaScript Object Notation,
is a minimal, readable format for structuring data. It is used primarily to transmit
data between a server and web application, as an alternative to XML.+LD format, 
that tells Google, and other search engines and platforms, about our events. It 
gives them the most important event details in computer readable format, so they
can use that when they highlight an event.

## Schema examples

Below are the examples for event schema that should be shown on the WordCamp.org
event homepage. When adding this Event schema to WordCamp Central ([here, for example](https://central.wordcamp.org/wordcamps/wordcamp-finland-online/))
we should add a `url` attribute at the top level, pointing to the WordCamp homepage
URLURL A specific web address of a website or web page on the Internet, such as 
a website’s URL www.wordpress.org.

Note that this event schema can be left on the page after the event is done. The
event schema can also stay on the previous homepage, so a 2019 version of a WordCamp
could still have the 2019 schema.

### Schema for online events

    ```wp-block-code
    {
      "@context": "https://schema.org",
      "@type": "Event",
      "organizer": {
        "@type": "Organization",
        "name": "WordCamp Finland 2020 organizing team",
        "url": "https://finland.wordcamp.org/2020/about/organizers/"
      },  
      "name": "WordCamp Finland 2020",
      "description": "Join the Finnish, Nordic and European WordPress Community for a full day of learning, sharing and fun!",
      "image": "https://finland.wordcamp.org/2020/files/2020/09/wpfi2020-logo-black.png",
      "startDate": "2020-11-12T12:00+02:00",
      "endDate": "2020-11-12T17:00+02:00",
      "eventStatus": "https://schema.org/EventScheduled",
      "eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
      "location": {
        "@type": "VirtualLocation",
        "url": "https://example.com/"
      },
      "offers": {
        "@type": "Offer",
        "name": "Free ticket",
        "price": "0",
        "priceCurrency": "EUR",
        "validFrom": "2020-10-27",
        "url": "https://finland.wordcamp.org/2020/tickets/",
        "availability": "https://schema.org/InStock"
      }
    }
    ```

### Schema for offline events

    ```wp-block-code
    {
      "@context": "https://schema.org",
      "@type": "Event",
      "organizer": {
        "@type": "Organization",
        "name": "WordCamp Alaska 2020 organizing team",
        "url": "https://alaska.wordcamp.org/2020/about/organizers/"
      },  
      "name": "WordCamp Alaska 2020",
      "description": "Join the Alaskan WordPress Community for a full day of learning, sharing and fun!",
      "image": "https://alaska.wordcamp.org/2020/files/2020/09/wp-alaska-2020-logo-black.png",
      "startDate": "2020-11-12T12:00+02:00",
      "endDate": "2020-11-12T17:00+02:00",
      "eventStatus": "https://schema.org/EventScheduled",
      "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
      "location": {     
        "@type": "Place",
        "name": "Our WordCamp venue",
        "address": {
          "@type": "PostalAddress",
          "streetAddress": "Address line 1",
          "addressLocality": "City",
          "addressRegion": "AK",
          "postalCode": "12345",
          "addressCountry": "US"
        }
      },
      "offers": {
        "@type": "Offer",
        "name": "Regular ticket",
        "price": "25",
        "priceCurrency": "EUR",
        "validFrom": "2020-10-27",
        "url": "https://alaska.wordcamp.org/2020/tickets/",
        "availability": "https://schema.org/InStock"
      }
    }
    ```

### Schema for cancelled events

    ```wp-block-code
    {
      "@context": "https://schema.org",
      "@type": "Event",
      "name": "WordCamp Finland 2020",
      "description": "Join the Finnish, Nordic and European WordPress Community for a full day of learning, sharing and fun!",
      "image": "https://finland.wordcamp.org/2020/files/2020/09/wpfi2020-logo-black.png",
      "startDate": "2020-11-12T12:00+02:00",
      "endDate": "2020-11-12T17:00+02:00",
      "eventStatus": "https://schema.org/EventCancelled",
      "eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
      "location": {
        "@type": "VirtualLocation",
        "url": "https://example.com/"
      },
      "organizer": {
        "@type": "Organization",
        "name": "WordCamp Finland 2020 organizing team",
        "url": "https://finland.wordcamp.org/2020/about/organizers/"
      },  
      "offers": {
        "@type": "Offer",
        "name": "Free ticket",
        "price": "0",
        "priceCurrency": "EUR",
        "validFrom": "2020-10-27",
        "url": "https://finland.wordcamp.org/2020/tickets/",
        "availability": "https://schema.org/InStock"
      }
    }
    ```

## UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. controls

A lot of this data comes from existing fields / settings in the system. I think 
these are the ones that we might need to be able to change manually:

 * event attendance mode ([online vs offline vs mixed](https://schema.org/EventAttendanceModeEnumeration));
 * event status dropdown (type can be one of [these event types](https://schema.org/EventStatusType)),
   where I suggest we do not add support for  `EventPostponed` and `EventMovedOnline`;
    - when an event is rescheduled, it needs a setting plus  [`previousStartDate` attribute for its previous date](https://developers.google.com/search/docs/data-types/event#previous-start-date);
 * event description;
 * virtual location URL.

## Decisions still left to make

 * Should the organization bit refer to the organizing team or to the WordCamp foundation
   or something else?

Thanks to [@francina](https://profiles.wordpress.org/francina/), [@sippis](https://profiles.wordpress.org/sippis/)
and [@jonoaldersonwp](https://profiles.wordpress.org/jonoaldersonwp/) for providing
early feedback on this idea.

### Share this:

 * [  Threads ](https://make.wordpress.org/community/2020/10/30/proposal-event-schema-for-wordcamp-org/?share=threads)
 * [  Mastodon ](https://make.wordpress.org/community/2020/10/30/proposal-event-schema-for-wordcamp-org/?share=mastodon)
 * [  Bluesky ](https://make.wordpress.org/community/2020/10/30/proposal-event-schema-for-wordcamp-org/?share=bluesky)
 * [  Facebook ](https://make.wordpress.org/community/2020/10/30/proposal-event-schema-for-wordcamp-org/?share=facebook)
 * [  X ](https://make.wordpress.org/community/2020/10/30/proposal-event-schema-for-wordcamp-org/?share=x)
 * [  LinkedIn ](https://make.wordpress.org/community/2020/10/30/proposal-event-schema-for-wordcamp-org/?share=linkedin)

 * [Login to Reply](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcommunity%2F2020%2F10%2F30%2Fproposal-event-schema-for-wordcamp-org%2F%23respond&locale=en_US)

 1.  ![](https://secure.gravatar.com/avatar/15c1992340b393e287c6050901b6c4a5a10204d854c84ee8be6be84aca77de95?
     s=32&d=mm&r=g)
 2.   [Timi Wahalahti](https://profiles.wordpress.org/sippis/)  12:11 pm _on_ October
     30, 2020
 3.  Love the proposal, +1 for adding the schema!
 4.  >  event attendance mode (online vs offline vs mixed);
 5.  We already know if event is online or online, but there’s no place to say it’s
     mixed (like normal WCEUWCEU WordCamp Europe. The European flagship WordCamp event.
     with live streams from the venue). Thought I would personally put this to future
     development and focus on getting some version of the schema out because mixed 
     event’s won’t take place probably in very near future.
 6.  >  event status dropdown (type can be one of these event types), where I suggest
     > we do not add support for EventPostponed and EventMovedOnline
 7.  +1 for this, as we don’t store the previous date anywhere currently.
 8.  >  event description
 9.  Maybe we can use the same description that organisers update for [central.wordcamp.org](https://central.wordcamp.org/schedule/)?
 10. >  virtual location URLURL A specific web address of a website or web page on 
     > the Internet, such as a website’s URL www.wordpress.org
 11. Could this be just the home page of the WordCampWordCamp WordCamps are casual,
     locally-organized conferences covering everything related to WordPress. They're
     one of the places where the WordPress community comes together to teach one another
     what they’ve learned throughout the year and share the joy. [Learn more](https://central.wordcamp.org/about/).?
     Because most of the events are adding links to tracks there.
 12. >  Should the organization bit refer to the organizing team or to the WordCamp
     > foundation or something else?
 13. In my opinion, it should be WordCamp CentralWordCamp Central Website for all WordCamp
     activities globally. [https://central.wordcamp.org](https://central.wordcamp.org)
     includes a list of upcoming and past camp with links to each.. It’s also more 
     practical because we don’t know if WordCamp has published the organizer’s page
     and can’t be sure about its url.
 14.  * ![](https://secure.gravatar.com/avatar/6b6d1c4d29f1b149da0008917c70b019408d5af404a46bca853e4dd33546e1ed?
        s=32&d=mm&r=g)
      *  [Joost de Valk](https://profiles.wordpress.org/joostdevalk/)  1:22 pm _on_
        October 30, 2020
      * > Maybe we can use the same description that organisers update for central.
        > wordcamp.org?
      * Works for me.
      * > Could this be just the home page of the WordCampWordCamp WordCamps are casual,
        > locally-organized conferences covering everything related to WordPress. They're
        > one of the places where the WordPress community comes together to teach one
        > another what they’ve learned throughout the year and share the joy. [Learn more](https://central.wordcamp.org/about/).?
        > Because most of the events are adding links to tracks there.
      * I’d rather it was the true livestream URLURL A specific web address of a website
        or web page on the Internet, such as a website’s URL www.wordpress.org. If 
        we don’t have it, just omit it.
      * > In my opinion, it should be WordCamp CentralWordCamp Central Website for 
        > all WordCamp activities globally. [https://central.wordcamp.org](https://central.wordcamp.org)
        > includes a list of upcoming and past camp with links to each..
      * I’m fine with that, makes this a lot easier as then we can hardcode it.
         - ![](https://secure.gravatar.com/avatar/6b6d1c4d29f1b149da0008917c70b019408d5af404a46bca853e4dd33546e1ed?
           s=32&d=mm&r=g)
         -  [Joost de Valk](https://profiles.wordpress.org/joostdevalk/)  1:23 pm _on_
           October 30, 2020
         - > Thought I would personally put this to future development and focus on
           > getting some version of the schema out because mixed event’s won’t take
           > place probably in very near future.
         - Agreed on that too, then just online and offline is fine.
 15. ![](https://secure.gravatar.com/avatar/9cc64cf0f650f165ac55f1294105259f82f2b72c4c24903a79af6d6cd1ad2a9a?
     s=32&d=mm&r=g)
 16.  [Corey McKrill](https://profiles.wordpress.org/coreymckrill/)  12:07 am _on_ 
     November 4, 2020
 17. This sounds like a good idea to me!
 18. >  event attendance mode
 19. The WordCampWordCamp WordCamps are casual, locally-organized conferences covering
     everything related to WordPress. They're one of the places where the WordPress
     community comes together to teach one another what they’ve learned throughout 
     the year and share the joy. [Learn more](https://central.wordcamp.org/about/).
     post type currently has a checkbox for “Virtual Event Only” and a dropdown for“
     Streaming account to use”, which includes a “none, not streaming option” as well
     as some specific platform options. Between these two inputs, I think we could 
     determine the correct online/offline/mixed value.
 20. >  event status dropdown (type can be one of these event types), where I suggest
     > we do not add support for EventPostponed and EventMovedOnline;
 21. Just curious why we wouldn’t support `EventPostponed` and `EventMovedOnline`. 
     Those are both statuses that would apply to multiple camps that had to change 
     their plans this last year due to the pandemic.
 22. Regardless, we don’t currently have fields for all the metadata required to determine
     the correct status from that list, so we’d for sure need to add some things.
 23. >  event description
 24. The post_content field for the WordCamp post type is used for this purpose by 
     some camps… but not all.
 25. >  virtual location URLURL A specific web address of a website or web page on 
     > the Internet, such as a website’s URL www.wordpress.org
 26. There isn’t a field for this right now, as I think we just leave it up to the 
     event organizers to put links somewhere on their WordCamp website. But it would
     be easy to add.
 27. >  Should the organization bit refer to the organizing team or to the WordCamp
     > foundation or something else?
 28. Agree with the other comments here, probably should be WordCamp CentralWordCamp
     Central Website for all WordCamp activities globally. [https://central.wordcamp.org](https://central.wordcamp.org)
     includes a list of upcoming and past camp with links to each..
 29. ![](https://secure.gravatar.com/avatar/d13a1f5a6e7e0a7e1203eb93cdac41efdf19518abe1148ff7ee41958e2b34df0?
     s=32&d=mm&r=g)
 30.  [Kevin Cristiano](https://profiles.wordpress.org/kcristiano/)  11:52 am _on_ 
     November 5, 2020
 31. > Should the organization bit refer to the organizing team or to the WordCampWordCamp
     > WordCamps are casual, locally-organized conferences covering everything related
     > to WordPress. They're one of the places where the WordPress community comes 
     > together to teach one another what they’ve learned throughout the year and share
     > the joy. [Learn more](https://central.wordcamp.org/about/). foundation or something
     > else?
 32. I would expect that the Organization would be WordPress Community SupportWordPress
     Community Support WordPress Community Support PBC is a Public Benefit Corporation,
     created specifically to be the financial and legal support for WordCamps, WordPress
     Meetup groups, and any additional “official” events organized within the WordPress
     Community Events program.. That is the Organization that is responsible for the
     events. The Foundation has been separated from the events for a number of years
     now (3 or so IIRC) and I’d prefer the organizing entity over the local org team.
 33.  * ![](https://secure.gravatar.com/avatar/1dba75a903be8eb13bae6f961d81a99e5c76d5ca8c327a18bc25e96df2417b99?
        s=32&d=mm&r=g)
      *  [Hugh Lashbrooke](https://profiles.wordpress.org/hlashbrooke/)  12:01 pm _on_
        November 5, 2020
      * Agreed – it should be “WordPress Community SupportWordPress Community Support
        WordPress Community Support PBC is a Public Benefit Corporation, created specifically
        to be the financial and legal support for WordCamps, WordPress Meetup groups,
        and any additional “official” events organized within the WordPress Community
        Events program., PBC”. Or maybe we don’t need the “PBC” bit?
      * “WordCamp CentralWordCamp Central Website for all WordCamp activities globally.
        [https://central.wordcamp.org](https://central.wordcamp.org) includes a list
        of upcoming and past camp with links to each.” isn’t a registered entity or
        any kind – it’s more like a name we use that comprises the group of people 
        who support WordCamps.
      * I love this proposal and excited to see it implemented.
         - ![](https://secure.gravatar.com/avatar/6b6d1c4d29f1b149da0008917c70b019408d5af404a46bca853e4dd33546e1ed?
           s=32&d=mm&r=g)
         -  [Joost de Valk](https://profiles.wordpress.org/joostdevalk/)  12:10 pm 
           _on_ November 5, 2020
         - This works perfectly. Do we have a page about the WordPress Community SupportWordPress
           Community Support WordPress Community Support PBC is a Public Benefit Corporation,
           created specifically to be the financial and legal support for WordCamps,
           WordPress Meetup groups, and any additional “official” events organized 
           within the WordPress Community Events program. entity? Then I can make example
           Schema that references that URLURL A specific web address of a website or
           web page on the Internet, such as a website’s URL www.wordpress.org.
            * ![](https://secure.gravatar.com/avatar/d13a1f5a6e7e0a7e1203eb93cdac41efdf19518abe1148ff7ee41958e2b34df0?
              s=32&d=mm&r=g)
            *  [Kevin Cristiano](https://profiles.wordpress.org/kcristiano/)  12:32
              pm _on_ November 5, 2020
            * I am unsure we need the ‘PBC’ bit. I don’t know of a page, [@hlashbrooke](https://profiles.wordpress.org/hlashbrooke/)
              does one exist? If not we should create one.
               - ![](https://secure.gravatar.com/avatar/1dba75a903be8eb13bae6f961d81a99e5c76d5ca8c327a18bc25e96df2417b99?
                 s=32&d=mm&r=g)
               -  [Hugh Lashbrooke](https://profiles.wordpress.org/hlashbrooke/)  12:
                 57 pm _on_ November 5, 2020
               - Hmm – we have the announcement posts about it [on this P2](https://make.wordpress.org/community/2016/03/02/transitioning-to-wordpress-community-support/)
                 and [on the WPF blog](https://wordpressfoundation.org/2016/introducing-wordpress-community-support-a-public-benefit-subsidiary/),
                 as well as [this handbook page](https://make.wordpress.org/community/handbook/wordcamp-organizer/first-steps/budget-and-finances/running-the-money-through-wpcs/)
                 about running WordCampWordCamp WordCamps are casual, locally-organized
                 conferences covering everything related to WordPress. They're one 
                 of the places where the WordPress community comes together to teach
                 one another what they’ve learned throughout the year and share the
                 joy. [Learn more](https://central.wordcamp.org/about/). finances through
                 WPCSWordPress Community Support WordPress Community Support PBC is
                 a Public Benefit Corporation, created specifically to be the financial
                 and legal support for WordCamps, WordPress Meetup groups, and any 
                 additional “official” events organized within the WordPress Community
                 Events program.. None of those are info pages about the entity though
                 and I agree – a page like that would be valuable and I think it makes
                 sense to have it hosted on wordpressfoundation.org.
               - In the meantime [@joostdevalk](https://profiles.wordpress.org/joostdevalk/),
                 you can use the WPFWordPress Foundation The WordPress Foundation is
                 a charitable organization founded by Matt Mullenweg to further the
                 mission of the WordPress open source project: to democratize publishing
                 through Open Source, GPL software. Find more on [wordpressfoundation.org](https://wordpressfoundation.org/).
                 announcement URLURL A specific web address of a website or web page
                 on the Internet, such as a website’s URL www.wordpress.org: [https://wordpressfoundation.org/2016/introducing-wordpress-community-support-a-public-benefit-subsidiary/](https://wordpressfoundation.org/2016/introducing-wordpress-community-support-a-public-benefit-subsidiary/)–
                 we can update that in the future as necessary
                  * ![](https://secure.gravatar.com/avatar/d13a1f5a6e7e0a7e1203eb93cdac41efdf19518abe1148ff7ee41958e2b34df0?
                    s=32&d=mm&r=g)
                  *  [Kevin Cristiano](https://profiles.wordpress.org/kcristiano/)  
                    1:54 pm _on_ November 5, 2020
                  * [@hlashbrooke](https://profiles.wordpress.org/hlashbrooke/) I don’t
                    agree – anywhere EXCEPT the WPFWordPress Foundation The WordPress
                    Foundation is a charitable organization founded by Matt Mullenweg
                    to further the mission of the WordPress open source project: to
                    democratize publishing through Open Source, GPL software. Find 
                    more on [wordpressfoundation.org](https://wordpressfoundation.org/).
                    site. There is so much confusion about what enity is responsible
                    for the events. I think WordCamp.org is the best place.
                     - ![](https://secure.gravatar.com/avatar/15c1992340b393e287c6050901b6c4a5a10204d854c84ee8be6be84aca77de95?
                       s=32&d=mm&r=g)
                     -  [Timi Wahalahti](https://profiles.wordpress.org/sippis/)  2:
                       08 pm _on_ November 5, 2020
                     - +1
                     - ![](https://secure.gravatar.com/avatar/1dba75a903be8eb13bae6f961d81a99e5c76d5ca8c327a18bc25e96df2417b99?
                       s=32&d=mm&r=g)
                     -  [Hugh Lashbrooke](https://profiles.wordpress.org/hlashbrooke/)
                       2:08 pm _on_ November 5, 2020
                     - Good point – I agree.

### Leave a Reply 󠀁[Cancel reply](https://make.wordpress.org/community/2020/10/30/proposal-event-schema-for-wordcamp-org/?output_format=md#respond)󠁿

You must be [logged in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcommunity%2F2020%2F10%2F30%2Fproposal-event-schema-for-wordcamp-org%2F&locale=en_US)
to post a comment.

# Post navigation

[← Recap of the Diverse Speaker Training group (#WPDiversity) on October 28, 2020](https://make.wordpress.org/community/2020/10/29/recap-of-the-diverse-speaker-training-group-wpdiversity-on-october-28-2020/)

[Getting more Learn WordPress Discussion Group leaders and attendees →](https://make.wordpress.org/community/2020/10/30/getting-more-learn-wordpress-discussion-group-leaders-and-attendees/)