1
2
3
4
5
6
7
8
9
10
11
12
13
14
// From: https://www.npmjs.com/package/ical-date-parser
export function parseICSDate(str) {
const T_INDEX = 8;
const Z_INDEX = 15;
if (str.length !== 16 || str[8] !== "T" || str[15] !== "Z")
throw new Error("invalid date");
const year = str.substr(0, 4);
const month = parseInt(str.substr(4, 2), 10) - 1;
const day = str.substr(6, 2);
const hour = str.substr(9, 2);
const minute = str.substr(11, 2);
const second = str.substr(13, 2);
return new Date(Date.UTC(year, month, day, hour, minute, second));
}