lnTimeZoneOffset = 7 * 60 * 60 && Phoenix is 7 hours behind GMT. scan for not empty(cAbbrev) lcStart = chrtran(ttoc(tStart + lnTimeZoneOffset, 3), '-:', '') + 'Z' lcEnd = chrtran(ttoc(tEnd + lnTimeZoneOffset, 3), '-:', '') + 'Z' lcTitle = trim(cAbbrev) + iif(empty(nvl(cSpeaker, '')), '', ' - ' + trim(cSpeaker)) lcDescrip = strtran(trim(mAbstract), chr(10) + chr(13), '=0D=0A') lcLocation = trim(cRoom) lcID = 'SWFOX' + lcStart text to lcContent noshow textmerge pretext 2 BEGIN:VCALENDAR VERSION:2.0 CALSCALE:GREGORIAN X-WR-TIMEZONE:America/Phoenix BEGIN:VEVENT DTSTART:<<lcStart>> DTEND:<<lcEnd>> SUMMARY;ENCODING=QUOTED-PRINTABLE:<<lcTitle>> DESCRIPTION;ENCODING=QUOTED-PRINTABLE:<<lcDescrip>> LOCATION;ENCODING=QUOTED-PRINTABLE:<<lcLocation>> UID:<<lcID>> PRIORITY:3 END:VEVENT END:VCALENDAR endtext strtofile(lcContent, lcICSFolder + transform(iID) + '.ics') endscan for not empty(cAbbrev)Doug