Skip to main content

A Tool for Exporting TimeTree Calendar and Convert to iCal format(.ics)

Project description

TimeTree Exporter

PyPI Python 3.x License Downloads Buy Me A Coffee

A Tool for Exporting TimeTree Calendar and Convert to iCal format(.ics)
This script works by scraping the TimeTree web app and converting the data to iCal format. (The .ics file can then be imported into other calendar apps such as Google Calendar, Apple Calendar, Outlook Calendar, etc.)

Installation

If you are on mac, you can install it using brew:

brew install eoleedi/tap/timetree-exporter

You can also install it using pip or pipx:

pip install timetree-exporter

Timetree Exporter requires Python 3.9 or later.

Usage

timetree-exporter -o path/to/output.ics

This will prompt you to enter your TimeTree email and password and select the calendar you want to export.

Then, you can import the ics file to your calendar app.

💡 Note: You are advised to import the ICS file into a separate calendar (e.g., Google Calendar) so that if anything goes wrong, you can simply delete the calendar and reimport it.

Advanced Usage

  • You can specify your email address using the -e option.

    timetree-exporter -e email@example.com
    
  • You can specify the calendar code using the -c or --calendar_code option.

    timetree-exporter -c calendar_code
    

    Note: Find the calendar code in the URL of the calendar page or when running the script without the -c option.

  • You can pass your email address and password with environment variables. (usually for automation purposes)

    export TIMETREE_EMAIL=email@example.com
    export TIMETREE_PASSWORD=password
    

Limitations

Alarms(Alerts) can't be imported to Google Calendar through iCal format due to Google's bug.

Development

This project uses uv for dependency management.

Setup

  1. Install uv:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. Clone the repository and install dependencies:

    git clone https://github.com/eoleedi/TimeTree-Exporter.git
    cd TimeTree-Exporter
    uv sync
    
  3. Install pre-commit hooks:

    uv run pre-commit install
    

Running Tests

uv run pytest tests

Running Linter

uv run pylint timetree_exporter

Support

If you think it's helpful, kindly support me!

"Buy Me A Coffee"

Roadmap of the properties mapping to iCal

  • ID
  • Primary ID
  • Calendar ID
  • UUID
  • Category
  • Type
  • Author ID
  • Author Type
  • Title
  • All Day
  • Start At
  • Start Timezone
  • End At
  • End Timezone
  • Label ID
  • Location
  • Location Latitude
  • Location Longitude
  • URL
  • Note
  • Lunar
  • Attendees
  • Recurrences
  • Recurring UUID
  • Alerts
  • Parent ID
  • Link Object ID
  • Link Object ID String
  • Row Order (Ignore since it's a property for timetree notes)
  • Attachment
  • Like Count
  • Files
  • Deactivated At
  • Pinned At
  • Updated At
  • Created At

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

timetree_exporter-0.6.2.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

timetree_exporter-0.6.2-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file timetree_exporter-0.6.2.tar.gz.

File metadata

  • Download URL: timetree_exporter-0.6.2.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for timetree_exporter-0.6.2.tar.gz
Algorithm Hash digest
SHA256 7edd4321f9391ff813e86f53d04b41a4e841c8a534439cb0f0ac10a5cf6eaac9
MD5 da7f1d2ff49dd5e74d6fce2fc69c1343
BLAKE2b-256 52ab746095ebc72606fb2903273c424701e9949c1e9dba4db0600e1b6e5194f6

See more details on using hashes here.

File details

Details for the file timetree_exporter-0.6.2-py3-none-any.whl.

File metadata

  • Download URL: timetree_exporter-0.6.2-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for timetree_exporter-0.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 daf7def2fb2415f016c3de89d9af44586020804f0c3b33cdd1804327005e15f5
MD5 fcd22b9e271ae216584895863f5d535f
BLAKE2b-256 35d9d140e5ea72bfd13462318a0b3b0a31a2f8be6a5c2deba91dfd2597355549

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page