Created
February 22, 2019 00:42
-
-
Save jesseditson/4563ce336684ed8303d259c925017af0 to your computer and use it in GitHub Desktop.
Noise Pop event to calendar invite
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// https://mrcoles.com/bookmarklet/ | |
var MS_IN_MINUTES = 60 * 1000; | |
var formatTime = function(date) { | |
return date.toISOString().replace(/-|:|\.\d+/g, ""); | |
}; | |
var calculateEndTime = function(event) { | |
return event.end | |
? formatTime(event.end) | |
: formatTime( | |
new Date(event.start.getTime() + event.duration * MS_IN_MINUTES) | |
); | |
}; | |
const makeEvent = function(event) { | |
var startTime = formatTime(event.start); | |
var endTime = calculateEndTime(event); | |
var href = encodeURI( | |
[ | |
"https://www.google.com/calendar/render", | |
"?action=TEMPLATE", | |
"&text=" + (event.title || ""), | |
"&dates=" + (startTime || ""), | |
"/" + (endTime || ""), | |
"&details=" + (event.description || ""), | |
"&location=" + (event.address || ""), | |
"&sprop=&sprop=name:", | |
].join("") | |
); | |
window.location = href; | |
}; | |
let title = document.querySelectorAll(".ds-event-title-text")[0].innerText; | |
let time = document.querySelectorAll(".ds-event-time [data-datetime]")[0] | |
.dataset.datetime; | |
let venue = document.querySelectorAll(".ds-venue-name")[0].innerText; | |
let link = document.querySelectorAll(".ds-buy-tix")[0].href; | |
const event = { | |
// Event title | |
title, | |
// Event start date | |
start: new Date(time), | |
// Event duration (IN MINUTES) | |
duration: 180, | |
// Event Address | |
address: venue, | |
// Event Description | |
description: link, | |
}; | |
makeEvent(event); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment