Skip to content

Instantly share code, notes, and snippets.

@scottpdawson
Created February 12, 2023 12:37
Show Gist options
  • Save scottpdawson/f5c0bcbb6896af5b7f5f0fafca9ab70f to your computer and use it in GitHub Desktop.
Save scottpdawson/f5c0bcbb6896af5b7f5f0fafca9ab70f to your computer and use it in GitHub Desktop.
const calendarId = "ENTER_CALENDAR_ID";
const uniqueEventSuffix = "[MOONCAL]";
const dataRange = "A2:C";
function deleteAutoCreatedEvents() {
var eventCal = CalendarApp.getCalendarById(calendarId);
var startOfCurrentYear = new Date(new Date().getFullYear(), 0, 1);
var endOfCurrentYear = new Date(new Date().getFullYear(), 11, 31)
var events = eventCal.getEvents(startOfCurrentYear, endOfCurrentYear);
for(var i=0; i < events.length; i++) {
var ev = events[i];
var title = ev.getTitle();
if (title.indexOf(uniqueEventSuffix) >-1) {
ev.deleteEvent();
}
}
}
function addEventsToCalendar() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
var eventCal = CalendarApp.getCalendarById(calendarId);
var rawEvents = spreadsheet.getRange(dataRange).getValues();
var events = rawEvents.filter(function(r){
return r.join("").length > 0;
});
deleteAutoCreatedEvents();
for (var event of events) {
var date = event[0];
var name = event[1];
var description = event[2];
var lineBreak = "\r\n";
var eventTitle = `${name} ${uniqueEventSuffix}`;
var eventDescription = `${description} ${lineBreak}${lineBreak}via https://www.space.com/39238-full-moon-names.html`;
var newEvent = eventCal.createAllDayEvent(eventTitle, date, {
description: eventDescription,
location: 'Up in the sky',
});
Logger.log(`Added ${eventTitle} on ${date} (${newEvent.getId()})`);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment