TimeTree Exporter
A Tool for Exporting TimeTree Calendar and Convert to iCal format(.ics) \
(The .ics file can then be imported into other calendar apps such as Google Calendar, Apple Calendar, Outlook Calendar, etc.)
Usage
First, download the timetree data manually and put it in the responses folder(see below)
Method 1: Pip
- Install the package
pip3 install timetree-exporter
- Run
timetree-exporter <path-to-responses-folder>
- A timetree.ics file will be generated in the same directory, then you can import it to your calendar app.
Method 2: Cloning the repository
- Clone the repository
git clone https://github.com/eoleedi/TimeTree-exporter.git
- Change the directory to the project folder
cd TimeTree-exporter
- Install the requirements
pip3 install -r requirements.txt
- Run
python3 -m timetree_exporter responses
- A timetree.ics file will be generated in the same directory, then you can import it to your calendar app.
How to download timetree data
- Go to https://timetreeapp.com/signin
- Open the developer tools before logging in
Can be opened by pressing F12
- Go to the network tab
Remember to Press Ctrl + R to start recording
- Turn on preserve log
- Type in "sync" in the filter box
- Log in
- Click on the calendar you want to export
- You will see couple of requests with the name "sync"
There seems to be a maximum of 300 events in single requests. \
If you have more than 300 events, you will see multiple requests with the name "sync"
- Right click on the request and select "Copy Response"
- Paste it into a json file under the response folder under this project (etc. sync.json)
The file name should end with .json
- Do the same thing for all the requests with steps 7~10
Prepare for signin: Step 1~5
Copy response: Step 8~9
Advanced Usage
You can also specify the output file name by running python3 -m timetree_exporter -o <output_file_name>.ics
or timetree-exporter -o <output_file_name>.ics
Recommendation
You are recommended to import the ics file into a separate calendar (take google calendar as an example) as if anything goes wrong, you can just delete the calendar and reimport it.
Requirements
icalendar==5.0.12
tzdata==2024.1
Limitations
- Currently, TimeTree data can only be downloaded manually through a web browser.
- Alarms(Alerts) can't be imported to Google Calendar through iCal format due to Google's bug.
Support
If you think it's helpful, kindly support me!
Roadmap of the properties mapping to iCal
- [ ] ID
- [ ] Primary ID
- [ ] Calendar ID
- [x] UUID
- [x] Category
- [x] Type
- [ ] Author ID
- [ ] Author Type
- [x] Title
- [x] All Day
- [x] Start At
- [x] Start Timezone
- [x] End At
- [x] End Timezone
- [ ] Label ID
- [x] Location
- [x] Location Latitude
- [x] Location Longitude
- [x] URL
- [x] Note
- [ ] Lunar
- [ ] Attendees
- [x] Recurrences
- [ ] Recurring UUID
- [x] Alerts
- [x] Parent ID
- [ ] Link Object ID
- [ ] Link Object ID String
- [ ] Row Order
- [ ] Attachment
- [ ] Like Count
- [ ] Files
- [ ] Deactivated At
- [ ] Pinned At
- [x] Updated At
- [x] Created At