13 Months Calendar

Regular Calendar

The 13 Months Calendar


( FREE OPEN SOURCE API )

Discover a simpler, more balanced way to track time with the 13 months calendar!

Why Switch to 13 Months?

It's also known as the International Fixed Calendar (Mayans, Tartarians and others had it) and it offers a refreshing alternative to the uneven Gregorian system we’ve been stuck with for centuries. Imagine a world where every month is exactly 28 days => 13 tidy months, perfectly aligned for simplicity and consistency.

Benefits of the 13 Months Calendar

  • Perfect Consistency

    Every month has 28 days, meaning every month starts on the same day of the week (say hello to Sunday the 1st, every time!). No more scrambling to figure out if it’s a 30 - or 31-day month.

  • Easier Planning

    Businesses love it because of - monthly schedules, payroll, and budgets becoming more predictable. No more shortchanging February workers!

  • Cultural Bonus

    The new month (13th month of the year), often called “Sol” adds a fresh vibe-perfect for summer solstice parties or mid-year resets! And everyone gets 13 salaries instead of 12 every year!

  • Yearly Stability

    With 364 days (13 × 28), plus a bonus “Intermission day” after 28th of Sol month - for the new year transition, and a second Intermission Day every four years. It aligns with the solar year just as well as the Gregorian calendar, but with less chaos.

Join the Revolution

Ready to ditch the Gregorian mess? The 13 months calendar isn’t just a concept - it was used by many advanced civilisations in the past and recently by Eastman Kodak from 1928 to 1989! Let’s bring it back, one perfectly balanced month at a time.


As seen on:


Funny Facts & Testimonials

“I used to dread February-28 days felt like a cruel joke. Now with 13 months, every month is a fair fight!”

- Bob, Former February Hater

“I told my boss we switched to 13 months, and he gave me an extra paycheck. True story!”

- Sally, Optimistic Accountant

“The extra ‘Year Day’ is my new birthday. No one can argue with that logic!”

- Tim, Self-Proclaimed Time Lord

“I tried explaining it to my cat. She just stared at me for 28 days straight.”

- Jen, Cat Whisperer

API code examples for route /today

Preview in browser: https://13monthscalendar.com/today


  fetch('https://13monthscalendar.com/today')
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));
            

  import requests
  
  try:
      response = requests.get('https://13monthscalendar.com/today')
      data = response.json()
      print(data)
  except Exception as e:
      print(f"Error: {e}")
            

  import java.net.HttpURLConnection;
  import java.net.URL;
  import java.util.Scanner;
  
  public class Main {
      public static void main(String[] args) {
          try {
              URL url = new URL("https://13monthscalendar.com/today");
              HttpURLConnection conn = (HttpURLConnection) url.openConnection();
              conn.setRequestMethod("GET");
              Scanner scanner = new Scanner(conn.getInputStream());
              StringBuilder response = new StringBuilder();
              while (scanner.hasNext()) {
                  response.append(scanner.nextLine());
              }
              scanner.close();
              System.out.println(response.toString());
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
  }
            

  using System;
  using System.Net.Http;
  using System.Threading.Tasks;
  
  class Program {
      static async Task Main() {
          using (var client = new HttpClient()) {
              try {
                  var response = await client.GetStringAsync("https://13monthscalendar.com/today");
                  Console.WriteLine(response);
              } catch (Exception ex) {
                  Console.WriteLine($"Error: {ex.Message}");
              }
          }
      }
  }
            

  require 'net/http'
  require 'json'
  
  begin
    uri = URI('https://13monthscalendar.com/today')
    response = Net::HTTP.get(uri)
    data = JSON.parse(response)
    puts data
  rescue StandardError => e
    puts "Error: #{e.message}"
  end
            

API code examples for route /convert

Preview in browser:
https://13monthscalendar.com/convert?date=2025-M03-27&toCalendar=regular
https://13monthscalendar.com/convert?date=2025-03-27&toCalendar=fixed


  fetch('https://13monthscalendar.com/convert?date=2025-03-27&toCalendar=fixed')
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));
            

  import requests
  
  try:
      response = requests.get('https://13monthscalendar.com/convert?date=2025-03-27&toCalendar=fixed')
      data = response.json()
      print(data)
  except Exception as e:
      print(f"Error: {e}")
            

  import java.net.HttpURLConnection;
  import java.net.URL;
  import java.util.Scanner;
  
  public class Main {
      public static void main(String[] args) {
          try {
              URL url = new URL("https://13monthscalendar.com/convert?date=2025-03-27&toCalendar=fixed");
              HttpURLConnection conn = (HttpURLConnection) url.openConnection();
              conn.setRequestMethod("GET");
              Scanner scanner = new Scanner(conn.getInputStream());
              StringBuilder response = new StringBuilder();
              while (scanner.hasNext()) {
                  response.append(scanner.nextLine());
              }
              scanner.close();
              System.out.println(response.toString());
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
  }
            

  using System;
  using System.Net.Http;
  using System.Threading.Tasks;
  
  class Program {
      static async Task Main() {
          using (var client = new HttpClient()) {
              try {
                  var response = await client.GetStringAsync("https://13monthscalendar.com/convert?date=2025-03-27&toCalendar=fixed");
                  Console.WriteLine(response);
              } catch (Exception ex) {
                  Console.WriteLine($"Error: {ex.Message}");
              }
          }
      }
  }
            

  require 'net/http'
  require 'json'
  
  begin
    uri = URI('https://13monthscalendar.com/convert?date=2025-03-27&toCalendar=fixed')
    response = Net::HTTP.get(uri)
    data = JSON.parse(response)
    puts data
  rescue StandardError => e
    puts "Error: #{e.message}"
  end