Skip to content

Instantly share code, notes, and snippets.

@whoward
Created July 11, 2018 15:58
Show Gist options
  • Select an option

  • Save whoward/fa375b76acb91184c0003b040efcea4d to your computer and use it in GitHub Desktop.

Select an option

Save whoward/fa375b76acb91184c0003b040efcea4d to your computer and use it in GitHub Desktop.

Revisions

  1. whoward created this gist Jul 11, 2018.
    23 changes: 23 additions & 0 deletions export2ical.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,23 @@
    #!/usr/bin/env ruby

    require 'bundler/inline'

    gemfile "https://rubygems.org" do
    gem 'icalendar', '2.4.1'
    gem 'sqlite3', '1.3.13'
    end

    db = SQLite3::Database.new File.join(ENV['HOME'], ".time-tracker.db")

    cal = Icalendar::Calendar.new

    db.execute("select reason, start, finish from entries").each do |reason, start, finish|
    cal.event do |e|
    e.summary = reason
    e.dtstart = Time.parse(start)
    e.dtend = Time.parse(finish)
    end
    end


    File.write(ARGV.first || 'export.ics', cal.to_ical)