Skip to content

Instantly share code, notes, and snippets.

View Max-Makhrov's full-sized avatar
🇺🇦

Max Makhrov Max-Makhrov

🇺🇦
View GitHub Profile
@Max-Makhrov
Max-Makhrov / GAS-CLAUDE.md
Last active May 1, 2026 11:15
Instructions for your new Google Apps Script Project for Claude

System prompt — Google Apps Script project agent

You build small, focused MVPs and grow them when asked. You do not overengineer. You do not invent features.

Plan-first discovery (mandatory, in order)

For every new project or major feature, you stop after each step and wait for explicit approval before continuing.

  1. Input / output JSON. Show the smallest realistic JSON payload(s) the system will accept and emit. JSON only, no walls of text. Iterate with the user until they say yes.
@Max-Makhrov
Max-Makhrov / Topics.MD
Last active April 11, 2025 13:57
Google Sheets Theory
  • interface
    • ecosystem
    • interface
    • shortcuts + navigation
    • limitations and alternatives
    • useful links + link theory
    • add-ons
    • collaboration
    • pivot tables
  • Looker Studio
@Max-Makhrov
Max-Makhrov / Course.MD
Created April 11, 2025 12:27
How to Create a New Course from Scratch

Creating a course

  • 6-7 weeks
  • 12-14 lessons
  • lectures 1-2 times a week
  • lecture 1.5-2 hours talk

Stages

  1. Market research, brief creation
@Max-Makhrov
Max-Makhrov / beep2telegram_v2.gs
Last active July 23, 2025 15:01
Send a message to Telegram with Bot from WebApp. Google Apps Script
// 1️⃣ change settings
// Telegram token
var token = "826438459:AAH2hEf7YZq...";
// Spreadseet id for storing memory
// Sample:
// https://docs.google.com/spreadsheets/d/1pI12qRVgIY7i03tVdd9jNd2GwPDgOi1RLthdpVpdMD8
var memory_sets = {
@Max-Makhrov
Max-Makhrov / user_email_onEdit.gs
Created February 16, 2022 13:09
How to get active user email with installed onEdit trigger?
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('😎📬 run me 2x times')
.addItem('please let script to see your email', 'install')
.addToUi();
}
// function test() {
// var e = {
@Max-Makhrov
Max-Makhrov / beep2telegram.gs
Last active October 15, 2022 10:05
send a message to Telegram with Bot from WebApp. Google Apps Script
var token = "1234697707:AAHGyL2PE..."; // CHANGE1
function doPost(e) {
var chat_id = -0123456789; // CHANGE1
var msg = e.parameter.msg;
if (!msg || msg === '') {
return returnXml_('no message');
}
// uncomment to prevent same messages
// if (inMemory_(msg)) {
@Max-Makhrov
Max-Makhrov / telegrambot.gs
Last active August 8, 2023 03:10
Telegram Bot for Lazy
// __
// /_ |
// | |
// | |
// | |
// |_|
// Set Bot, copy token:
// https://t.me/botfather
// set your token ↓
var token = "1815465433:AAGpRcd--KsZycuSYmBOCDcVvws5lSvkuqw";
@Max-Makhrov
Max-Makhrov / googleFormOnSubmit.gs
Last active February 20, 2024 07:07
Google Forms Script. Sample script on form submit. Get responses.
// gentleman script for google forms
//
// gets submitted valus:
// 1. question label
// 2. question id
// 3. response value
//
// ⚠️ This is Form trigger.
// Open script editor from form interface
// Install it wia Triggers
@Max-Makhrov
Max-Makhrov / combine.gs
Last active June 9, 2021 07:26
Combine data from multiple sheets to 1
// combine data from all sheets in current file
function combineData() {
// CHANGE SHEET NAME ↓ /////////////////////////////
var sheetTo = 'combined';
////////////////////////////////////////////////////
var file = SpreadsheetApp.getActiveSpreadsheet();
var sheets = file.getSheets(); // get all the sheets
// set where we want to write the results
var outSheet = file.getSheetByName(sheetTo);
var outdata = [], sheet, sName, data = [];
@Max-Makhrov
Max-Makhrov / Dependent DropDowns 2D Wide. v0.gs
Last active May 27, 2021 06:21
2D Dependent Dropdowns for Google Sheets. ~70 lines of code. Classy sample
// Copy sample file here:
// https://docs.google.com/spreadsheets/d/1hUOuDZcfXxaLvJbEA-SxzF4oGGU3lW3iJyS4wAV8YWA/copy
function onEdit(e) {
dvl0_(e);
}
function dvl0_sets_() {
return [
{