<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="Home page of The Apache Software Foundation">
  <link rel="apple-touch-icon" sizes="57x57" href="/favicons/apple-touch-icon-57x57.png">
  <link rel="apple-touch-icon" sizes="60x60" href="/favicons/apple-touch-icon-60x60.png">
  <link rel="apple-touch-icon" sizes="72x72" href="/favicons/apple-touch-icon-72x72.png">
  <link rel="apple-touch-icon" sizes="76x76" href="/favicons/apple-touch-icon-76x76.png">
  <link rel="apple-touch-icon" sizes="114x114" href="/favicons/apple-touch-icon-114x114.png">
  <link rel="apple-touch-icon" sizes="120x120" href="/favicons/apple-touch-icon-120x120.png">
  <link rel="apple-touch-icon" sizes="144x144" href="/favicons/apple-touch-icon-144x144.png">
  <link rel="apple-touch-icon" sizes="152x152" href="/favicons/apple-touch-icon-152x152.png">
  <link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon-180x180.png">
  <link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
  <link rel="icon" type="image/png" href="/favicons/favicon-194x194.png" sizes="194x194">
  <link rel="icon" type="image/png" href="/favicons/favicon-96x96.png" sizes="96x96">
  <link rel="icon" type="image/png" href="/favicons/android-chrome-192x192.png" sizes="192x192">
  <link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
  <link rel="manifest" href="/favicons/manifest.json">
  <link rel="shortcut icon" href="/favicons/favicon.ico">
  <meta name="msapplication-TileColor" content="#603cba">
  <meta name="msapplication-TileImage" content="/favicons/mstile-144x144.png">
  <meta name="msapplication-config" content="/favicons/browserconfig.xml">
  <meta name="theme-color" content="#282661">

  <title>Third Party Event Branding Policy, Version 1.3</title>
  <link href="/css/Montserrat-300-600.css" rel="stylesheet">
  <link href="/css/min.bootstrap.css" rel="stylesheet">
  <link href="/css/styles.css" rel="stylesheet">
  <style>
.headerlink {
  visibility: hidden;
}
dt:hover > .headerlink, p:hover > .headerlink, td:hover > .headerlink, h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, h6:hover > .headerlink {
  visibility: visible
}  </style>

<!-- https://www.apache.org/licenses/LICENSE-2.0 -->
</head>

<body >
  <!-- Navigation -->
  <header>
	<div id="skiptocontent">
		<a href="#maincontent">Skip to Main Content</a>
	</div>
    <nav class="navbar navbar-inverse navbar-fixed-top mainmenu">
      <div class="container">
        <div class="navbar-header">
          <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#mainnav-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
        </div>
        <div class="collapse navbar-collapse" id="mainnav-collapse">
          <ul class="nav navbar-nav navbar-justified">
            <li><a href="/index.html#news">News</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">About&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/foundation">Overview</a></li>
                <li><a href="/foundation/how-it-works.html">Process</a></li>
                <li><a href="/foundation/governance/">Governance</a></li>
                <li><a href="/theapacheway/index.html">The Apache Way</a></li>
                <li><a href="/foundation/governance/members.html">Membership</a></li>
                <li><a href="https://community.apache.org/">Community</a></li>
                <li><a href="https://diversity.apache.org/">Diversity & Inclusion</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="/foundation/glossary.html">Glossary</a></li>
				  <li><a href="/apache-name">About Our Name</a></li>
                <li><a href="/foundation/preFAQ.html">FAQ</a></li>
                <li><a href="/foundation/contributing.html">Support Apache</a></li>
                <li><a href="/press/">Media/Analysts</a></li>
                <li><a href="/foundation/contact.html">Contact</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Make a Donation&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/foundation/contributing.html">Donate Now</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via Credit Card</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via ACH</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via PayPal</a></li>
                <li><a href="https://www.redbubble.com/people/comdev">Buy Swag</a></li>
                <li><a href="https://smile.amazon.com/gp/chpf/homepage/ref=smi_se_scyc_srch_stsr?q=apache+software+foundation&orig=%2F">Shop smile.amazon.com</a></li>
                <li><a href="/foundation/sponsorship.html">ASF Sponsorship</a></li>
                <li><a href="/foundation/thanks#targeted-sponsors">Targeted Sponsorship</a></li>
                <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdopwn-toggle" data-toggle="dropdown">The Apache Way&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/theapacheway/index.html">The Apache Way</a></li>
                <li><a href="https://s.apache.org/GhnI">Sustainable Open Source</a></li>
                <li><a href="/foundation/how-it-works.html">How it Works</a></li>
                <li><a href="/foundation/how-it-works.html#meritocracy">Merit</a></li>
                <li><a href="https://blogs.apache.org/foundation/category/SuccessAtApache">Success at Apache</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdopwn-toggle" data-toggle="dropdown">Join Us&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://community.apache.org/gettingStarted/101.html">Getting Started</a></li>
                <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                <li><a href="https://www.apachecon.com/">ApacheCon</a></li>
                <li><a href="http://community.apache.org/calendars/">Community Events</a></li>
                <li><a href="/travel/">Travel Assistance</a></li>
                <li><a href="https://community.apache.org/gsoc.html">Summer of Code</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="https://community.apache.org/contributors/etiquette">Etiquette</a></li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/index.html#projects-list">Project List</a></li>
                    <li><a href="/foundation/how-it-works.html#management">How they work</a></li>
                    <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li>
                    <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li>
                    <li><a href="https://projects.apache.org/projects.html?name">Names</a></li>
                    <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li>
                    <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li>
                    <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li>
                    <li><a href="https://incubator.apache.org/">Apache Incubator</a></li>
                    <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                    <li><a href="/foundation/marks/">Brand Management</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/foundation/how-it-works.html#roles">Roles</a></li>
                    <li><a href="/foundation/members.html">Members</a></li>
                    <li><a href="https://community.apache.org/contributors/">Committers</a></li>
                    <li><a href="/foundation/#who-runs-the-asf">Board of Directors</a></li>
                    <li><a href="/foundation/#who-runs-the-asf">Officers  &amp; Project VPs</a></li>
                    <li><a href="https://community.zones.apache.org/map.html">Location Map</a></li>
                    <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                    <li><a href="https://people.apache.org/">Committer Directory</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="https://community.apache.org/about/">Community Development</a></li>
                    <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                    <li><a href="https://community.apache.org/">Get Involved</a></li>
                    <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li>
                    <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                    <li><a href="https://community.apache.org/calendars/">Community Events</a></li>
                    <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li>
                    <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Infrastructure&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/dev/infrastructure.html">Infra overview</a></li>
                    <li><a href="https://infra.apache.org/" target="_blank">Policies and Tools</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/INFRA/Index" target="_blank">CWiki</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/licenses/LICENSE-2.0">Apache License 2.0</a></li>
                    <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
                    <li><a href="/licenses/contributor-agreements.html">Contributor License Agreements</a></li>
                    <li><a href="/licenses/contributor-agreements.html#grants">Software Grants</a></li>
                    <li><a href="/foundation/marks/list/">Trademarks</a></li>
					<li><a href="/licenses/exports/">Exports</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/foundation/sponsorship.html">Sponsor the ASF</a></li>
                    <li><a href="/foundation/thanks">Sponsor Thanks</a></li>
                    <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
                    <li><a href="/foundation/contributing.html">Individual Donations</a></li>
                    <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li>
                  </ul>
                </li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Downloads&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://downloads.apache.org/">Distribution</a></li>
                <li><a href="https://projects.apache.org/releases.html">Releases</a></li>
                <li><a href="https://status.apache.org/">Infrastructure Status</a></li>
                <li><a href="/uptime/">Infrastructure Statistics</a></li>
              </ul>
            </li>
            <li class="dropdown hidden-xs">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button"><span class="glyphicon glyphicon-search"
                  aria-hidden="true"></span><span class="sr-only">Search</span></a>
              <ul class="dropdown-menu search-form" role="search">
                <li>
                  <div class="input-group" style="width: 100%; padding: 0 5px;">
                    <script async src="https://cse.google.com/cse.js?cx=cb41d2753d228d8b7"></script>
                    <div class="gcse-search"></div>
                  </div>
                </li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </nav>
  </header>
  <!-- / Navigation -->
  <header id="main-header" class="container">
    <div class="sideImg">
          <a class="visible-home" href="https://events.apache.org/x/current-event.html">
            <img class="img-responsive" style="width: 125px;" src="/events/current-event-125x125.png" alt="Apache Events"/>
<!-- STALE: <img class="img-responsive" style="width: 125px;" src="https://www.apachecon.com/event-images/default-square-light.png" alt="ApacheCon 2021 Coming Soon!" /> -->
          </a>
      <a class="hidden-home" href="/"><img class="img-responsive" src="/img/asf-estd-1999-logo.jpg" alt="The Apache Software Foundation"></a>
    </div>
    <div class="main">
      <img class="img-responsive center-block visible-home" src="/img/asf-estd-1999-logo.jpg" alt="Apache 20th Anniversary Logo">
      <h2 class="text-center">Community-led development "The&nbsp;Apache&nbsp;Way"</h2>
      <ul class="nav navbar-nav navbar-justified">
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/index.html#projects-list">Project List</a></li>
            <li><a href="/foundation/how-it-works.html#management">How they work</a></li>
            <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li>
            <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li>
            <li><a href="https://projects.apache.org/projects.html?name">Names</a></li>
            <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li>
            <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li>
            <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li>
            <li><a href="https://incubator.apache.org/">Apache Incubator</a></li>
            <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
            <li><a href="/foundation/marks/">Brand Management</a></li>
            <li><a href="/foundation/glossary.html">Glossary of Terms</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/foundation/how-it-works.html#roles">Roles</a></li>
            <li><a href="/foundation/members.html">Members</a></li>
            <li><a href="https://community.apache.org/contributors/">Committers</a></li>
            <li><a href="/foundation/#who-runs-the-asf">Board of Directors</a></li>
            <li><a href="/foundation/#who-runs-the-asf">Officers &amp; Project VPs</a></li>
            <li><a href="https://diversity.apache.org/">Diversity & Inclusion</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="https://people.apache.org/">Committer Directory</a></li>
            <li><a href="https://community.zones.apache.org/map.html">Heat Map</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="https://community.apache.org/about/">Community Development</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="https://community.apache.org/">Get Involved</a></li>
            <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li>
            <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
            <li><a href="https://community.apache.org/calendars/">Community Events</a></li>
            <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li>
            <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Infrastructure&nbsp;<span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu">
              <li><a href="/dev/infrastructure.html">Infra overview</a></li>
              <li><a href="https://infra.apache.org/" target="_blank">Policies and Tools</a></li>
              <li><a href="https://cwiki.apache.org/confluence/display/INFRA/Index" target="_blank">CWiki</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/licenses/LICENSE-2.0">Apache License 2.0</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/licenses/contributor-agreements.html">Contributor License Agreements</a></li>
            <li><a href="/licenses/contributor-agreements.html#grants">Software Grants</a></li>
            <li><a href="/foundation/marks/list/">Trademarks</a></li>
			<li><a href="/licenses/exports/">Exports</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/foundation/sponsorship.html">Sponsor the ASF</a></li>
            <li><a href="/foundation/thanks">Sponsor Thanks</a></li>
            <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
            <li><a href="/foundation/contributing.html">Individual Donations</a></li>
            <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li>
          </ul>
        </li>
      </ul>
    </div>
    <div class="sideImg">
      <a href="/foundation/contributing.html"><img class="img-responsive" src="/img/support-apache.jpg" alt="Apache Support Logo" /></a>
    </div>
  </header>
  <main id="maincontent">
<div class="container">    <h1 id="third-party-event-branding-policy-version-13">Third Party Event Branding Policy, Version 1.3<a class="headerlink" href="#third-party-event-branding-policy-version-13" title="Permalink">&para;</a></h1>
<h2 id="introduction">Event Branding Policy overview<a class="headerlink" href="#introduction" title="Permalink">&para;</a></h2>
<p>This document defines the branding policy for events run by third parties
that use Apache&reg; marks in the name or primary branding of the event. For more information
on use of Apache marks in other areas, see our <a href="/foundation/marks/">formal Trademark
Policy</a> and <a href="/foundation/marks/resources">site map of resources</a>.</p>
<h2 id="links">Contents<a class="headerlink" href="#links" title="Permalink">&para;</a></h2>
<div class=".pull-right" style="float:right; border-style:dotted; width:200px; padding:5px; margin:5px">
<p>See Also: <a href="/foundation/marks/resources">Trademark Resources Site Map</a>.</p>
</div>
<ul>
<li>
<p><a href="#events">Policy for event names using Apache marks</a></p>
</li>
<li>
<p><a href="#anti-harassment">Anti-Harassment Policy</a></p>
</li>
<li>
<p><a href="#partner">ASF listing as Community Partner option</a></p>
</li>
<li>
<p><a href="#education">Must provide open educational content</a></p>
</li>
<li>
<p><a href="#selection">Must allow PMC representatives on event selection committee</a></p>
</li>
<li>
<p><a href="#naming">Referring to Apache marks, projects and products</a></p>
</li>
<li>
<p><a href="#attributions">Trademark attributions and proper use of Apache brands</a></p>
</li>
<li>
<p><a href="#graphics">Use of logos and graphics</a></p>
</li>
<li>
<p><a href="#dates">Allowable event dates</a></p>
</li>
<li>
<p><a href="#funding">Event profits and donations</a></p>
</li>
<li>
<p><a href="#partner">ASF listing as Community Partner option</a></p>
</li>
<li>
<p><a href="#apachecon">Must not use "Apache" or "ApacheCon" names</a></p>
</li>
<li>
<p><a href="#other">Other trademark guidelines</a></p>
</li>
<li>
<p><a href="#approval">How to gain approval to use an Apache mark in an event</a></p>
</li>
<li>
<p><a href="#notes">Important note</a></p>
</li>
</ul>
<h2 id="events">Policy for event names using Apache marks<a class="headerlink" href="#events" title="Permalink">&para;</a></h2>
<p>The VP, Brand Management, or the VP of the relevant Apache project, must approve the use of Apache marks in any events run by third parties.
This includes conferences, meetups, gettogethers, and any other types of events. Events must comply with this policy and have permission
to use Apache marks in the name of the event or in any of the primary branding, including website domain names, for the event.</p>
<p>Event branding and event organizers may not claim to be the organizers or sole or exclusive leaders of any Apache project, nor claim to be the sole,
exclusive, or primary source of information for any Apache project.</p>
<p>Simply <em>presenting a talk</em> on an Apache project requires no approval, and is very much
encouraged! The <a href="http://community.apache.org/">Community Development Project</a> may be
able to help with this. However, you must seek approval when the event name or primary branding
features Apache marks. Thus, giving a talk on Apache Foo at your local technology
get-together requires no approval, while organising "An evening with Apache Foo" as
an event open to the public does require approval.</p>
<h2 id="anti-harassment">Anti-Harassment Policy<a class="headerlink" href="#anti-harassment" title="Permalink">&para;</a></h2>
<p>Conferences organised by third parties which use Apache marks <strong>must</strong> have
an anti-harassment policy. This policy must either be identical to the
<a href="/foundation/policies/anti-harassment.html">ASF Anti-Harassment Policy</a>
or be an alternative approved by the ASF.</p>
<h2 id="education">Must provide open educational content<a class="headerlink" href="#education" title="Permalink">&para;</a></h2>
<p>At least a portion of any training and/or technical presentations at
events <em>must be applicable to the Apache product(s)</em> being referenced. For
example, an event about Apache Tomcat must include some sessions or lessons
that attendees can apply directly to an actual Apache Tomcat download, not
just lessons that apply to some third party product(s) built on or
related to Apache Tomcat.</p>
<h2 id="selection">Must allow PMC representatives on event selection committee<a class="headerlink" href="#selection" title="Permalink">&para;</a></h2>
<p>Event organizers must allow a project management committee (PMC) representative from any project whose
marks are used, or alternately a member from Community Development,
to sit on their Selection Committee. The PMC or Community Development representative
will wear their Apache "hat", to help ensure that the event follows ASF guidelines. PMC representatives from Apache must be associated with at least two
different organizations, to avoid the appearance of the event being
tightly tied to one organization.</p>
<p>In particular, PMC representatives shall work to ensure that events with
an open CFP or talk selection process work in a fair and unbiased manner,
based on technical merit of talks selected.  For events that have pre-selected
talks or more limited technical content, PMC representatives can ensure that
sufficient open educational content is applicable to the actual Apache
product(s) in question, and that the content is not solely about a third party
product related to or built on an Apache product.</p>
<h2 id="naming">Referring to Apache marks, projects and products<a class="headerlink" href="#naming" title="Permalink">&para;</a></h2>
<p>The first and most prominent reference to any Apache product on every page
or major section of a page, both in titles and in body text,
must use the <em>full name</em> of the project, for example "<em>Apache Tomcat</em>".
Professionally-produced events are expected to fully comply
with our <a href="/foundation/marks/guide">Apache Product Name Usage Guide</a>.</p>
<p>The event's main landing page, as well as any "About" or "Overview" page,
must include a prominent paragraph in the body content or sidebar (i.e. not
only in the footer content) that includes a brief <strong>description of
the appropriate Apache project</strong> as an independent project, not just a technology.  This must also include a link from the Apache project's name to the
project's home page.</p>
<h2 id="attributions">Trademark attributions and proper use of Apache brands<a class="headerlink" href="#attributions" title="Permalink">&para;</a></h2>
<p>Event pages must feature prominent attributions of all Apache marks. For
example:</p>
<blockquote>
<p>Apache Tomcat, Tomcat and Apache are either registered trademarks or trademarks of
the Apache Software Foundation in the United States and/or other countries,
and are used with permission. The Apache Software Foundation has
no affiliation with and does not endorse or review the materials provided at
this event, which is managed by BigCo.</p>
</blockquote>
<p>This may appear in page footers or in any other appropriate location. The
"Apache Software Foundation" text should link to <code>http://www.apache.org/</code> and
the "used with permission" should link to this Event Branding Requirements
page.</p>
<p>You <strong>must</strong> have permission from a VP of the ASF to use the "used with permission" text.</p>
<h2 id="graphics">Use of logos and graphics<a class="headerlink" href="#graphics" title="Permalink">&para;</a></h2>
<p>Normally, events may not use any Apache logos or graphics as part of their primary
event branding. an event may only use Apache product logos to refer to the
Apache products or projects themselves, and must display such logos apart from
any of the event's own branding and logos.</p>
<p>If your event wishes to use an Apache project logo within your event branding,
you must work with VP, Brand to obtain explicit trademark and goodwill rights
for the brand and event logo.</p>
<p>Event branding may not include the Apache feather in any way. The only permitted use
of the bare Apache feather on event materials is to provide a
single link to <a href="http://www.apache.org/">http://www.apache.org/</a> as a reference to The Apache Software
Foundation, typically as a Community Partner; or to otherwise refer to
Apache as a whole.</p>
<h2 id="funding">Event profits and donations<a class="headerlink" href="#funding" title="Permalink">&para;</a></h2>
<p>As a non-profit organization, the ASF always appreciates donations.
Community-led events are not required to provide donations. Third-party commercial events are welcome to provide a portion of event profits as a
donation to the ASF.</p>
<h2 id="partner">ASF listing as Community Partner option<a class="headerlink" href="#partner" title="Permalink">&para;</a></h2>
<p>The primary website and other collateral for events must provide The Apache Software Foundation (ASF)
with the <em>option</em> to have Apache listed as a Community Partner, Sponsor,
or other appropriate category within the event's branding style.</p>
<p>This helps ensure that the ASF as a whole
has a formal recognition by the event organizers that is clear and specific
to event attendees and others.  ASF or project representatives will determine the
appropriate text blurb, logo, and link back to the ASF website for this
recognition, and will let you know if Apache should be listed for your event.  Note that listings for Community
Partner or the like are for the Apache Software Foundation as a whole, and individual Apache projects do not typically appear in such listings.</p>
<h2 id="dates">Allowable event dates<a class="headerlink" href="#dates" title="Permalink">&para;</a></h2>
<p>The Apache Community Development Committee pro-actively seeks to avoid conflicts between
Apache-related technology conferences geographically, and between conferences
on the same Apache project topics internationally, to ensure that individual
conferences are successful and that they are not competing for participation
by the same limited community of experts on individual Apache technologies.</p>
<p>The Apache Software Foundation will not approve the use of Apache trademarks
in conjunction with competing conferences that would adversely affect each
event's ability to put on content (i.e. get speakers) and fulfill the goals of having a rich community
event with educational content about Apache projects.</p>
<ul>
<li>
<p>Small events (under 250 expected attendees), and free or purely community-run (non-corporate &amp; non-profit) events might be considered competing only with other events that are about the same Apache project or related Apache projects.</p>
</li>
<li>
<p>Large events (over 250 expected attendees) may be considered competing with
other events even in other Apache project areas, or with the ASF's
own ApacheCon conferences.</p>
</li>
</ul>
<p>An Apache "Announced Event" is an event called "ApacheCon" or "Apache
Roadshow" and listed on <a href="https://events.apache.org/">https://events.apache.org/</a>.</p>
<p>The Apache Software Foundation will not approve the use of Apache trademarks
where a date conflict exists with an Announced Event. A date conflict is defined as:</p>
<ul>
<li>
<p>A proposed announced event (an event that wishes to become an Announced
Event, as defined above) conflicts if it is within 60 days of an Announced Event in the same
geographical area (ie, North America, South America, Europe, Africa, Asia/Pacific) and within
30 days in a different geographical area.</p>
</li>
<li>
<p>A third-party event, or a project event (ie, an Apache Foo event run by
the Apache Foo PMC) is in conflict if it is within six weeks of an Announced Event in the same
geographical area, or within three weeks in a different geographical area.</p>
</li>
</ul>
<p>To ensure that we can approve your request for use of Apache marks, <a href="/foundation/marks/contact#events">contact us</a> with early notice of your
intended timeframe and location to verify no conflicts,
and then follow up with the specific dates and venue once they are scheduled for final
approval and to be placed on the Apache <a href="http://community.apache.org/calendars/conferences.html">calendar</a>.</p>
<p>The Apache Community Development Committee attempts to track all relevant conference
dates for the purpose of scheduling and avoiding conflicts. We publish in
<a href="http://community.apache.org/calendars/conferences.html">our calendar</a> all conferences
run by the ASF, and those approved to make use of ASF marks. Submitting
advance notice of your proposed event's intended dates and prompt confirmation of your
scheduled conference dates to <code>dev@community.apache.org</code> will ensure this calendar is up to
date and help avoid conflicts with related, relevant conferences of the
Apache Software Foundation, its partners, and the rest of the industry. Submission
to dev@community is <strong>not</strong> related to getting trademark permissions.</p>
<h2 id="apachecon">Must not use "Apache" or "ApacheCon" names<a class="headerlink" href="#apachecon" title="Permalink">&para;</a></h2>
<p>Third party events may not use either the "Apache" or the "ApacheCon"
names, nor confusingly similar names, as any part of their primary
branding. These names are reserved exclusively for the ASF and its
own authorized conferences, and for specific PMC-run
events that the Foundation approves.</p>
<p id="other">#3 Other trademark guidelines<a class="headerlink" href="#other" title="Permalink">&para;</a></p>
<p>For more information about Apache marks, see our <a href="/foundation/marks/">formal Trademark
Policy</a> and our <a href="/foundation/marks/resources">site map of Trademark resources</a>.</p>
<h2 id="approval">How to gain approval to use an Apache Mark in an event<a class="headerlink" href="#approval" title="Permalink">&para;</a></h2>
<p>You must obtain approval in writing from the ASF to use an Apache mark for your conference. If you have not received approval
from VP, Brand or an Apache project's VP, then <em>you do not have permission</em>!</p>
<ol>
<li>Ensure Apache marks are correctly attributed on your site and marketing
materials (if not public yet, provide screenshots or explanations). See <a href="#naming">Referring to Apache marks, projects and products</a></li>
<li>Ensure your date doesn't clash with another Apache event. See <a href="#dates">Dates</a>
for more information and a link to the current list. The ASF will not give approval to
events which clash with, or are very close to, another similar event.</li>
<li>Contact the appropriate PMC(s). PMC representatives are generally
required, during both planning and the event itself, and the earlier you engage
with the PMC the easier this will be to arrange. As an absolute minimum the PMC must approve
your event through their chosen decision-making process.</li>
<li>Identify your main point of contact for the approval process. If possible, this should be a member of
the PMC of the product most closely-related to the event's topic or goal.</li>
<li><a href="/foundation/marks/contact#events">Contact us</a> with your confirmation of above to seek approval.
Include details of:
<ul>
<li>What is the topic focus of the event?</li>
<li>Who is organising the event?</li>
<li>When is the event?</li>
<li>How many attendees are expected?</li>
<li>How much PMC involvement is there already?</li>
<li>Which marks are you requesting?</li>
<li>How would you propose that the ASF will be listed as a community
partner? (See <a href="#partner">ASF listing as Community Partner option</a> )</li>
<li>How will event selection work? (See <a href="#selection">Must allow PMC representatives on event selection committee</a> and <a href="#education">Must provide open educational content</a></li>
<li>Is the event for-profit or non-profit? (See <a href="#funding">Event profits and donations"</a> )</li>
</ul>
</li>
</ol>
<p>Make sure you've done all this and have a mockup of the event's marketing and participant materials ready to show us before
asking for permission to use Apache brands. If the ASF needs further information or requires changes, a representative from
Brand Management or the Apache project in question will contact you. We will typically make a decision within two
weeks of all information being available, and all attributions being present.</p>
<p>Assuming the affected PMCs have approved your event through their appropriate, consensus-based methods <strong>and</strong> VP Trademarks or their representative has raised no objections, you may proceed with your event as planned. However, note that
only explicit approval should be considered authoritative. If in doubt, request
explicit approval.</p>
<p>The ASF gives approval for use of our brands for events on a case-by-case basis and each event must request such approval. If you plan to repeat your event, or if you are planning recurring for-profit events, you can save time in the future by <a href="/foundation/marks/contact#events">contacting us</a> to negotiate a detailed agreement with the ASF.</p>
<h2 id="notes">Important Note<a class="headerlink" href="#notes" title="Permalink">&para;</a></h2>
<p><strong>Nothing in this ASF policy statement shall be interpreted to allow any
third party to claim any association with the Apache Software Foundation or
any of its projects or to imply any approval or support by ASF for any
third party products, services, or events.</strong></p>
<h3 id="version">Policy Version<a class="headerlink" href="#version" title="Permalink">&para;</a></h3>
<p>This is version 1.5 of this Apache policy document, published in December 2019. The text was updated to improve readability in August 2021.
Material changes will be marked with a new version number.</p>
<p><strong>v1.1</strong> Update to have permissions by VP, Brand <strong>or</strong> designee</p>
<p><strong>v1.2</strong> Clarify blackout dates, event sizes, and About Apache X text; update version number</p>
<p><strong>v1.3</strong> Update to v1.3; clarify <em>Apache Projectname</em> usage; About paragraph; event size and date blackouts; appropriate Apache project logo usage</p>
<p><strong>v1.4</strong> Update to v1.4; require an anti-harassment policy for 3rd party events</p>
<p><strong>v1.5</strong> Update to v1.5; add more detail regarding conflicting event dates</p>

</div>  </main>

  <!-- Footer -->
  <footer class="bg-primary">
    <div class="container">
      <div class="row">
        <br />
        <div class="col-sm-1">

        </div>
        <div class="col-sm-2">
          <h5 class="white">Community</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="http://community.apache.org/">Overview</a></li>
            <li><a href="/foundation/conferences.html">Conferences</a></li>
            <li><a href="http://community.apache.org/gsoc.html">Summer of Code</a></li>
            <li><a href="http://community.apache.org/newcomers/">Getting Started</a></li>
            <li><a href="/foundation/how-it-works.html">The Apache Way</a></li>
            <li><a href="/travel/">Travel Assistance</a></li>
            <li><a href="/foundation/getinvolved.html">Get Involved</a></li>
            <li><a href="/foundation/policies/conduct.html">Code of Conduct</a></li>
            <li><a href="http://community.apache.org/newbiefaq.html">Community FAQ</a></li>
            <li><a href="/memorials/">Memorials</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Innovation</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="http://incubator.apache.org/">Incubator</a></li>
            <li><a href="http://labs.apache.org/">Labs</a></li>
            <li><a href="/licenses/">Licensing</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/foundation/marks/">Trademark Policy</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Tech Operations</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/dev/">Developer Information</a></li>
            <li><a href="/dev/infrastructure.html">Infrastructure</a></li>
            <li><a href="/security/">Security</a></li>
            <li><a href="http://status.apache.org">Status</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Press</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/press/">Overview</a></li>
            <li><a href="https://blogs.apache.org/">ASF News</a></li>
            <li><a href="https://blogs.apache.org/foundation/">Announcements</a></li>
            <li><a href="https://twitter.com/TheASF">Twitter Feed</a></li>
            <li><a href="/press/#contact">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Legal</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/legal/">Legal Affairs</a></li>
            <li><a href="/legal/dmca.html">DMCA</a></li>
            <li><a href="/licenses/">Licensing</a></li>
            <li><a href="/foundation/marks/">Trademark Policy</a></li>
            <li><a href="/foundation/records/">Public Records</a></li>
            <li><a href="/foundation/policies/privacy.html">Privacy Policy</a></li>
            <li><a href="/licenses/exports/">Export Information</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-1">
        </div>

      </div>
      <hr class="col-lg-12 hr-white" />
      <div class="row">
        <div class="col-lg-12">
          <p class="text-center">Copyright &#169; 2023 The Apache Software Foundation, Licensed under the <a class="white" href="/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
          <p class="text-center">Apache and the Apache feather logo are trademarks of The Apache Software Foundation. </p>
        </div>
      </div>
    </div>

  </footer>

  <!-- / Footer -->

  <script src="/js/jquery-2.1.1.min.js"></script>
  <script src="/js/bootstrap.js"></script>
  <script src="/js/slideshow.js"></script>
  <script>
    (function($){
    $(document).ready(function(){
    $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
    event.preventDefault();
    event.stopPropagation();
    $(this).parent().siblings().removeClass('open');
    $(this).parent().toggleClass('open');
    console.log('WOrked');
    });
    });
    })(jQuery);
  </script>
</body>
</html>