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}".`)
    }
}
Zuletzt aktualisiert: Vor 1 Woche