fb2cal


Namefb2cal JSON
Version 1.3.1 PyPI version JSON
download
home_pagehttps://git.io/fjMwr
SummaryFacebook Birthday Events to ICS file converter
upload_time2024-08-21 16:17:58
maintainerNone
docs_urlNone
authorMo Beigi
requires_python>3.9
licenseGPLv3
keywords facebook birthday calendar export ics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
<img src="https://i.imgur.com/ToHPLjD.png" height="110px" width="auto"/>
<br/>
<h3 align="center">fb2cal</h3>
<p align="center">Facebook Birthday Events to ICS file converter</p>
<h2></h2>
</p>
<br />

<p align="center">
<a href="../../releases"><img src="https://img.shields.io/github/release/mobeigi/fb2cal.svg?style=flat-square" /></a>
<a href="../../actions"><img src="https://img.shields.io/github/actions/workflow/status/mobeigi/fb2cal/test-fb2cal.yml?style=flat-square" /></a>
<a href="../../issues"><img src="https://img.shields.io/github/issues/mobeigi/fb2cal.svg?style=flat-square" /></a>
<a href="../../pulls"><img src="https://img.shields.io/github/issues-pr/mobeigi/fb2cal.svg?style=flat-square" /></a> 
<a href="LICENSE.md"><img src="https://img.shields.io/github/license/mobeigi/fb2cal.svg?style=flat-square" /></a>
</p>

## 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 or Apple Calendar).

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

## Requirements
* Facebook account
* Python 3.9+
* pipenv
* Scheduler tool to automatically run script periodically (optional)

## PyPi Project
https://pypi.org/project/fb2cal/

## Instructions

### PyPi (Recommended)
1. In an empty folder of your choice, set up pipenv environment  
`pipenv install`
2. Install `fb2cal` module:  
`pipenv run pip install fb2cal`
3. Download [config/config-template.ini](https://raw.githubusercontent.com/mobeigi/fb2cal/master/config/config-template.ini) file and store it in `config/config.ini`.
4. Update the `config/config.ini` file and enter your Facebook email and password (no quotes).
5. Run the `fb2cal` module  
`pipenv run python -m fb2cal`
6. Check the output folder (`out` by default) for the created `birthdays.ics` file

### Local
1. Clone repo  
`git clone git@github.com:mobeigi/fb2cal.git`
2. Copy `config/config-template.ini` to `config/config.ini`.
3. Update the `config/config.ini` file and enter your Facebook email and password (no quotes).
4. Set up pipenv environment  
`pipenv install`
5. Run the `fb2cal` module  
`pipenv run python -m fb2cal`
6. 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.

<table> <thead> <tr> <th>Section</th> <th>Key</th> <th>Valid Values</th> <th>Description</th> </tr></thead> <tbody> <tr> <td rowspan=2>AUTH</td><td>fb_email</td><td></td><td>Your Facebook login email</td></tr><tr> <td>fb_password</td><td></td><td>Your Facebook login password</td></tr><tr> <td rowspan=2>FILESYSTEM</td><td>save_to_file</td><td>True, False</td><td>If tool should save ICS file to the local file system</td></tr><tr> <td>ics_file_path</td><td></td><td>Path to save ICS file to (including file name)</td></tr><tr> <td>LOGGING</td><td>level</td><td>DEBUG, INFO, WARNING, ERROR, CRITICAL</td><td>Logging level to use. Default: INFO</td></tr></tbody></table>

## 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.

## 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`

## 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.

## Contributions
Contributions are always welcome!
Just make a [pull request](../../pulls).

## Licence
GNU General Public License v3.0

            

Raw data

            {
    "_id": null,
    "home_page": "https://git.io/fjMwr",
    "name": "fb2cal",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">3.9",
    "maintainer_email": null,
    "keywords": "facebook, birthday, calendar, export, ics",
    "author": "Mo Beigi",
    "author_email": "me@mobeigi.com",
    "download_url": "https://files.pythonhosted.org/packages/91/61/e3245f801d9f6f3cfba3f36b697a561f46bb597890fb0c74ea838da4df31/fb2cal-1.3.1.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\r\n<img src=\"https://i.imgur.com/ToHPLjD.png\" height=\"110px\" width=\"auto\"/>\r\n<br/>\r\n<h3 align=\"center\">fb2cal</h3>\r\n<p align=\"center\">Facebook Birthday Events to ICS file converter</p>\r\n<h2></h2>\r\n</p>\r\n<br />\r\n\r\n<p align=\"center\">\r\n<a href=\"../../releases\"><img src=\"https://img.shields.io/github/release/mobeigi/fb2cal.svg?style=flat-square\" /></a>\r\n<a href=\"../../actions\"><img src=\"https://img.shields.io/github/actions/workflow/status/mobeigi/fb2cal/test-fb2cal.yml?style=flat-square\" /></a>\r\n<a href=\"../../issues\"><img src=\"https://img.shields.io/github/issues/mobeigi/fb2cal.svg?style=flat-square\" /></a>\r\n<a href=\"../../pulls\"><img src=\"https://img.shields.io/github/issues-pr/mobeigi/fb2cal.svg?style=flat-square\" /></a> \r\n<a href=\"LICENSE.md\"><img src=\"https://img.shields.io/github/license/mobeigi/fb2cal.svg?style=flat-square\" /></a>\r\n</p>\r\n\r\n## Description\r\nAround 20 June 2019, Facebook removed their Facebook Birthday ICS export option.  \r\nThis change was unannounced and no reason was ever released.  \r\n\r\nfb2cal is a tool which restores this functionality.  \r\nIt works by calling endpoints that power the https://www.facebook.com/events/birthdays/ page.  \r\nAfter 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 or Apple Calendar).\r\n\r\n## Caveats\r\n* Facebook accounts secured with 2FA are currently not supported (see [#9](../../issues/9))\r\n* During Facebook authentication, a security checkpoint may trigger that will force you to change your Facebook password.\r\n\r\n## Requirements\r\n* Facebook account\r\n* Python 3.9+\r\n* pipenv\r\n* Scheduler tool to automatically run script periodically (optional)\r\n\r\n## PyPi Project\r\nhttps://pypi.org/project/fb2cal/\r\n\r\n## Instructions\r\n\r\n### PyPi (Recommended)\r\n1. In an empty folder of your choice, set up pipenv environment  \r\n`pipenv install`\r\n2. Install `fb2cal` module:  \r\n`pipenv run pip install fb2cal`\r\n3. Download [config/config-template.ini](https://raw.githubusercontent.com/mobeigi/fb2cal/master/config/config-template.ini) file and store it in `config/config.ini`.\r\n4. Update the `config/config.ini` file and enter your Facebook email and password (no quotes).\r\n5. Run the `fb2cal` module  \r\n`pipenv run python -m fb2cal`\r\n6. Check the output folder (`out` by default) for the created `birthdays.ics` file\r\n\r\n### Local\r\n1. Clone repo  \r\n`git clone git@github.com:mobeigi/fb2cal.git`\r\n2. Copy `config/config-template.ini` to `config/config.ini`.\r\n3. Update the `config/config.ini` file and enter your Facebook email and password (no quotes).\r\n4. Set up pipenv environment  \r\n`pipenv install`\r\n5. Run the `fb2cal` module  \r\n`pipenv run python -m fb2cal`\r\n6. Check the output folder (`out` by default) for the created `birthdays.ics` file\r\n\r\n## Configuration\r\nThis tool can be configured by editing the `config/config.ini` configuration file.\r\n\r\n<table> <thead> <tr> <th>Section</th> <th>Key</th> <th>Valid Values</th> <th>Description</th> </tr></thead> <tbody> <tr> <td rowspan=2>AUTH</td><td>fb_email</td><td></td><td>Your Facebook login email</td></tr><tr> <td>fb_password</td><td></td><td>Your Facebook login password</td></tr><tr> <td rowspan=2>FILESYSTEM</td><td>save_to_file</td><td>True, False</td><td>If tool should save ICS file to the local file system</td></tr><tr> <td>ics_file_path</td><td></td><td>Path to save ICS file to (including file name)</td></tr><tr> <td>LOGGING</td><td>level</td><td>DEBUG, INFO, WARNING, ERROR, CRITICAL</td><td>Logging level to use. Default: INFO</td></tr></tbody></table>\r\n\r\n## Scheduled Task Frequency\r\nIt 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.\r\n\r\n## Testing\r\n1. Set up pipenv environment  \r\n`pipenv install`\r\n2. Install the `fb2cal` module  \r\n`pipenv run python -m pip install .`\r\n3. Run the `unittests` module on the `tests` folder  \r\n`pipenv run python -m unittest discover tests`\r\n\r\n## Troubleshooting\r\nIf 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.\r\n\r\n## Contributions\r\nContributions are always welcome!\r\nJust make a [pull request](../../pulls).\r\n\r\n## Licence\r\nGNU General Public License v3.0\r\n",
    "bugtrack_url": null,
    "license": "GPLv3",
    "summary": "Facebook Birthday Events to ICS file converter",
    "version": "1.3.1",
    "project_urls": {
        "Download": "https://github.com/mobeigi/fb2cal/archive/v1.3.1.tar.gz",
        "Homepage": "https://git.io/fjMwr"
    },
    "split_keywords": [
        "facebook",
        " birthday",
        " calendar",
        " export",
        " ics"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c7a1467260554d6cd3c7ff8ad790ae1f326ce56d7ca17ec104e8904bbce0b48a",
                "md5": "334ee25d618b70ae460f087f699ad767",
                "sha256": "f7508bc19388135215953eb7f43689a8c6c573f02e75b7816661dcdf257a95bd"
            },
            "downloads": -1,
            "filename": "fb2cal-1.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "334ee25d618b70ae460f087f699ad767",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">3.9",
            "size": 25702,
            "upload_time": "2024-08-21T16:17:56",
            "upload_time_iso_8601": "2024-08-21T16:17:56.906933Z",
            "url": "https://files.pythonhosted.org/packages/c7/a1/467260554d6cd3c7ff8ad790ae1f326ce56d7ca17ec104e8904bbce0b48a/fb2cal-1.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9161e3245f801d9f6f3cfba3f36b697a561f46bb597890fb0c74ea838da4df31",
                "md5": "87f1413b4d5fd92ca204631403226c39",
                "sha256": "3c0a27fff47361120ea02834af693e76a9641c04b94fb5714ebac249039df2b8"
            },
            "downloads": -1,
            "filename": "fb2cal-1.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "87f1413b4d5fd92ca204631403226c39",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">3.9",
            "size": 27030,
            "upload_time": "2024-08-21T16:17:58",
            "upload_time_iso_8601": "2024-08-21T16:17:58.237221Z",
            "url": "https://files.pythonhosted.org/packages/91/61/e3245f801d9f6f3cfba3f36b697a561f46bb597890fb0c74ea838da4df31/fb2cal-1.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-21 16:17:58",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mobeigi",
    "github_project": "fb2cal",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "fb2cal"
}
        
Elapsed time: 3.60303s