adapt ics generation from CSV + header line - ics2txt - convert icalendar .ics file to plain text
 (HTM) git clone git://bitreich.org/ics2txt git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ics2txt
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Tags
 (DIR) README
       ---
 (DIR) commit c6606df0960a765824c000aeb54e21691bcc94bb
 (DIR) parent cc9fc8e92e72543aca8d35b19f0c3c614df186b4
 (HTM) Author: Josuah Demangeon <me@josuah.net>
       Date:   Wed, 24 Jun 2020 23:26:23 +0200
       
       adapt ics generation from CSV + header line
       
       Diffstat:
         M tsv2ics                             |      33 +++++++++++++++++++++----------
       
       1 file changed, 23 insertions(+), 10 deletions(-)
       ---
 (DIR) diff --git a/tsv2ics b/tsv2ics
       @@ -60,29 +60,42 @@ function print_fold(prefix, s, n)
        }
        
        BEGIN {
       +        FS = "\t"
       +
                print "BEGIN:VCALENDAR"
                print "VERSION:2.0"
                print "CALSCALE:GREGORIAN"
                print "METHOD:PUBLISH"
        }
        
       +NR == 1 {
       +        for (i = 1; i <= NF; i++)
       +                name[i] = $i
       +        next
       +}
       +
        {
       -        split($0, a, "\t")
       -        gmtime(a[1] + offset, beg)
       -        gmtime(a[2] + offset, end)
       -        cat = a[3]; loc = a[4]; sum = a[5]; des = a[6]
       +        for (i = 1; i <= NF; i++)
       +                ev[name[i]] = $i
        
                print ""
                print "BEGIN:VEVENT"
       +
       +        gmtime(ev["beg"] + offset, ev)
                printf "DTSTART:%04d%02d%02dT%02d%02d00Z\n",
       -          beg["year"], beg["mon"], beg["mday"], beg["hour"], beg["min"]
       +          ev["year"], ev["mon"], ev["mday"], ev["hour"], ev["min"]
       +
       +        gmtime(ev["end"] + offset, ev)
                printf "DTEND:%04d%02d%02dT%02d%02d00Z\n",
       -          end["year"], end["mon"], end["mday"], end["hour"], end["min"]
       -        print "SUMMARY:"        sum
       -        print "DESCRIPTION:"        des
       -        print "CATEGORIES:"        cat
       -        print "LOCATION:"        loc
       +          ev["year"], ev["mon"], ev["mday"], ev["hour"], ev["min"]
       +
       +        print "SUMMARY:" ev["sum"]
       +        print "DESCRIPTION:" ev["des"]
       +        print "CATEGORIES:" ev["cat"]
       +        print "LOCATION:" ev["loc"]
                print "END:VEVENT"
       +
       +        delete ev
        }
        
        END {