Wednesday, December 25, 2024

How Google Calendar was turned into a filesystem that nobody should ever use

Must read

Bit by Bit is a weekly column focusing on technical advances each and every week across multiple spaces. My name is Adam Conway, and I’ve been covering tech and following the cutting-edge for a decade. If there’s something you’re interested in and would like to see covered, you can reach out to me at adam@xda-developers.com.




We all know about filesystems to varying degrees. They’re basically just what manages the way your files are stored on whatever device it is that you’re using, and there are different ways of doing it. That’s why FAT32, NTFS, exFAT, ext4, and more are all quite different from each other. However, with that concept in mind, anything can be turned into a file system… and that includes Google Calendar.

While most filesystems are handled by your computer’s kernel, there’s actually nothing stopping you from creating your own filesystem from within anything, it just won’t really be efficient. Filesystem in Userspace, or FUSE, is a software interface predominantly in Unix and Unix-like systems where you can create your own filesystem that runs inside of another filesystem, which has led to some very creative ways of storing files.


How a filesystem works and why Google Calendar can be one, too

Don’t actually do it, though

Screenshot of File Explorer showing an error message when trying to copy a file larger than the target file system allows


Every computer has a filesystem in some way, shape, or form. It’s an underlying software layer that manages how data is stored, organized, and retrieved on a storage device such as your computer’s SSD, and it provides a structured way to arrange data into files and directories, making it easier for the operating system and applications to locate and manipulate that data. Without a file system, data would exist as a chaotic stream of bits, with no logical grouping or organization. Popular file systems include NTFS (used by Windows), APFS (used by macOS), and ext4 (common in Linux).

At its core, a file system works by dividing the physical storage medium into logical sections, such as blocks or clusters. These sections are where data is stored, and the file system maintains a record of which blocks belong to which files. It also keeps metadata about each file, such as its name, size, type, creation date, and access permissions. When you open a file, the file system translates the file’s path into specific block addresses on the storage device, allowing the operating system to read or write the appropriate data.


Different file systems have unique features that are built for specific use cases, which is why companies like Apple might build their own filesystem like APFS. For example, NTFS supports advanced features like journaling (which helps recover data after crashes), encryption, and file compression. By contrast, FAT32, while simpler and more compatible across platforms, lacks many modern features and has both partition and file size limitations. Your choice of a file system can significantly affect performance, compatibility, and even the lifespan of storage devices, especially with modern technologies like SSDs, where write operations need to be optimized to prevent wear.

fuse-google-calendar-file-system-mona-lisa

Source: WhenFS


FUSE is this concept extrapolated to run inside of the existing storage context of the machine that it’s running on. Anything can be a filesystem, and one person has created a filesystem that works in Google Calendar, dubbed WhenFS. Basically, it creates a filesystem out of your calendar, splitting up data into hundreds of calendar event descriptions. Files and directories can be written and read from it, and you can give a calendar URL to a friend to “mount” and retrieve data from.

Of course, this is a highly impractical way to store files, and a 3KiB file takes seven seconds to upload to Google Calendar, a transfer rate of approximately 400 bytes per second. Nobody should seriously use it, and in fact, it’s arguably an abuse of Google’s own Calendar system. You run the risk of having your account restricted or banned by Google by doing this, but that doesn’t mean it isn’t educational.

FUSE isn’t just for impractical projects like these

It has real-world uses, too

Uploading files to the Discord server split into parts


Projects like these are made possible by FUSE, but there are actual practical uses for FUSE, too. For example, ntfs-3g, a way to mount NTFS drives on Linux, uses the FUSE interface to mount them. It’s slower than a native solution, but using FUSE makes it portable and easy to run anywhere, which is a big part of its appeal.

In fact, while not strictly a FUSE filesystem, even turning Discord into a Google Drive replacement where files could be reconstructed on retrieval with a Python script was technically a type of very rudimentary filesystem, too, especially if files were tracked and organized into channels.

Filesystems come in all shapes and sizes, and WhenFS is one of the funniest ones that I’ve seen which demonstrates the point perfectly.

Latest article