function pullFromAdEdCalendar(filter, lim) { today = new Date(); m = (1 + today.getMonth()).toString(); if (m.length == 1) m = "0"+m; d = today.getDate().toString(); y = today.getFullYear().toString(); tz = today.getTimezoneOffset(); jan = new Date(today.getFullYear(), 0, 1).getTimezoneOffset(); jul = new Date(today.getFullYear(), 6, 1).getTimezoneOffset(); if(Math.max(jan, jul) != tz) tz += 60; tz_save = tz; if(tz%60 == 0) { tz = tz/60; if(tz > 0 && tz < 10) tzString = '-0'+tz+':00'; if(tz > 0 && tz > 9) tzString = '-'+tz+':00'; if(tz < 0 && tz > -10) tzString = '+0'+tz+':00'; if(tz < 0 && tz < -9) tzString = '+'+tz+':00'; } else tzString = 'Z' if(typeof filter == "undefined" || (typeof filter != "string")) filter = "all" filter = filter.trim().toLowerCase(); if(filter === "") filter = "all"; if(typeof lim == "undefined" || (typeof lim != "number")) lim = 10; counter = 0; url = 'https://www.googleapis.com/calendar/v3/calendars/temple-etzchaim.org_f080sbgj4ef9opqd84a4sbrg1o@group.calendar.google.com/events'; url += '?key=AIzaSyBYLr8AcutfgdiPOc24PyugzAwzBUjQ8a0&singleEvents=True&orderBy=startTime'; url += '&timeMin='+y+'-'+m+'-'+d+'T00:00:00.000'+tzString; var months = ["January","February","March","April","May","June","July","August","September","October","November","December"]; jQuery.getJSON(url, function(data) { jQuery.each(data.items, function( index, val ) { if(filter === "all") { counter++; arr = getCalendarOutput(val, months, tz_save, tzString, filter); jQuery('#myGCal').append(arr[0] + ' - ' + arr[1] + '
' + arr[2] + '

'); } else if(val.summary.toLowerCase().indexOf(filter) > -1) { counter++ arr = getCalendarOutput(val, months, tz_save, tzString, filter); jQuery('#myGCal').append(arr[0] + ' - ' + arr[1] + '
' + arr[2] + '

'); } if(counter >= lim) return false; }); if (typeof arr == "undefined") jQuery('#myGCal').append('No scheduled events
'); }); } function getCalendarOutput(val, months, tz_save, tzString, filter) { epoch = 0; retDate = new Date(val.start.dateTime); eventM = months[retDate.getMonth()]; // all day events are returned as a string with no timezone info // convert to epoch, add timezone offset from above and convert back if(eventM === undefined) { tz_millisecs = tz_save*60000; arr = (val.start.date).split("-"); epoch = Date.UTC(arr[0],(arr[1]-1),arr[2]); retDate = new Date(epoch+tz_millisecs); eventM = months[retDate.getMonth()]; } eventD = retDate.getDate(); eventY = retDate.getFullYear(); eventDate = eventM + ' ' + eventD + ', ' + eventY; eventH = retDate.getHours(); if(epoch != 0) eventTime = "All Day"; else { eventToD = "am"; if(eventH > 12) { eventH = eventH - 12; eventToD = "pm"; } if(eventH == 12) eventToD = "pm"; eventH = eventH.toString(); eventM = retDate.getMinutes(); if(eventM == 0) eventM = ":00"; else eventM = ":"+eventM; eventTime = eventH + eventM + eventToD; } if (eventTime == "All Day") eventDate = eventDate + ' ' + eventTime; else eventDate = eventDate + ' at ' + eventTime; eventLoc = val.location; if(eventLoc === undefined) // assume at the temple building eventLoc = "Temple Etz Chaim"; eventLoc = eventLoc.split(",")[0]; return [eventDate,val.summary,eventLoc]; }