All Projects → mobeigi → Fb2cal

mobeigi / Fb2cal

Licence: gpl-3.0
Fetch Facebook Birthdays events and create an ICS file for use with calendar apps

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Fb2cal

node-google-calendar
Simple node module that supports Google Calendar API
Stars: ✭ 76 (-77.31%)
Mutual labels:  events, calendar, google-calendar
weather-calendar-feed
Display yr.no weather (supports the entire Earth) forecasts with highly customizable Event titles in your Google Calendar, Android phone, iPhone, Outlook or other iCalendar app
Stars: ✭ 16 (-95.22%)
Mutual labels:  calendar, google-calendar, ics
Daylight-Calendar-ICS
Daylight Calendar is a dynamically generated .ics calendar that you can host and subscribe to in Google Calendar, iCal, or other calendar software.
Stars: ✭ 22 (-93.43%)
Mutual labels:  calendar, google-calendar, ics
Laravel Google Calendar
Manage events on a Google Calendar
Stars: ✭ 787 (+134.93%)
Mutual labels:  google-calendar, events, calendar
prodcal ics
Производственный календарь в формате ics
Stars: ✭ 23 (-93.13%)
Mutual labels:  calendar, google-calendar, ics
datebook
📅 Generates URLs and downloadable ICS files for adding events to popular calendar apps.
Stars: ✭ 273 (-18.51%)
Mutual labels:  calendar, google-calendar, ics
taskwarrior-syncall
Synchronization between Taskwarrior tasks and services such as Google Calendar, Notion and Google Keep. Formerly taskw_gcal_sync
Stars: ✭ 151 (-54.93%)
Mutual labels:  calendar, google-calendar
wp-event-calendar
The best way to manage events in WordPress
Stars: ✭ 46 (-86.27%)
Mutual labels:  events, calendar
networkdays
Networkdays functions ... including `networkdays` excel like function with no dependencies (no NumPy)
Stars: ✭ 22 (-93.43%)
Mutual labels:  events, calendar
bhitte-patro
Google Calendar for Nepali Date
Stars: ✭ 25 (-92.54%)
Mutual labels:  calendar, google-calendar
Klendario
A Swift wrapper over the EventKit framework
Stars: ✭ 44 (-86.87%)
Mutual labels:  events, calendar
google-calendar-api
Demo Project for Google Calendar API Using Spring Boot Rest API with OAuth2
Stars: ✭ 25 (-92.54%)
Mutual labels:  calendar, google-calendar
Ics Py
Pythonic and easy iCalendar library (rfc5545)
Stars: ✭ 322 (-3.88%)
Mutual labels:  ics, calendar
contao-events subscriptions
Contao extension that allows members of your website to subscribe to the events
Stars: ✭ 12 (-96.42%)
Mutual labels:  events, calendar
Ics
iCalendar (ics) file generator for node.js
Stars: ✭ 324 (-3.28%)
Mutual labels:  ics, calendar
infocenter
Raspberry Pi weather, calendar, and internet radio with graphical, touch-based interface.
Stars: ✭ 18 (-94.63%)
Mutual labels:  calendar, google-calendar
ics2gcal
Import .ics files into Google Calendar with only two clicks.
Stars: ✭ 21 (-93.73%)
Mutual labels:  google-calendar, ics
remarkable-calendar-creator
Create calendars to display on a reMarkable device as the suspend screen or to write notes on, including events from your own online iCal calendar
Stars: ✭ 28 (-91.64%)
Mutual labels:  calendar, ics
fb-export
Export (most) of your Facebook data using Node.js and the Graph API.
Stars: ✭ 21 (-93.73%)
Mutual labels:  export, facebook
calendar-link
📅 Calendar link generator for popular services
Stars: ✭ 193 (-42.39%)
Mutual labels:  calendar, google-calendar


fb2cal

Facebook Birthday Events to ICS file converter


Description

Around 20 June 2019, Facebook removed their Facebook Birthday ICS export option.
This change was unannounced and no reason was ever released.

fb2cal is a tool which restores this functionality.
It works by calling endpoints that power the https://www.facebook.com/events/birthdays/ page.
After gathering a list of birthdays for all the users friends for a full year, it creates a ICS calendar file. This ICS file can then be imported into third party tools (such as Google Calendar).

Requirements

  • Facebook account
  • Python 3.6+
  • pipenv
  • Scheduler tool to automatically run script periodically (optional)

Instructions

  1. Clone repo
    git clone [email protected]:mobeigi/fb2cal.git
  2. Rename config/config-template.ini to config/config.ini and enter your Facebook email and password (no quotes).
  3. Set up pipenv environment
    pipenv install
  4. Run the fb2cal module
    pipenv run python -m fb2cal
  5. Check the output folder (out by default) for the created birthdays.ics file

Configuration

This tool can be configured by editing the config/config.ini configuration file.

Section Key Valid Values Description
AUTH fb_email Your Facebook login email
fb_password Your Facebook login password
FILESYSTEM save_to_file True, False If tool should save ICS file to the local file system
ics_file_path Path to save ICS file to (including file name)
LOGGING level DEBUG, INFO, WARNING, ERROR, CRITICAL Logging level to use. Default: INFO

Troubleshooting

If you encounter any issues, please open the config/config.ini configuration file and set the LOGGING level to DEBUG (it is INFO by default). Include these logs when asking for help.

Also make sure to check the Caveats section below.

fb2cal Setup Guide for Non-Devs [Windows]

fb2cal Setup Guide for Non-Devs [Windows]

Scheduled Task Frequency

It is recommended to run the script once every 24 hours to update the ICS file to ensure it is synchronized with the latest Facebook changes (due to friend addition/removal) and to respect the privacy of users who decide to hide their birthday later on. Facebook originally recommended polling for birthday updates once every 12 hours based on the X-PUBLISHED-TTL:PT12H header included in their ICS files.

Caveats

  • Facebook accounts secured with 2FA are currently not supported (see #9)
  • During Facebook authentication, a security checkpoint may trigger that will force you to change your Facebook password.

Testing

  1. Set up pipenv environment
    pipenv install
  2. Install the fb2cal module
    pipenv run python -m pip install .
  3. Run the unittests module on the tests folder
    pipenv run python -m unittest discover tests

Contributions

Contributions are always welcome! Just make a pull request.

Licence

GNU General Public License v3.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].