---
# This file is licensed under the MIT License (MIT) available on
# http://opensource.org/licenses/MIT.

layout: base
id: events
---
<link rel="alternate" type="application/rss+xml" href="/en/rss/events.rss" title="Bitcoin conferences and events">
<h1>{% translate pagetitle %}<a type="application/rss+xml" href="/en/rss/events.rss"><img src="/img/icons/icon_rss.svg" alt="rss" class="rssicon"></a></h1>
<p class="summary">{% translate pagedesc %}</p>

<link rel="stylesheet" type="text/css" href="/js/leaflet/leaflet.css" />
<link rel="stylesheet" type="text/css" href="/js/leaflet-markercluster/MarkerCluster.css" />
<link rel="stylesheet" type="text/css" href="/js/leaflet-markercluster/MarkerCluster.Default.css" />
<script src="/js/leaflet/leaflet.js"></script>
<script src="/js/leaflet-markercluster/leaflet.markercluster.js"></script>
<div id="eventmap" class="eventmap"></div>
<script>
var zoom=2;
var minzoom=1;
if(/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent))var zoom=minzoom=0;
var map = L.map('eventmap',{ 'zoom': zoom, 'minZoom': minzoom, 'center': [20.00, 10.00]});
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
	attribution: 'Data &copy; by <a href="http://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>.',
	maxZoom: 18
}).addTo(map);

var markers = new L.MarkerClusterGroup({showCoverageOnHover: false, maxClusterRadius: 40});
{% filter_for p in site.conferences sort_by:date %}{% if p.geoloc %}
L.marker([{{ p.geoloc }}]).bindPopup('<b><a href="{{ p.link | htmlescape }}">{{ p.title | htmlescape }}</a></b><br>{{ p.date }}<br>{{ p.venue | htmlescape }}<br>{{ p.address | htmlescape }}<br>{{ p.city | htmlescape }}, {{ p.country | htmlescape }}').addTo(markers);
{% endif %}{% endfilter_for %}

{% filter_for p in site.meetups sort_by:date %}{% if p.geoloc %}
L.marker([{{ p.geoloc }}]).bindPopup('<b><a href="{{ p.link | htmlescape }}">{{ p.title | htmlescape }}</a></b><br>{{ p.date }}<br>{{ p.venue | htmlescape }}<br>{{ p.address | htmlescape }}<br>{{ p.city | htmlescape }}, {{ p.country | htmlescape }}').addTo(markers);
{% endif %}{% endfilter_for %}

map.addLayer(markers);
</script>

<h2>{% translate upcoming %}</h2>
<div class="listtable eventtable">
{% filter_for p in site.conferences sort_by:date %}
  <div><div>{{ p.date | date:"%Y-%m-%d" }}</div><div><a href="{{ p.link | htmlescape }}">{{ p.title | htmlescape }}</a></div><div>{{ p.city | htmlescape }}, {{ p.country | htmlescape }}</div></div>
{% endfilter_for %}
  <span><a href="https://github.com/bitcoin/bitcoin.org/issues/new?title=New%20event&amp;body=%20%20%20%20-%20date%3A%20YYYY-MM-DD%0A%20%20%20%20%20%20title%3A%20%22%22%0A%20%20%20%20%20%20venue%3A%20%22%22%0A%20%20%20%20%20%20address%3A%20%22%22%0A%20%20%20%20%20%20city%3A%20%22%22%0A%20%20%20%20%20%20country%3A%20%22%22%0A%20%20%20%20%20%20link%3A%20%22%22">{% translate eventsubmit %}</a></span>
</div>

<p>{% translate meetupgroup %}</p>
<p>{% translate meetupbitcointalk %}</p>
<p>{% translate meetupwiki %}</p>
