<!DOCTYPE html>


<html>
<head>
  <meta name="description" content="Apache Events"/>
  <meta name="keywords" content="apache, apache events, apache community, opensource"/>

  <title>Apache Endorsed Events</title>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <link href="/style/screen.css" rel="stylesheet" type="text/css">
</head>

<body>
  <div id="banner">
    <div>
        <div class="topbanner">
            <div class="sitename">Apache Software Foundation Events</div>
            <a class="logo" href="https://www.apache.org">
                <img alt="ASF website" src="/images/asf_logo.png" width="164">
            </a>
            

<span class="breadcrumbs">
    <a href="/">Home</a>
    
        
        
    
        
        
            &nbsp; <a href='/about'>About</a>
            
        
    
        
        
            &nbsp; <a href='/about/endorsed.html'>Endorsed.Html</a>
            
        
    
</span>

        </div>
    </div>
  </div>

  <div id="navigation">
    <ul>
      <li><a href="/index.html">Home</a></li>
    </ul>

    <h1>Events to Attend</h1>
    <ul>
      <li><a href="/event/index.html">Upcoming Events</a></li>
      <li><a href="/event/calendar.html">Calendar</a></li>
      <li><a href="/event/past-events.html">Past Events</a></li>
    </ul>

    <h1>About Apache Events</h1>
    <ul>
      <li><a href="/about/index.html">General information</a></li>
      <li><a href="/about/apachecon/index.html">ApacheCon</a></li>
      <li><a href="/about/roadshow.html">Roadshows</a></li>
      <li><a href="/about/endorsed.html">Endorsed events</a></li>
    </ul>

    <h1>Getting Involved</h1>
    <ul>
      <li><a href="/involved/index.html">Introduction</a></li>
      <li><a href="/organize/index.html">Organize an event</a></li>
      <li><a href="/involved/mailing-lists.html">Mailing Lists</a></li>
    </ul>

    <h1>ASF</h1>
    <ul>
      <li><a href="https://www.apache.org">Apache Software Foundation</a></li>
      <li><a href="https://community.apache.org">Community Development</a></li>
      <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
      <li><a href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
      <li><a href="https://www.apache.org/security/">Security</a></li>
    </ul>
  </div>

  <div id="content">
    <h1 class="title">Apache Endorsed Events</h1>
    
	<h1 id="apache-endorsedapproved-events">Apache endorsed/approved events</h1>
<p>There are many third-party events produced every year that focus on
Apache Software Foundation projects. The ASF encourages these events, as
they expand the reach of our projects and our message.</p>
<p>If you are producing an Apache-related event, and using our brands and
marks, we ask that contact us for our official approval. Along with
this, we will also help promote these events, where possible and
appropriate. Whether or not you want to collaborate with us on your
event, you MUST adhere to our <a href="https://www.apache.org/foundation/marks/events.html">branding policy</a>.</p>


  </div>

  <footer id="footer">
    <div class="copyright">
      <p>
        Copyright &copy; 2023 The Apache Software Foundation, Licensed under
        the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
        <br />
        Apache and the Apache feather logos are trademarks of The Apache Software Foundation.
        <br />
        This website is generated from the
        <a href="https://github.com/apache/comdev-events-site">comdev-events-site</a>
        repository.
      </p>
    </div>
</footer>

</body>
</html>
