The DriveApp service lets you create folders in Google Drive programmatically. This is useful for automatically scaffolding a directory structure — for example, creating a folder per region or a new folder for every monthly sales cycle.
Creating a Root Folder
Use DriveApp.createFolder() to create a folder at the root of your Drive:
function createSalesRootFolder ( ) {
var folder = DriveApp . createFolder ( "Acme Corp - Sales Reports 2024" ) ;
Logger . log ( "Created: " + folder . getName ( ) + " | ID: " + folder . getId ( ) ) ;
}
Creating a Subfolder Inside an Existing Folder
Get a parent folder by its ID, then call createFolder() on it:
function createMonthlySubfolders ( ) {
var parentFolder = DriveApp . getFolderById ( "YOUR_FOLDER_ID" ) ;
var months = [ "January" , "February" , "March" , "April" , "May" , "June" ] ;
months . forEach ( function ( month ) {
var subfolder = parentFolder . createFolder ( month + " 2024" ) ;
Logger . log ( "Created subfolder: " + subfolder . getName ( ) ) ;
} ) ;
}
Creating Region Folders from Sheet Data
This example reads unique region names from the Sales Tracker sheet and creates a Drive folder for each — skipping any that already exist:
function createRegionFolders ( ) {
var sheet = SpreadsheetApp
. getActiveSpreadsheet ( )
. getSheetByName ( "Sales Tracker" ) ;
// Column E = Region; skip header row
var data = sheet . getRange ( 2 , 5 , sheet . getLastRow ( ) - 1 , 1 ) . getValues ( ) ;
var regions = [ ... new Set ( data . flat ( ) . filter ( String ) ) ] ;
var rootFolder = DriveApp . getFolderById ( "YOUR_ROOT_FOLDER_ID" ) ;
regions . forEach ( function ( region ) {
var existing = rootFolder . getFoldersByName ( region + " - Sales Reports" ) ;
if ( ! existing . hasNext ( ) ) {
var newFolder = rootFolder . createFolder ( region + " - Sales Reports" ) ;
Logger . log ( "Created: " + newFolder . getName ( ) ) ;
} else {
Logger . log ( "Already exists: " + region ) ;
}
} ) ;
}
With the sample data, this creates four folders: North - Sales Reports, East - Sales Reports, South - Sales Reports, and West - Sales Reports.
Getting a Folder's URL
Once a folder is created, you can retrieve its shareable URL:
function logFolderUrl ( ) {
var folder = DriveApp . createFolder ( "Q1 2024 - Sales Exports" ) ;
Logger . log ( "Folder URL: " + folder . getUrl ( ) ) ;
}
This URL can then be shared with team members or stored back in your spreadsheet for quick access.