In dit bericht een variant daarop, namelijk een eenmalige gebeurtenis. Veel van de code is hetzelfde, maar het commando dat de gegevens naar de kalender verstuurt is net even anders.
Ik heb nu een Google Sheetblad gemaakt met 5 kolommen:
In principe hoeven alleen naam en datum te worden ingevuld.
Titel Datum Omschrijving Locatie Kleur Status
In Google Calendar maak je een nieuwe kalender aan. Ga naar de instellingen en zoek de Agenda-ID op. Die heb je nodig in het script. Ga daarvoor in je Sheet naar Extra, Scripteditor...
Kopieer het script hieronder en plak het in de editor. Geef je script een naam en sla het op. Vergeet niet de juiste Agenda-ID in de code te plaatsen!
//Script om afspraken vanuit een spreadsheet in een kalender te plaatsen
//FUNCTIE Voegt menu items toe als de sheet wordt geopend
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [];
menuEntries.push({name: "Toevoegen", functionName: "addEvents"});
sheet.addMenu("Kalender", menuEntries);
}
//FUNCTIE stuurt afspraken naar de kalender
function addEvents() {
//spreadsheet variabelen
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var values = range.getValues();
//kalender variabelen
var calendar = CalendarApp.getCalendarById('hier-komt-de-agenda-ID-te staan') //vul je kalender ID in
for (var i = 1; i < values.length; i++) {
if (values[i][5] != 'Toegevoegd') {
var titel = values[i][0];
var datum = new Date(values[i][1]);
var omschrijving = values[i][2];
var locatie = values[i][3];
var kleur = values[i][4];
var opties = {
description: omschrijving,
location: locatie,
};
var event = calendar.createAllDayEvent(titel, datum, opties);
event.setColor(kleur);
//noteer als toegevoegd
sheet.getRange(i+1,6).setValue('Toegevoegd');
}
}
}
Als je nu de sheet opnieuw laadt zul je zien dat er een knop Kalender bij is gekomen in de menubalk, rechts naast Help.
Vul de sheet nu met wat gegevens en klik op: Kalender, Toevoegen.
Ga naar de betreffende kalender en je zult zien dat de data zijn toegevoegd!
Alleen de velden Titel en Datum zijn verplicht. De rest is optioneel. Door het getal in de kolom Kleur te veranderen (een getal tussen 1 en 11) kun je de items die geplaatst worden een andere kleur geven.
Is het ook mogelijk om op dezelfde wijze een afspraak aan te maken met begin en eindtijd?
BeantwoordenVerwijderenvb afspraak op 20-12-2017 van 15:00 tot 16:00
@Guy,
BeantwoordenVerwijderenDaar ben ik inderdaad al druk mee bezig en ik heb inmiddels een werkend concept, maar ben nog niet helemaal tevreden. Als het klaar is wordt dat wel de volgende blogpost...