Ends in
00
days
00
hrs
00
mins
00
secs
ENROLL NOW

⚡Get Extra 10% OFF our Practice Exams + eBook Bundle for as low as $14.84 ONLY!

Make Your Own Smart Study Tracker with Google Sheets & Scripts

Home » What's New » Make Your Own Smart Study Tracker with Google Sheets & Scripts

Make Your Own Smart Study Tracker with Google Sheets & Scripts

If you’ve ever felt like your study routine is kinda all over the place or if you’re just curious where all your “study time” actually goes then you’re not alone.

Maybe you’re prepping for exams, juggling organization work, reviewing for certifications, or just trying to build a better routine. Whatever it is, having a simple system to track your study time can help you stay accountable without needing to download another app or learn a whole new tool. (。•̀ᴗ-)

Stick around and I’ll walk you through how to whip up your very own Smart Study Tracker using Google Sheets + a tiny bit of script magic ~
Nothing wild, promise! It’s clean, customizable, and something you actually own.

MAKE YOUR OWN SMART STUDY TRACKER USING GOOGLE SHEETS & SCRIPTS

Wanted to do something like this?

  • Automatically shows which task needs your attention first
  • Highlights your high-priority goals
  • Tracks how long you’ve actually been studying
  • Changes colors depending on status and even celebrates when you’re done

If you’ve been wanting a tracker that works with you and not against you, I gotcha!

Here’s what we’re making:

SMART STUDY TRACKER

What You’ll Learn

  • How to make a smart study table in Google Sheets

  • How to set up dropdowns and colors for priority and status

  • How to auto-calculate study time

  • Tutorials dojo strip
  • How to add a sorting script 

Let’s start!

Now let’s make your own version from scratch.

By the end of this guide, you’ll have your very own Smart Study Tracker!

What You’ll Need:

  • A Google account

  • Google Sheets

  • Basic copy-paste skills (you’re good!)

  • The willingness to be honest with your time

Step 1: Set Up the Google Sheet

Open Google Sheets and create a new file. You can name it something like Study Tracker or whatever helps you feel productive.

Then, Click Insert > Pre-built tables > Blank Table > Insert
Insert > Pre-Built Table FOR GOOGLE SHEETSInsert Blank Table FOR GOOGLE SHEETS

Step 2: Set Up Your Table

Edit your columns and set up your table like this:
COLUMNS SETUP

Don’t forget to change the column type! 
Trust me, it makes a huge difference.

Google Sheets can be a bit wonky and the script won’t work if you skip this step, so make sure to:

  • Format time columns (Start Time, End Time) as Time 

  • Format the Deadline column as Date

  • Format the Priority and Status as Dropdown

Here’s how to edit the column type:
Click the Column that you will edit (e.g. Start Time)
Then, Click the Dropdown, Edit Column Type > Date > Time
EDIT THE COLUMN TYPE FOR GOOGLE SHEETS

Step 3: Edit Dropdowns

For Priority and Status:

You’ll use Dropdowns:

Select the cells under Priority (Do this for Status too)

  • Click the Dropdown, Tap the Edit Icon
  • Type your options:
    • For Priority: High, Medium, Low
    • For Status: To Do, In Progress, Done
  •  Add color styles to match each option!
  • Click Done

DROPDOWN EDIT TUTORIAL FOR GOOGLE SHEETS

Step 4: Add a Script to Make it Smart ✨

Now that the table is ready, let’s make this sheet smart.

Once you set this up, your tracker will:

  • Calculate how long you studied just by entering a start and end time (no need to drag formulas)

  • Automatically sort your tasks by priority (High, Medium, Low) and by deadline

  • Count how many days are left before each deadline

  • Highlight the entire row green when the task is marked as done

  • Turn it red if it’s overdue and still not done

You don’t need to be a coder for this. Just follow these steps.

Open Extensions > Apps Script,

ADD APP SCRIPTS FOR GOOGLE SHEETS

Delete the existing script, 
APP SCRIPTS FOR GOOGLE SHEETS

Then, paste this entire script:

function onEdit(e) {
  var sheet = e.source.getActiveSheet();
  var editedCell = e.range;
  var row = editedCell.getRow();
  if (row <= 1) return; // Skip header

  var today = new Date();
  today.setHours(0, 0, 0, 0);

  var priorityCol = 2;
  var deadlineCol = 3;
  var daysLeftCol = 4;
  var statusCol = 5;
  var startCol = 6;
  var endCol = 7;
  var durationCol = 8;

  var rowRange = sheet.getRange(row, 1, 1, sheet.getLastColumn());

  var deadline = sheet.getRange(row, deadlineCol).getValue();
  var status = sheet.getRange(row, statusCol).getValue();
  var start = sheet.getRange(row, startCol).getValue();
  var end = sheet.getRange(row, endCol).getValue();
  var daysLeftCell = sheet.getRange(row, daysLeftCol);

  // Duration calculation
  if (editedCell.getColumn() == startCol || editedCell.getColumn() == endCol) {
    var durationString = "Invalid Time";

    if (typeof start === 'number' && typeof end === 'number') {
      var diff = end - start;
      if (diff < 0) diff += 1;
      var diffMins = Math.round(diff * 24 * 60);
      var hours = Math.floor(diffMins / 60);
      var mins = diffMins % 60;
      durationString = hours + "h " + mins + "m";
    } else if (start instanceof Date && end instanceof Date) {
      var diffMs = end.getTime() - start.getTime();
      if (diffMs < 0) diffMs += 24 * 60 * 60 * 1000;
      var diffMins = Math.round(diffMs / (1000 * 60));
      var hours = Math.floor(diffMins / 60);
      var mins = diffMins % 60;
      durationString = hours + "h " + mins + "m";
    }

    sheet.getRange(row, durationCol).setValue(durationString);
  }

  // Days Left logic
  if (status === "Done") {
    daysLeftCell.setValue("N/A");
  } else if (deadline instanceof Date) {
    var diffDays = Math.ceil((deadline - today) / (1000 * 60 * 60 * 24));
    if (diffDays > 0) {
      daysLeftCell.setValue(diffDays + " day(s) left");
    } else if (diffDays === 0) {
      daysLeftCell.setValue("Due today");
    } else {
      daysLeftCell.setValue("Overdue by " + Math.abs(diffDays) + " day(s)");
    }
  } else {
    daysLeftCell.setValue("");
  }

  // Row color
  if (status === "Done") {
    rowRange.setBackground("#CCFFCC");
  } else if (deadline instanceof Date && deadline < today) {
    rowRange.setBackground("#FFCCCC");
  } else {
    rowRange.setBackground(null);
  }

  if ((editedCell.getColumn() == priorityCol || editedCell.getColumn() == deadlineCol) && row > 1) {
    autoSortByPriorityAndDeadline();
  }
}

function autoSortByPriorityAndDeadline() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var dataRange = sheet.getRange(2, 1, sheet.getLastRow() - 1, 9);
  var data = dataRange.getValues();

  var priorityOrder = {
    "High": 1,
    "Medium": 2,
    "Low": 3
  };

  data.sort(function(a, b) {
    var priorityA = priorityOrder[a[1]] || 4;
    var priorityB = priorityOrder[b[1]] || 4;
    if (priorityA !== priorityB) return priorityA - priorityB;
    var deadlineA = a[2] ? new Date(a[2]) : new Date("9999-12-31");
    var deadlineB = b[2] ? new Date(b[2]) : new Date("9999-12-31");
    return deadlineA - deadlineB;
  });

  dataRange.setValues(data);
}

 

Save and close the script editor. That’s it! Your tracker is now smart and ready to work with you! 

SMART STUDY TRACKER

 

Ready to make studying feel a little lighter?

And there you go. Sometimes all you really need is a simple Google Sheet to help you stay on top of things. It doesn’t have to be fancy or perfect, just something that works for you and keeps you honest about where your study time goes.

If you end up trying this study tracker, I’d love to know how it goes for you. Maybe you’ll come up with your own tweaks or shortcuts along the way. 

If you found this helpful, send it to a friend or anyone else who might want a calmer, clearer study routine.

You’ve got this! ദ്ദി ˉ͈̀꒳ˉ͈́ )✧

 

⚡Get Extra 10% OFF our Practice Exams + eBook Bundle for as low as $14.84 ONLY!

Tutorials Dojo portal

Learn AWS with our PlayCloud Hands-On Labs

🧑‍💻 CodeQuest – AI-Powered Programming Labs

FREE AI and AWS Digital Courses

Tutorials Dojo Exam Study Guide eBooks

tutorials dojo study guide eBook

FREE AWS, Azure, GCP Practice Test Samplers

Subscribe to our YouTube Channel

Tutorials Dojo YouTube Channel

Join Data Engineering Pilipinas – Connect, Learn, and Grow!

Data-Engineering-PH

Ready to take the first step towards your dream career?

Dash2Career

K8SUG

Follow Us On Linkedin

Recent Posts

Written by: Maxine Sofia Llamas

Maxine Sofia “mczeen” is a Computer Engineering student at Pamantasan ng Lungsod ng Maynila (PLM) and an IT intern at Tutorials Dojo. She actively contributes to tech communities and student organizations, blending creativity with technical skills to promote collaboration, innovation, and continuous learning.

AWS, Azure, and GCP Certifications are consistently among the top-paying IT certifications in the world, considering that most companies have now shifted to the cloud. Earn over $150,000 per year with an AWS, Azure, or GCP certification!

Follow us on LinkedIn, YouTube, Facebook, or join our Slack study group. More importantly, answer as many practice exams as you can to help increase your chances of passing your certification exams on your first try!

View Our AWS, Azure, and GCP Exam Reviewers Check out our FREE courses

Our Community

~98%
passing rate
Around 95-98% of our students pass the AWS Certification exams after training with our courses.
200k+
students
Over 200k enrollees choose Tutorials Dojo in preparing for their AWS Certification exams.
~4.8
ratings
Our courses are highly rated by our enrollees from all over the world.

What our students say about us?