Google Apps Script
Google Apps Script ist eine cloudbasierte Skriptplattform, die es Nutzern ermöglicht, die Funktionalität von Google Workspace-Anwendungen (wie Google Sheets, Google Docs, Google Drive, Gmail und mehr) zu automatisieren und zu erweitern. Es verwendet JavaScript, um benutzerdefinierte Skripte und Workflows zu erstellen, die repetitive Aufgaben automatisieren, mit anderen Google-Diensten integrieren und benutzerdefinierte Benutzeroberflächen erstellen können. Google Apps Script kann verwendet werden, um komplexe Workflows zu erstellen, wie z. B. das automatische Generieren von Berichten, das Versenden von personalisierten E-Mails, das Aktualisieren von Daten in Echtzeit oder das Verwalten von Dateien in Google Drive. Es ist besonders nützlich für Unternehmen und Einzelpersonen, die die Produktivität steigern und Aufgaben rationalisieren möchten, ohne umfangreiche Programmierkenntnisse zu benötigen. Die Plattform ermöglicht auch die Erstellung von Add-ons, um Google Workspace-Anwendungen weiter anzupassen.
Dies ist eine Sammlung von Code-Snippets, die innerhalb von Google Apps Script ausgeführt werden können. Die Snippets sind hochgradig anpassbar und können sehr nützlich sein, wenn keine eigene Serverinfrastruktur vorhanden ist.
Google Kalender
Für jede Funktion kann der Zeitraum durch Ändern der Variablen hours
angepasst werden. Der Standardwert ist 96.
SMS senden
Die Funktion SevenCalendarSMS
sendet eine SMS für jedes Ereignis, das im angegebenen Zeitraum stattfindet.
function SevenCalendarSMS() {
const apiKey = 'IHR_API_SCHLÜSSEL'
const to = 'EMPFANGSZIEL_EINSETZEN'
const toPlaceholder = key => `:${key}:`
const placeholder_id = toPlaceholder('ID')
const placeholder_time = toPlaceholder('TIME')
const placeholder_title = toPlaceholder('TITLE')
const now = new Date()
const statusTagKey = 'seven_status_sms'
const statusTagValue = 'ok'
const textTemplate = 'Google Kalender informiert Sie über die bevorstehende Veranstaltung {placeholder_title} mit der ID {placeholder_id}, die um {placeholder_time} beginnt.'
const calendarName = ''
const delay = ''
const flash = false
const foreign_id = ''
const from = 'GoogleApps'
const hours = 96 // Stunden ab jetzt bis zum Enddatum
const label = ''
const performance_tracking = false
const calendar = '' === calendarName ?
CalendarApp.getDefaultCalendar() :
CalendarApp.getCalendarsByName(calendarName)
const events = calendar.getEvents(now, new Date(now.getTime() + (hours * 60 * 60 * 1000)))
for (const event of events) {
if (statusTagValue === event.getTag(statusTagKey)) continue
let text = textVorlage
Object.entries({
[placeholder_id]: () => event.getId(),
[placeholder_time]: () => event.getStartTime(),
[placeholder_title]: () => event.getTitle()
}).forEach(([k, v]) => text = text.replace(k, v()))
const payload = {
from: from,
text,
to
}
Object.entries({
delay,
flash,
foreign_id,
from: from,
label,
performance_tracking
}).forEach(([k, v]) => {
if (false !== v) {
if (true === v) payload[k] = '1'
else if ('' !== v) payload[k] = v
}
})
const response = UrlFetchApp.fetch('https://gateway.seven.io/api/sms', {
headers: {'X-Api-Key': apiKey},
method: 'post',
payload
}).getContentText()
if (100 !== Number.parseInt(response))
throw new Error(`Unerwarteter Statuscode "${response}".`)
Logger.log(response)
event.setTag(statusTagKey, statusTagValue)
}
}
Sprachanruf
Die Funktion SevenCalendarVoice
führt einen Text-zu-Sprache-Anruf für jedes Ereignis im angegebenen Zeitraum durch.
function SevenCalendarVoice() {
const apiKey = 'IHR_API_SCHLÜSSEL'
const to = 'EMPFANGSZIEL_EINSETZEN'
const toPlaceholder = key => `:${key}:`
const placeholder_id = toPlaceholder('ID')
const placeholder_time = toPlaceholder('TIME')
const placeholder_title = toPlaceholder('TITLE')
const now = new Date()
const statusTagKey = 'seven_status_voice'
const statusTagValue = 'ok'
const textTemplate = 'Google Kalender informiert Sie über die bevorstehende Veranstaltung {placeholder_title} mit der ID {placeholder_id}, die um {placeholder_time} beginnt.'
const calendarName = ''
const from = '+49179876543210'
const hours = 96 // Stunden ab jetzt bis zum Enddatum
const calendar = '' === calendarName ?
CalendarApp.getDefaultCalendar() :
CalendarApp.getCalendarsByName(calendarName)
const events = calendar.getEvents(now, new Date(now.getTime() + (hours * 60 * 60 * 1000)))
for (const event of events) {
if (statusTagValue === event.getTag(statusTagKey)) continue
let text = textTemplate
Object.entries({
[placeholder_id]: () => event.getId(),
[placeholder_time]: () => event.getStartTime(),
[placeholder_title]: () => event.getTitle()
}).forEach(([k, v]) => text = text.replace(k, v()))
const payload = {
from: from,
text,
to
}
const response = UrlFetchApp.fetch('https://gateway.seven.io/api/voice', {
headers: {'X-Api-Key': apiKey},
method: 'post',
payload
}).getContentText()
Logger.log(response)
const code = response.split('')[0]
if ('100' !== code) throw new Error(`Unerwarteter Statuscode "${code}".`)
event.setTag(statusTagKey, statusTagValue)
}
}
Google Kontakte
SMS senden
Die Funktion SevenContactsSMS
sendet eine SMS an alle Ihre Kontakte.
function SevenContactsSMS() {
const apiKey = 'IHR_API_SCHLÜSSEL'
const toPlaceholder = key => `:${key}:`
const placeholder_id = toPlaceholder('ID')
const placeholder_name = toPlaceholder('FULL_NAME')
const placeholder_notes = toPlaceholder('NOTES')
const textTemplate = 'Sehr geehrte(r) {placeholder_name}, unsere neue Telefonnummer lautet +4901234567890. Mit freundlichen Grüßen Phil von Seven!'
const delay = ''
const flash = false
const foreign_id = ''
const from = 'GoogleApps'
const label = ''
const performance_tracking = false
for (const contact of ContactsApp.getContacts()) {
const phones = contact.getPhones()
if (!phones.length) continue
let text = textTemplate
Object.entries({
[placeholder_id]: () => contact.getId(),
[placeholder_name]: () => contact.getFullName(),
[placeholder_notes]: () => contact.getNotes()
}).forEach(([k, v]) => text = text.replace(k, v()))
const payload = {
from: from,
text,
to: (phones.find(p => p.isPrimary()) || phones.shift()).getPhoneNumber()
}
Object.entries({
delay,
flash,
foreign_id,
from: from,
label,
performance_tracking
}).forEach(([k, v]) => {
if (false !== v) {
if (true === v) payload[k] = '1'
else if ('' !== v) payload[k] = v
}
})
const response = UrlFetchApp.fetch('https://gateway.seven.io/api/sms', {
headers: {'X-Api-Key': apiKey},
method: 'post',
payload
}).getContentText()
if (100 !== Number.parseInt(response))
throw new Error(`Unerwarteter Statuscode "${response}".`)
Logger.log(response)
}
}
Sprachanruf
Die Funktion SevenContactsVoice
führt einen Text-zu-Sprache-Anruf an alle Ihre Kontakte durch.
function SevenContactsVoice() {
const apiKey = 'IHR_API_SCHLÜSSEL'
const toPlaceholder = key => `:{key}:`
const placeholder_id = toPlaceholder('ID')
const placeholder_name = toPlaceholder('FULL_NAME')
const placeholder_notes = toPlaceholder('NOTES')
const textTemplate = `Sehr geehrte(r) {placeholder_name}, unsere neue Telefonnummer lautet +4901234567890. Mit freundlichen Grüßen Phil von Seven!`
const from = '+49179876543210'
for (const contact of ContactsApp.getContacts()) {
const phones = contact.getPhones()
if (!phones.length) continue
let text = textTemplate
Object.entries({
[placeholder_id]: () => contact.getId(),
[placeholder_name]: () => contact.getFullName(),
[placeholder_notes]: () => contact.getNotes()
}).forEach(([k, v]) => text = text.replace(k, v()))
const payload = {
from,
text,
to: (phones.find(p => p.isPrimary()) || phones.shift()).getPhoneNumber()
}
const response = UrlFetchApp.fetch('https://gateway.seven.io/api/voice', {
headers: {'X-Api-Key': apiKey},
method: 'post',
payload
}).getContentText()
Logger.log(response)
const code = response.split('')[0]
if ('100' !== code) throw new Error(`Unerwarteter Statuscode "${code}".`)
}
}