     </div>
     """).append($ul)
 
+skipEvent = (event) ->
+  return false if keyword == ""
+  return true unless event
+
+  console.log keyword, filterByTagOnly
+
+  if event.tags
+    tags = event.tags.split /[, ]+/
+
+  if keyword
+    regex = new RegExp(keyword, 'i')
+    match_tags = event.tags?.match(regex)
+    match_desc = event.description?.match(regex)
+    match_talk = event.talks?.map((t)-> t.description).join(' ').match(regex)
+
+    result = if filterByTagOnly
+               match_tags
+             else
+               match_tags || match_talk || match_desc
+
+    return !result
+
 processAllEvents = (events) ->
   formatted = []
 
   for year of events
     for item of events[year]
       event = events[year][item]
+
+      continue if skipEvent(event)
 
       if event['start']
 

calendarData = {}
prefix = ''

getHash = ->
  if document.location.hash != ''
    hashInfo = document.location.hash.slice(1).split('/')

    else
      ""

    for label, event of year
      continue unless new Date(event.end) > today || yearOnly

      continue if skipEvent(event)

      numberOfEvents += 1

      eventID = prefix + slugify label

      location = if event.location
        """
        <h3 class="location">
          <a href="https://maps.google.com/maps?q=#{ event.location }" target="_blank">
            #{ event.location }
          </a>
        </h3>
        """

      description = if event.description
        """
        <div class="description">#{ event.description }</div>
        """

      eventEnd = if event.end
          """
                  -
                  <abbr class="dtend" title="#{ event.end }">#{
                    humanizeDate event.end
                  }</abbr>
          """
        else
          ''

      $event = $("""
        <div class="eventerence">
          <a class="top" href="##{ prefix }quicklinks">Back to top</a>
          <div class="vevent">
            <h2 class="event summary" id="#{ eventID }">
              <a href="##{ eventID }" title="Link to this eventerence directly">
                #{ event.name }
              </a>
            </h2>
            <div class="eventerence-info">
              #{ location || '' }
              <h3 class="date">
                <abbr class="dtstart" title="#{ event.start }">#{ 
                  humanizeDate event.start
                  }</abbr>
                #{ eventEnd }
              </h3>
              #{ description || '' }
            </div>
