[%# This Source Code Form is subject to the terms of the Mozilla Public
  # License, v. 2.0. If a copy of the MPL was not distributed with this
  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
  #
  # This Source Code Form is "Incompatible With Secondary Licenses", as
  # defined by the Mozilla Public License, v. 2.0.
  #%]
BEGIN:VCALENDAR
CALSCALE:GREGORIAN
[%+ PROCESS ics_prodid +%]
VERSION:2.0
[% FOREACH bug = bugs %]
BEGIN:VTODO
[%+ PROCESS ics_dtstart +%]
[%+ PROCESS ics_summary +%]
[%+ PROCESS ics_uid base_url=urlbase bug_id=bug.bug_id +%]
[%+ PROCESS ics_url base_url=urlbase bug_id=bug.bug_id +%]
[%+ PROCESS ics_status bug_status = bug.bug_status +%]
[%+ PROCESS ics_dtstamp +%]
[%+ ics_priorities.${bug.priority} FILTER ics('PRIORITY') +%]
[% IF bug.changeddate %]
[%+ bug.changedtime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('LAST-MODIFIED') +%]
[% END %]
[% IF bug.deadline %]
[%+ bug.deadline FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('DUE') +%]
[% END %]
[% IF bug.percentage_complete %]
[%+ bug.percentage_complete FILTER format('%d') FILTER ics('PERCENT-COMPLETE') +%]
[% END %]
[% IF bug.product %]
[%+ bug.product FILTER ics('X-BUGZILLA-PRODUCT') +%]
[% END %]
[% IF bug.component %]
[%+ bug.component FILTER ics('X-BUGZILLA-COMPONENT') +%]
[% END %]
[% IF bug.version %]
[%+ bug.version FILTER ics('X-BUGZILLA-VERSION') +%]
[% END %]
[% IF bug.keywords %]
[%+ bug.keywords FILTER ics('X-BUGZILLA-KEYWORDS') +%]
[% END %]
END:VTODO
[% END %]
END:VCALENDAR

[% BLOCK ics_prodid %]
  [% "-//Mozilla/Bugzilla $constants.BUGZILLA_VERSION//EN" FILTER ics('PRODID') %]
[% END %]

[% BLOCK ics_uid %]
  [% "${bug_id}@${base_url}" FILTER uri FILTER ics('UID') %]
[% END %]

[% BLOCK ics_url %]
  [% "${base_url}show_bug.cgi?id=${bug_id}" FILTER uri FILTER ics('URL;VALUE=URI') %]
[% END %]

[% BLOCK ics_dtstart %]
  [% bug.opentime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('DTSTART') %]
[% END %]

[% BLOCK ics_dtstamp %]
  [% currenttime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('DTSTAMP') %]
[% END %]

[% BLOCK ics_status %]
  [% status = "" %]
  [% FOREACH state = closedstates %]
    [% IF bug_status == state %]
      [% status = 'COMPLETED' %]
      [% LAST %]
    [% END %]
  [% END %]
  [% IF NOT status %]
    [% IF bug_status == 'IN_PROGRESS' || bug_status == 'ASSIGNED' %]
      [% status = 'IN-PROGRESS' %]
    [% ELSE %]
      [% status = 'NEEDS-ACTION' %]
    [% END %]
  [% END %]
  [% status FILTER ics('STATUS') %]
[% END %]

[% BLOCK ics_summary %]
  [% IF bug.short_desc %]
    [% summary = bug.short_desc %]
  [% ELSIF bug.short_short_desc %]
    [% summary = bug.short_short_desc %]
  [% ELSE %]
    [% summary = "$terms.Bug $bug.bug_id" %]
  [% END %]
  [% summary FILTER ics('SUMMARY') %]
[% END %]
