Garoon Event to Outlook Calendar Bookmarklet
Usage
Initial Setup
- Copy the below
Garoon_to_Outlook_Bookmarklet.jscode block - Go to Bookmark manager (
chrome://bookmarks/) > Click on the⋮at the top-right-corner - Click
Add new bookmark& paste the code in the URL field
Importing a Garoon Event to Outlook Calendar
- Go to the Garoon event's page
- Click on the Bookmark
- Confirm the imported event in Outlook Calendar & click
Save
Using Outlook Live or Office 365?
Outlook Live and Office 365 uses a different domain so please change the URL accordingly.
Outlook Live:
- URL:
https://outlook.live.com/calendar/deeplink/compose - Code:
open(`https://outlook.live.com/calendar/deeplink/compose?path=/calendar/action/compose&${params.toString()}`);
Office 365:
- URL:
https://outlook.office.com/calendar/deeplink/compose - Code:
open(`https://outlook.office.com/calendar/deeplink/compose?path=/calendar/action/compose&${params.toString()}`);
Not working? 🤔
- Open browser console
- Mac:
Command+Option+C - Windows, Linux, Chrome OS:
Control+Shift+C
- Mac:
- Check if you are getting an error message
Garoon_to_Outlook_Bookmarklet.js
javascript: (() => { const formatTimestamp = (inputDateString) => { const inputDate = new Date(inputDateString); const year = inputDate.getUTCFullYear(); const month = String(inputDate.getUTCMonth() + 1).padStart(2, '0'); const day = String(inputDate.getUTCDate()).padStart(2, '0'); const hours = String(inputDate.getUTCHours()).padStart(2, '0'); const minutes = String(inputDate.getUTCMinutes()).padStart(2, '0'); const seconds = String(inputDate.getUTCSeconds()).padStart(2, '0'); const outputDateString = `${year}-${month}-${day}T${hours}:${minutes}:${seconds}Z`; return outputDateString; }; const bodyFormat = (inputText) => inputText.replace(/\n/g, '<br>'); const addCalendar = (event) => { console.log({ event }); const start = formatTimestamp(event.start.dateTime); const end = formatTimestamp(event.end.dateTime); const origin = location.origin.replace(".s.", "."); const url = `${origin}${location.pathname}?event=${event.id}`; const params = new URLSearchParams({ rru: "addevent" }); const body = bodyFormat(event.notes); params.set("startdt", start); params.set("enddt", end); params.set("subject", event.subject); params.set("body", body); params.set("location", url); open(`https://outlook.office.com/calendar/deeplink/compose?path=/calendar/action/compose&${params.toString()}`); }; const event = window.garoon?.schedule?.event?.get(); if (event === undefined) { alert( `Error: Not on a Garoon schedule.\nPlease open a specific Garoon event.` ); return; } addCalendar(event); })();
Top comments (0)