File size: 1,719 Bytes
550665c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Why GCSA?
=========

.. image:: _static/push_ups.webp
  :width: 200
  :alt: 50 push-ups in one month
  :align: right


I found that picture "The 50 push-ups in a month challenge" back in 2017 and decided it was time to try it.

I wanted a calendar reminder of how many push-ups I need to do every day. As a developer, I couldn't afford
to spend *10 minutes* putting the events manually. So I spent *3 hours* getting the official API to work to do this
for me. Then I thought that this simple task shouldn't take *3 hours* and have spent the next *couple of days*
implementing the initial version of the gcsa. Several years later, I'm happy that people find this project useful.


If you'd like to try this yourself, here's the code you need:

.. code-block:: python

    from gcsa.google_calendar import GoogleCalendar
    from gcsa.event import Event
    from beautiful_date import D, drange, days, MO

    gc = GoogleCalendar()

    PUSH_UPS_COUNT = [
        5, 5, 0, 5, 10, 0, 10,
        0, 12, 12, 0, 15, 15, 0,
        20, 24, 0, 25, 30, 0, 32,
        35, 35, 0, 38, 40, 0, 42,
        45, 50
    ]

    # starting next Monday (of course)
    # +1 days for the case that today is Monday
    start = D.today()[9:00] + 1 * days + MO
    end = start + len(PUSH_UPS_COUNT) * days

    for day, push_ups in zip(drange(start, end), PUSH_UPS_COUNT):
        e = Event(
            f'{push_ups} Push-Ups' if push_ups else 'Rest',
            start=day,
            minutes_before_popup_reminder=5
        )
        gc.add_event(e)



Needless to say, I can't do 50 push-ups.

Let me know in Discord_ if you've tried it.

.. _Discord: https://discord.gg/mRAegbwYKS