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 = 'INSERT_YOUR_RECIPIENT_OF_CHOICE'
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 Calendar informs you about the upcoming event {placeholder_title} with ID {placeholder_id} starting at {placeholder_time}.'
const calendarName = ''
const delay = ''
const flash = false
const foreign_id = ''
const from = 'GoogleApps'
const hours = 96 // hours from now until end date
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(`Unexpected status code "${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 = 'INSERT_YOUR_RECIPIENT_OF_CHOICE'
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 Calendar informs you about the upcoming event {placeholder_title} with ID {placeholder_id} starting at {placeholder_time}.'
const calendarName = ''
const from = '+49179876543210'
const hours = 96 // hours from now until end date
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(`Unexpected status code "${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 = 'Dear {placeholder_name} our new phone number is +4901234567890. Kind regards Phil from 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(`Unexpected status code "${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 = `Dear {placeholder_name} our new phone number is +4901234567890. Kind regards Phil from 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(`Unexpected status code "${code}".`)
}
}