There are 1 previous version of this script.
// --------------------------------------------------------------------
//
// This is a Greasemonkey user script.
//
// To install, you need Greasemonkey: http://greasemonkey.mozdev.org/
// Then restart Firefox and revisit this script.
// Under Tools, there will be a new menu item to "Install User Script".
// Accept the default configuration and install.
//
// To uninstall, go to Tools/Manage User Scripts,
// select "Hello World", and click Uninstall.
//
// --------------------------------------------------------------------
//
// ==UserScript==
// @name Evite2GoogleCal
// @namespace http://blog.ryantoohil.com
// @description Add an "Add to Google Calendar" link to Evite
// @include http://www.evite.com/pages/invite/*
// ==/UserScript==
function getMonth(a) {
//var today = new Date();
var month;
switch(a) {
case "January" :
month = "01";
break;
case "February" :
month = "02";
break;
case "March" :
month = "03";
break;
case "April" :
month = "04";
break;
case "May" :
month = "05";
break;
case "June" :
month = "06";
break;
case "July" :
month = "07";
break;
case "August" :
month = "08";
break;
case "September" :
month = "09";
break;
case "October" :
month = "10";
break;
case "November" :
month = "11";
break;
case "December" :
month = "12";
break;
}
return month;
}
// Let's find the various cells with the info we need
var Title, UnparsedDate, StartDate, EndDate, Location, Details;
var allTDs, ourTD;
var DateRegEx = /^<b>When<\/b>:\ $/;
var LocRegEx = /Location/;
var pmRegEx = /pm|PM/;
var amRegEx = /am|AM/;
allTDs = document.getElementsByTagName('td');
for (var j = 0; j < allTDs.length; j++) {
if (allTDs[j].className == 'headertext17') {
Title = allTDs[j].innerHTML;
Title = escape(Title);
}
var text = allTDs[j].innerHTML;
if (text.match(DateRegEx)) {
UnparsedDate = allTDs[j+1].innerHTML;
var tempDate = UnparsedDate.split(",");
var monthday = tempDate[1];
if (tempDate[2].indexOf("to") != -1) {
var times = tempDate[2].split(" to ");
} else {
var times = new Array();
times[0] = tempDate[2];
times[1] = tempDate[2];
}
var today = new Date();
var yr = today.getFullYear();
var temp = monthday.split(" ");
var monthText = temp[1];
var day = temp[2];
if (day.length == 1) {
day = "0" + day;
}
var month = getMonth(monthText);
var tempStart = times[0].replace(" ","");
var tempEnd = times[1].replace(" ","");
var StartHour, StartMin, EndHour, EndMin;
startArray = tempStart.split(":");
endArray = tempEnd.split(":");
StartHour = startArray[0];
StartMin = startArray[1];
EndHour = endArray[0];
EndMin = endArray[1];
StartHour = StartHour - 0;
EndHour = EndHour - 0;
if (StartMin.match(pmRegEx) && parseInt(StartHour) < 12) {
StartHour = StartHour + 12;
StartMin = StartMin.replace("pm","", "gi");
} else if (StartMin.match(amRegEx) && parseInt(StartHour) == 12) {
StartHour = StartHour - 12;
StartMin = StartMin.replace("am","", "gi");
} else {
StartMin = StartMin.replace("am","", "gi");
StartMin = StartMin.replace("pm","", "gi");
}
if (EndMin.match(pmRegEx) && parseInt(EndHour) < 12) {
EndHour = EndHour + 12;
EndMin = EndMin.replace("pm","", "gi");
} else if (EndMin.match(amRegEx) && parseInt(EndHour) == 12) {
EndHour = EndHour - 12;
EndMin = EndMin.replace("am","", "gi");
} else {
EndMin = EndMin.replace("am","", "gi");
EndMin = EndMin.replace("pm","", "gi");
}
var d = new Date();
var offset = d.getTimezoneOffset() / 60;
StartHour -= 0;
EndHour -= 0;
StartHour += offset; //adjust for timezone
EndHour += offset; //adjust for timezone
StartTime = StartHour + StartMin;
EndTime = EndHour + EndMin;
StartDate = yr + month + day + "T" + StartTime + "00Z";
EndDate = yr + month + day + "T" + EndTime + "00Z";
Details = escape(allTDs[j+2].innerHTML);
}
if (text.match(LocRegEx)) {
var tempLocation = allTDs[j+1].innerHTML;
Location = tempLocation.replace("<br>", ",", "gi");
Location = Location.split("<", 1);
}
}
// Let's create the Google Calendar Link
var gCalLink = document.createElement("span");
gCalLink.innerHTML = ' <a href="http://www.google.com/calendar/event' +
'?action=TEMPLATE&text=' + Title + '&dates=' + StartDate + '/' + EndDate + '&details=' + Details +
'&location=' + escape(Location) + '&trp=true&' + 'sprop=www.evite.com&sprop=name:" class="tools">Add to Google Calendar</a>';
// Let's find the LI element with the Outlook Calendar link and add our link after it
var allHREFss, printHREF;
allHREFs = document.getElementsByTagName('a');
for (var i = 0; i < allHREFs.length; i++) {
var text = allHREFs[i].innerHTML;
var regEx = /Print/;
if (text.match(regEx)) {
printHREF = allHREFs[i];
}
}
printHREF.parentNode.insertBefore(gCalLink, printHREF.nextSibling);
