<!DOCTYPE html>


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

  <title>Organize an Apache Event</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='/organize'>Organize</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">Organize an Apache Event</h1>
    
	<p>If you want to host your own Apache project event, or propose a
<a href="/about/roadshow.html">roadshow</a> about the ASF, get in touch with us on the <a href="mailto:planners@apachecon.com">Event Planning
mailing list</a>.</p>
<p><strong>Important!</strong> While we appreciate other parties producing events to tell the world about
our many great Apache projects and communities, <a href="https://whimsy.apache.org/brand/list">Apache trademarks and brands</a>
are also important to us.  To use any Apache trademarks in conjunctions with events,
you <strong>must</strong> request permission by following the
<a href="https://www.apache.org/foundation/marks/events.html">Third Party Event Branding Policy</a>.</p>
<ul>
<li><a href="roadshow">Organizing a Roadshow event</a></li>
</ul>


  </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>
