Mercurial > hg > gcmultimerge
annotate README.txt @ 79:0ccf3fd49181
Add license and some documentation.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 13 Jul 2016 12:59:50 +0300 |
parents | 8ef792b573a9 |
children | 286ccecf9257 |
rev | line source |
---|---|
79
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
1 Google Calendar MultiMerge |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
2 ========================== |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
3 Programmed and designed by Matti 'ccr' Hämäläinen <ccr@tnsp.org> |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
4 (C) Copyright 2016 Tecnic Software productions (TNSP) |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
5 |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
6 For license information, see file "COPYING". |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
7 |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
8 Introduction |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
9 ============ |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
10 |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
11 Google Calendar Multimerge (GCMM) is a simple Python utility for |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
12 creating a "merged" calendar from a number of "source" calendars. |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
13 Through Google Calendar API, events are copied from source calendars |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
14 to the target calendar and updated on each run. Deleted events will |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
15 be accordingly deleted from the target. |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
16 |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
17 In practice, the target is always an amalgamate of the sources, if |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
18 any events are added or deleted from it manually, they will be deleted |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
19 or re-added accordingly from it on the next run of GCMM. |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
20 |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
21 The reason for GCMM is that while an amalgamate view of all calendars |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
22 (shared or not) can be viewed through the main calendar site, the |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
23 amalgamate view can't be shared or viewed as an embedded element |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
24 directly. |
12
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
25 |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
26 |
79
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
27 How to use |
0ccf3fd49181
Add license and some documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
69
diff
changeset
|
28 ========== |
12
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
29 |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
30 First, we need to install the required Python tools in order to |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
31 install the required Google API Python modules ... in Debian/Ubuntu, |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
32 chant the following magic incantations: |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
33 |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
34 $ sudo apt-get install python-pip python-setuptools python-wheel |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
35 |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
36 Then, use PIP to install Google API stuff locally for the user .. |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
37 |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
38 $ pip install --upgrade google-api-python-client |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
39 |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
40 -- |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
41 |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
42 At this point, you will need to enable the Calendar API from |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
43 Google's control panel. Refer to the following web page: |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
44 |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
45 https://developers.google.com/google-apps/calendar/quickstart/python |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
46 |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
47 The section "Step 1" has the instructions. We've already done "Step 2", |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
48 which is incomplete in the guide anyway. |
a5f726b6782d
Start writing some kind of documentation.
Matti Hamalainen <ccr@tnsp.org>
parents:
9
diff
changeset
|
49 |
16 | 50 -- |
51 | |
52 Finally, edit example.cfg and run multimerge with config file as | |
53 command line parameter (if no configuration file is specified, | |
54 certain default settings will be used): | |
55 | |
56 $ ./multimerge.py example.cfg | |
57 | |
58 On first run, you will need to authenticate Multimerge to allow | |
59 access to the target calendar. You copy & paste the generated URL | |
60 to browser, authenticate and copy & paste the given "key" to | |
61 the Multimerge's prompt and hit ENTER. | |
62 | |
63 After first time authentication the program can be run from a | |
64 Cron task, if preferred. | |
65 |