diff --git a/run.js b/run.js
new file mode 100644
index 0000000..8350d3e
--- /dev/null
+++ b/run.js
@@ -0,0 +1,225 @@
+const fs = require('fs')
+
+const CURRENT_DATE = new Date()
+
+// TODO
+//
+// When running we want to fill all dates that are:
+// 1. next date
+// 2. any previous date
+// 3. no date that already exists
+//
+// solved with iterating until the current date found
+
+// TODO Handle rollover of date list
+//
+// New years to start: 30.12 04.01 30.01
+// End to new years: 21.12 31.12 03.01 14.01
+//
+// Create function that takes a list of dates and creates
+// real date objects. It should include logic for look-ahead
+// to adress rollover.
+
+function writeStringToFile(filePath, content) {
+ fs.writeFile(filePath, content, (err) => {
+ if (err) {
+ console.error(`Error writing to ${filePath}:`, err);
+ } else {
+ console.log(`Successfully wrote to ${filePath}`);
+ }
+ });
+}
+
+function uuidv4() {
+ return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, c =>
+ (+c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> +c / 4).toString(16)
+ );
+}
+
+async function getSite(url) {
+ return fetch(url).then(async (resp) => {
+ if (!resp.ok) {
+ console.log("unable to fetch site");
+ console.log(err);
+ console.log(resp.status);
+ console.log(resp.statusText);
+ throw err;
+ }
+
+ return await resp.text();
+ });
+}
+
+function getFullLocationName(text, key) {
+ regexpLocation = new RegExp(`(${key}[\\w\\d\\søæå]*),`, "i");
+ location = text.match(regexpLocation);
+
+ // TODO null handle
+
+ return location[1]
+}
+
+function getTimeForLocation(text, location) {
+ regexpTime = new RegExp(`${location}, (kl (\\d+:\\d+) – (\\d+:\\d+))`, "i");
+ times = text.match(regexpTime);
+ console.log(times[2], times[3])
+
+ // TODO null handle
+
+ from = times[2];
+ to = times[3];
+ return [from, to];
+}
+
+function getDatesForLocation(text, location) {
+ regexpDatesString = new RegExp(`${location}.* ((\\d+.\\d+).*)