Rem2ics: Difference between revisions
Jump to navigation
Jump to search
m (2 revisions imported) |
No edit summary |
||
Line 13: | Line 13: | ||
# version 0.1 - 2006-06-09 | # version 0.1 - 2006-06-09 | ||
# version 0.2 - 2010-10-27 (one-line patch by Shane Kerr <shane@time-travellers.org>) | # version 0.2 - 2010-10-27 (one-line patch by Shane Kerr <shane@time-travellers.org>) | ||
# version 0.3 - 2023-12-02 (indent and simplify using the -b2 argument) | |||
# Converts output of remind -s to iCalendar | # Converts output of remind -s to iCalendar | ||
# usage: remind -s | rem2ics | # usage: remind -s -b2 | rem2ics | ||
# | # | ||
# THE FOLLOWING CODE IS RELEASED INTO THE PUBLIC DOMAIN | # THE FOLLOWING CODE IS RELEASED INTO THE PUBLIC DOMAIN | ||
Line 22: | Line 23: | ||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE | ||
BEGIN { | BEGIN { | ||
print "BEGIN:VCALENDAR" | print "BEGIN:VCALENDAR" | ||
print "VERSION:2.0" | print "VERSION:2.0" | ||
} | } | ||
{ | { | ||
gsub("/","",$1) | gsub("/","",$1) | ||
print "BEGIN:VEVENT" | print "BEGIN:VEVENT" | ||
if ($5 != "*"){ | if ($5 != "*") { | ||
printf("DTSTART:%dT%02d%02d00\n",$1,$5/60,$5%60) | printf("DTSTART:%dT%02d%02d00\n",$1,$5/60,$5%60) | ||
printf("DTEND:%dT%02d%02d00\n",$1,($5+$4)/60,($5+$4)%60) | printf("DTEND:%dT%02d%02d00\n",$1,($5+$4)/60,($5+$4)%60) | ||
} else { | |||
} else { | printf("DTSTART:%d\n",$1) | ||
printf("DTSTART:%d\n",$1) | } | ||
print "SUMMARY:" substr($0,match($0,$6)) | print "SUMMARY:" substr($0,match($0,$6)) | ||
print "END:VEVENT" | |||
print "END:VEVENT" | |||
} | } | ||
END {print "END:VCALENDAR"} | END {print "END:VCALENDAR"} |
Latest revision as of 15:03, 2 December 2023
- Main article: Remind
A script that will convert Remind events to iCalendar format is here. It correctly handles details of the iCalendar format, including required properties, character quoting, line folding, correct EOL, and will recognize and handle recurring events.
Or the following simple script can be used to convert Remind events to iCalendar format. The output is suitable as a read-only format, but is not really designed to be edited (a REM
statement that generates periodic reminders will be converted to separate iCal entries for every occurrence).
Among other uses, this script could be used to display your reminders via Google Calendar. Click "Manage calendars"->"Import Calendar" to import the ics file.
#!/usr/bin/awk -f # rem2ics by Anthony J. Chivetta <achivetta@gmail.com> # version 0.1 - 2006-06-09 # version 0.2 - 2010-10-27 (one-line patch by Shane Kerr <shane@time-travellers.org>) # version 0.3 - 2023-12-02 (indent and simplify using the -b2 argument) # Converts output of remind -s to iCalendar # usage: remind -s -b2 | rem2ics # # THE FOLLOWING CODE IS RELEASED INTO THE PUBLIC DOMAIN # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE BEGIN { print "BEGIN:VCALENDAR" print "VERSION:2.0" } { gsub("/","",$1) print "BEGIN:VEVENT" if ($5 != "*") { printf("DTSTART:%dT%02d%02d00\n",$1,$5/60,$5%60) printf("DTEND:%dT%02d%02d00\n",$1,($5+$4)/60,($5+$4)%60) } else { printf("DTSTART:%d\n",$1) } print "SUMMARY:" substr($0,match($0,$6)) print "END:VEVENT" } END {print "END:VCALENDAR"}