I blundered in my solution...
The point is, if an event is going to be online at a specific time,
that time has to be converted from GMT to local time.
2 pm Thursday for me and my event may be 7pm in London, or 11am in California,
or Wednesday in Australia.
If you give the script a starting date that has been calculated as GMT,
the local machine will immediately convert it to local time for all of its calculations.
Otherwise, I'm afraid our mates in England will miss the show-
not to mention Cleveland.
// you could put S here instead of passing it from below
// the day and time are localized by getting them as local from the GMT Date in S
str= 'The next event is scheduled for ';
var D= new Date(),h,m,p=' am';
if(D.getDay== W && D.getHours()< H) str+= ' Today '; // if it has not started yet
while(D.getDay() != W) D.setDate(D.getDate()+1);
str+= Date.daynames[W]+', '+Date.monthnames[D.getMonth()] +' '+D.getDate();
// get time string
if(H== 0) H= 12;
return str+' at '+ H+':'+M+p ;
// test based on EST
var start =new Date(Date.UTC(2008,1,28,19,0,0,0))
// This is the GMT for Thursday, Feb 28 2:00 pm-
// you can set it at date, past or future
// EST is 5 hours behind GMT on that date- it varies
// You will need to set start from your own offset
Oh, almost forgot-